écrire dans un fichier avec une userform

psycho

XLDnaute Nouveau
Salut le Forum,
Je consulte excel download depuis des mois et des mois sans jamais poster parce que je trouve toutes mes réponses avec la fonction recherche du forum :) Mais là je seche donc je saute sur le bouton 'nouveau'

Je connais trés bien Excel, ses formules, ses boutons etc mais je débute en VBA.
Je voudrais pourvoir saisir un texte dans une userform et coller ce texte dans un autre fichier.
Genre ça

TextBox1.Value = Sheets('Feuil1').Range('A1')

mais avec le chemin du fichier, et je ne connais pas la syntaxe.


Merci d'avance et si quelqu'un pouvais me conseiller un bon livre sur le VBA ce serais sympa.
 

JCA06

XLDnaute Occasionnel
Bonjour psycho,

Un bon conseil si tu débutes en vba, pense à utiliser l'enregistreur de macro qui génère du code et qui permet de t'habituer à la syntaxe et à l'approche objet.

Par exemple, si tu lances l'enregistreur et que tu fais un copier à partir d'un classeur, que tu ouvres un second classeur et que tu fais un coller, tu pourra arrêter l'enregistreur et te précipiter dans vba (Alt+F11) pour voir le code qui a été généré.

Ceci te montrera la syntaxe pour définir un classeur (Workbooks()), une feuille et une plage.

Pour ce qui est de ton code, il n'est pas si mal si tu l'inverse dans la mesure où tu va définir la valeur de ta cellule en fonction de ton usf :
WorkBooks('Ton Classeur').Sheets('Feuil1').Range('A1') = TextBox1.Value

Autre petite astuce très simple mais précieuse lorsque l'on débute : taper en minuscule pour voir si vba retrouve les instruction. De cette façon, on retrouve facilement certaines erreurs.

Bon travail, et félicitation pour avoir commencé par chercher avant de poster, c'est la meilleure façon d'apprendre.
 

psycho

XLDnaute Nouveau
Merci JCA d'avoir vu mon post alors qu'il était déjà bien bas dans la liste :)

Le code que tu m'a donné est à mettre dans le fichier où j'ai l'usf exact ? et pas dans celui ou je veux coller le texte.

Un truc que je ne comprend pas, il peux y avoir plusieurs objets qui s'apellent TextBox1 (un sur une feuille et un dans une usf par exemple), comment les différencier parce que ton code

WorkBooks('Ton Classeur').Sheets('Feuil1').Range('A1') = TextBox1.Value

Il ne va pas chercher la TextBox1 qui est dans l'usf ...
 

JCA06

XLDnaute Occasionnel
Bonjour psycho, bonjour le forum,

Le code doit effectivement être associé à ton usf.
Tu crées ta textbox et tu fais apparaître la fenêtre de code associée à ton usf (F7).
Dans cette fenêtre, en haut à gauche tu choisies ta textbox, et à droite, tu dois choisir un évènement (Dblclick par exemple).
En plaçant ainsi ta ligne de code, la macro (événementielle) sera lancée lorsque tu fera un double clic sur ta textbox.

Tu peux également placer cette ligne dans une autre procédure.

Pour ce qui est de la possibilité d'avoir plusieur Textbox1, tu peux préciser que tu fais référence à celui lié à ton code en ajoutant 'Me' devant :
Me.TextBox1.Value
Ou tu peux préciser que tu fais référence à la textbox de la feuille 1 :
Sheets('Feuil1').Shapes('TextBox1').Value

A plus
 

psycho

XLDnaute Nouveau
Ok, je comprend mieux avec le Shape.

Par contre avec ce code, j'ai une erreur d'excution '9' qui me signale un 'indice en dehors de la plage'

Code:
Private Sub CommandButton1_Click()

With Sheets('Feuil1')
Workbooks('C:/partagé/classeur2.xls').Sheets('Feuil1').Range('A1') = TextBox1.Value

End With
Unload Me
End

Je suis dans le code de l'userform, le CommandButton1 est le bouton 'valider' de ma fenetre.
Je ne comprend pas ce qui cloche :huh:

Message édité par: psycho, à: 07/10/2005 15:18
 

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 953
Membres
103 404
dernier inscrit
sultan87