Bouton pour détacher un fichier dans un répertoire

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Bouton pour détacher un fichier dans un répertoire

Messagepar Nutch [Bot] » 01 Nov 2011 à 19:53

Bonjour,

Je suis absolument nouveau dans la bidouille sur Lotus Notes 8.5 mais je souhaiterais créer un bouton qui me permette de détacher un fichier dans un mail reçu et le placer toujours dans le même répertoire.

Le nom du fichier sera à chaque fois différent mais le répertoire doit rester identique.

J'ai tenté quelque chose comme ça (ne riez pas, merci !! :)
Code : Tout sélectionner
lefichier=@AttachmentNames
lepath="D:\CB\" & lefichier
@Command([EditDetach];lefichier;lepath)

mais, bien sûr, ça ne fonctionne pas ...

Si vous aviez une petite solution en formule, j'en serai ravi et éternellement reconnaissant !
Nutch [Bot]
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 0
Inscrit(e) le : 10 Jan 2012 à 14:41

Messagepar roubech » 02 Nov 2011 à 09:46

Bonjour et bienvenu

perso je le ferai en LS
mais comme ça, à vue de nez, je commencerais par vérifier que @attachmentNames retourne bien quelquechose, et surtout une chaine de texte et pas une liste
ensuite, pour le chemin, je pense que tu vas devoir doubler le caractère \ car c'est un caractère spécial
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar Michael DELIQUE » 02 Nov 2011 à 10:06

salut

pour une première bidouille sous Lotus ta formule est pas mal du tout !

mais je pense que je passerais par du Lotus Script qui te donnera beaucoup plus de flexibilité un petit lien qui pourrais t'aider => http://forum.dominoarea.org/initiation- ... 12997.html
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Nutch [Bot] » 02 Nov 2011 à 11:53

Merci beaucoup pour vos réponses ... et les compliments ... :lol:

C'est un peu ce que je craignais ... de devoir me mettre au LS, mais bon, après tout, vous avez certainement raison. Mes petites connaissances en VBA devraient m'aider.

Juste deux petites questions subsidiaires :

1) elle s'appelle comment la variable du fichier rattaché ?
2) si je réussis ce code, est-il possible ensuite de l'exporter vers d'autres postes et comment ?

Encore merci pour le coup de main.
Nutch [Bot]
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 0
Inscrit(e) le : 10 Jan 2012 à 14:41

Messagepar Michael DELIQUE » 02 Nov 2011 à 12:00

re,

tu trouvera ici des tips concernant la gestions de fichiers attacher en LS => http://forum.dominoarea.org/gestion-de- ... s-f48.html


Code : Tout sélectionner
1) elle s'appelle comment la variable du fichier rattaché ?
2) si je réussis ce code, est-il possible ensuite de l'exporter vers d'autres postes et comment


désolé mais je comprend pas !
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar roubech » 02 Nov 2011 à 13:48

Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar Nutch [Bot] » 02 Nov 2011 à 14:18

En fait, je n'en suis qu'au tout début de ma tentative.

Pour faire simple, j'ai une macro excel qui génère un fichier texte. Ce fichier texte est envoyé à un destinataire qui détache ce fichier texte dans un répertoire. Le destinataire utilise la macro excel pour importer ce fichier texte dans le fichier excel. Il y apporte les modifications nécessaires et le renvoie à l'expéditeur.

Donc, je souhaitais créer un bouton en passant par préférences\barres d'outils\personnaliser\créer\bouton et diffuser ces belles formules pour que tous les utilisateurs puissent en profiter. Et c'est là où j'ai coincé ... Encore une fois, je débute complètement et je rame :oops:
Je pense qu'avec les exemples que vous m'avez fourni, je devrais pouvoir sortir quelque chose mais :

    comment déclenche-t-on cet agent nouvellement créé ?
    comment le diffuser à d'autres utilisateurs de Lotus Notes ?


Merci encore et pardon pour mon ignorance crasse
Nutch [Bot]
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 0
Inscrit(e) le : 10 Jan 2012 à 14:41

Messagepar Michael DELIQUE » 02 Nov 2011 à 14:34

salut

je te conseil vivement d'investir dans un livre d'auto-formation, j'en connais un bien qui existe depuis des années. Ce n'est pas un pavé mais il te donnera les base (hormis celle du LS et des xpages) et il n'est pas chère => http://www.eyrolles.com/Informatique/Li ... 2746006621
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Nutch [Bot] » 02 Nov 2011 à 15:02

Bon, j'ai pas mal avancé ! :P

J'ai juste un petit problème : le code suivant fonctionne bien quand le fichier se trouve dans ou en dessous du corps du message :
Code : Tout sélectionner
Sub Initialize()
   
   
   Dim Session As New NotesSession
   Dim doc As NotesDocument
   Set doc = session.DocumentContext
   
   Dim rtitem As Variant
   Set rtitem = doc.GetFirstItem( "Body" )
   
   Dim Compteur As Integer
   Compteur = 0
   
   If ( rtitem.Type = RICHTEXT ) Then
      Forall o In rtitem.EmbeddedObjects
         Compteur = Compteur + 1
         Call o.ExtractFile ( "d:\CB" & o.name)
      End Forall
   End If
   
   
   
End Sub


Seulement, ma macro excel ne met pas le fichier attaché dans le corps du message mais dans la partie supérieure avec l'expéditeur, le destinataire, le sujet, etc.
Je suppose que je dois changer rtitem.Type = RICHTEXT mais je ne sais pas quoi utiliser. Auriez-vous une idée ?
Encore merci
Nutch [Bot]
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 0
Inscrit(e) le : 10 Jan 2012 à 14:41

Messagepar Michael DELIQUE » 02 Nov 2011 à 15:20

re,

version courte , regarde ce tips => http://forum.dominoarea.org/detacher-le ... 11940.html

version longue

remplace

le

rtitem.EmbeddedObjects

par

NotesDocument.EmbeddedObjects

ce qui dans ton cas donne


Code : Tout sélectionner
Sub Initialize()
   
   
   Dim Session As New NotesSession
   Dim doc As NotesDocument
   Set doc = session.DocumentContext
   
   Dim rtitem As Variant
   Set rtitem = doc.GetFirstItem( "Body" )
   
   Dim Compteur As Integer
   Compteur = 0
   
   If ( rtitem.Type = RICHTEXT ) Then
      Forall o In doc.EmbeddedObjects
         Compteur = Compteur + 1
         Call o.ExtractFile ( "d:\CB" & o.name)
      End Forall
   End If
     
End Sub
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Nutch [Bot] » 02 Nov 2011 à 16:11

Désolé, ça me donne une erreur (la même que tout à l'heure, d'ailleurs) :
.
Type incompatible dans la méthode ForAllnit : FROMVAR trouvé(s), Unknown attendu(s)

C'est clair comme du jus de boudin, ça dites donc ! En passant par le débugeur, il s'arrête sur
Code : Tout sélectionner
Forall o In doc.EmbeddedObjects


J'allais me mettre à ta proposition de version longue mais je séche sur la façon d'indiquer le répertoire où l'on souhaite détacher le fichier.

Je présume, comme il s'agit d'une fonction, qu'il faut appeler par une sub quelconque et qu'il faut lui passer les variables ...
Nutch [Bot]
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 0
Inscrit(e) le : 10 Jan 2012 à 14:41

Messagepar Michael DELIQUE » 02 Nov 2011 à 16:27

re,

version corrigé avec gestion des erreurs.

- le path (répertoire de détachement) doit exister


Code : Tout sélectionner
Sub Initialize()
   Dim Session As New NotesSession
   Dim doc As NotesDocument
   Dim rtitem As NotesRichTextItem
   Dim Compteur As Integer
   Dim path As string
   On Error GoTo CatchError
   
   Set doc = session.DocumentContext
   
   
   If Doc.Hasembedded = False Then
      Exit sub
   End If
   
   Compteur = 0
   path = "d:\CB\"
   
   ForAll o In doc.EmbeddedObjects
      Compteur = Compteur + 1
      Call o.ExtractFile ( path + o.name)
   End ForAll
   
   Set rtitem = doc.GetFirstItem( "Body" )
   If Not rtItem Is Nothing Then
      ForAll o In rtitem.EmbeddedObjects
         Compteur = Compteur + 1
         Call o.ExtractFile ( path + o.name)
      End ForAll
   End If

   Exit Sub
CatchError:
   MsgBox Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   Exit Sub
End Sub
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 02 Nov 2011 à 16:30

pour ton affaire de répertoire regarde là => http://forum.dominoarea.org/gestion-de- ... s-f48.html

tu devrais trouver ton bonheur
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Nutch [Bot] » 02 Nov 2011 à 17:01

Ah, là, je comprends mieux ... ou moins mal, disons :D

Par contre, ça bloque toujours sur
Code : Tout sélectionner
Forall o In doc.EmbeddedObjects
:(
Il me dit :
Type mismatch on line 19

On dirait qu'il n'aime pas le "doc.". Pourtant, la variable est bien déclarée ... Je ne comprends pas
Nutch [Bot]
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 0
Inscrit(e) le : 10 Jan 2012 à 14:41

Messagepar Michael DELIQUE » 02 Nov 2011 à 21:16

re,

ton agent est lancé comment ? parceque documentcontext j'ai comme un doute pour l'initialisation de ton doc !
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Suivant

Retour vers Développement