fixou81
Messages postés200Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention12 juin 2007
-
15 mars 2007 à 12:10
fixou81
Messages postés200Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention12 juin 2007
-
15 mars 2007 à 13:55
je viens juste de poster un message, je vous remercie de vos réponses mais je vais tenter de vous exposer clairement le problème.
Sur le premier userform j'ai une saisie de nom avec textbox1 (dans variable varnom). J'ai fait un petit truc qui me créé un document word au nom saisie dans la textbox1. Ensuite l'utilisateur a une list box qui le redirige vers une userform2 (ou 3 selon le choix). Dans cette userform 2 j'ai une petite procedure qui m'ouvre le document de nom saisi dans le userform 1. Pour ouvrir ce docment je fait :
destination = "C:\Documents and Settings..." & VarNom
Documents.Open FileName:=destination
le probleme est qu'il me dit fichier introuvable ce qui est logique car lorsque je regarde les valeurs des variables locales varnom est nul!
Donc ce que j'ai fait j'ai créé un module ou j'ai dit
Public VarNom As String
et ensuite lorsque dans mon userform1 je saisit ce qu'il y a dans la textbox1 j'ai mis
VarNom = textbox1.value
donc comment c fait il que varnom soit vide lorsque je l'utilise dans mon userform2 ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 15 mars 2007 à 13:48
Je vais essayer d'expliquer le plus clairement que je peux...
Tu crées un module qui se nomme Module1 par défaut.
Au tout début, à l'extérieur de toute procédure, tu écris
Public VarNom As String
Dans ton UserForm,
tu affectes la valeur de Textbox1 à VarNom dans une procédure quelconque (command1_Click(), par exemple)
Varnom = Textbox1.Text
' ajouter au besoin l'extension
Varnom = Textbox1.Text & ".doc"
Attention de ne déclarer VarNom que dans le module.
Si dans la procédure du UserForm tu déclares une autre fois une variable VarNom, c'est cette variable qui prendra la valeur et non pas celle déclarée dans le Module1
fixou81
Messages postés200Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention12 juin 2007 15 mars 2007 à 13:47
Donc plus de code pour la comprehension ;
dans le module1 j'ai : Public VarNom As String
dans userform1 en fait j'ai textbox1 puis lorsqu'on clique sur un bouton j'affiche un msgbox pour demander confirmation et ensuite si on repond oui a la validation :
If Message = vbYes Then
VarNom = Saisienom.Text
creation_doc
donc creation doc me créé le document au nom saisit :
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Set WordApp = CreateObject("Word.Application") '-- ouvre une session Word
Set WordDoc = WordApp.Documents.Add '-- crée un nouveau document
WordDoc.SaveAs "C:\Documents and Settings\test\Bureau\fx2\patients" & VarNom &".doc".
La creation du document marche bien..ensuite j'ecris d trucs dans le doc..ca c pas grave et ca marche aussi.
Ensuite l'utilisateut grace a une listbox et ,selon son choix, est redirigé vers un autre userform. Par ex userform2.
L'utilisateur a alors des checkbox.il en selectionne une ou plusieurs et il clique sur un bouton pour valider.
Ce bouton valider entraine alors l'ouverture d'un document existant (correspondant au checkbox selectionnées) ,je copie le document, le ferme (ca ca marche aussi). Puis je veux ouvrir mon 1er document créé au nom de la saisie pour i coller tout le barda.
je fait alors
Dim destination As Stringdestination = "C:\Documents and Settings\test\Bureau\fx2\patients" & VarNom &".doc"
Documents.Open FileName:=destination
Selection.PasteAndFormat (wdPasteDefault)
ActiveDocument.Save
ActiveDocument.Close
mais alors a ce moment la ma variable varnom est vide!!
sachez que j'avais fait ceci sur un meme userform et ca marchait mais pour des raisonsde place j'ai du faire un autre userform pour les checkbox..
Voila donc pourqui varnom est vide?
fixou81
Messages postés200Date d'inscriptionlundi 9 mai 2005StatutMembreDernière intervention12 juin 2007 15 mars 2007 à 13:54
tu avais raison.j'ai redéclaré varnom comme public au debut de mon userform2...voila ,grave erreur!!Merci beaucoup pour votre patiente!!je ne savais pas comment ca fonctionnait et la ca marche nickel..
Encore merci MPi et jrivet et drikce 06 et merci a ce site vraiment trop bien.