Toujours ces variables..

Résolu
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007 - 15 mars 2007 à 12:10
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 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 ? 

10 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
15 mars 2007 à 13:38
Salut,
Est tu sur d'avoir qu'une seule déclaration pour VarNom?

@+: Ju£i?n
Pensez: Réponse acceptée
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
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

MPi
3
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007
15 mars 2007 à 12:12
rectification dans mon userform1 j'ai mis
varnom = textbox1.text et non .value
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
15 mars 2007 à 12:14
Attention, je ne vois pas là d'extention de fichier !!

destination = "C:\Documents and Settings..." & VarNom & ".Doc"

A+
Exploreur

 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007
15 mars 2007 à 12:18
je l'ai bien mise j'ai juste fait un copier-coller trop court..mais l'erreur ne viens pas de la
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 mars 2007 à 12:57
Dans quel événement de la UserForm1 as-tu défini que :
Varnom= textbox1.text
???
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
15 mars 2007 à 13:13
Et met plus de code pour la compréhension  stp!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 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?
0
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 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.
0
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007
15 mars 2007 à 13:55
et merci aussi  a exploreur!
0
Rejoignez-nous