Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

TextBox = valeur de la cellule

H

Henri

Guest
Bonjour le forum,
Je débute en vba et je rencontre un problème de syntaxe que je souhaite vous soumettre.
Le bout de macro qui ne fonctionne pas est : If TexteBox1.Value = Range('D10').Value ........ (Bien sûr, cette cellule est dans la feuille excel où s'affiche l'Userform).
Comment puis-je écrire ce morceau de syntaxe pour que ça fonctionne ?
Un grand merci par avance.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Henri

Que veux-tu exactement dire ? on dirait que tu as zappé un morceau de ta phrase...

If TexteBox1.Value = Range('D10').Value ........
(Bien sûr, cette cellule est dans la feuille excel où s'affiche l'Userform).
Comment puis-je écrire ce morceau de syntaxe pour que ça fonctionne si le UserForm est affiché depuis une autre Feuille ?

Si c'est celà, ce n'est pas compliqué :

Méthode 1 (Basic)
Private Sub UserForm_Initialize()
TextBox1.Value = Sheets('Feuil1').Range('D10').Value
End Sub

Méthode 2 (Avec un With)
Private Sub UserForm_Initialize()
With Sheets('Feuil1')
TextBox1.Value = .Range('D10').Value
End With
End Sub

Cette Méthode sera utilisée pour plusieurs TextBox :
Private Sub UserForm_Initialize()
With Sheets('Feuil1')
TextBox1.Value = .Range('D10').Value
TextBox2.Value = .Range('E10').Value
TextBox3.Value = .Range('F10').Value
End With
End Sub

Méthode 3 (Avec un Set D'Object)
Private Sub UserForm_Initialize()
Dim WS As Worksheet

Set WS = ThisWorkbook.Worksheets('Feuil1')

With WS
TextBox1.Value = .Range('D10').Value
TextBox2.Value = .Range('E10').Value
TextBox3.Value = .Range('F10').Value
End With
End Sub

Le Set D'Object bien défini permet en Outre de travailler aussi en Multi-Classeurs Ouvert

Bonne Soirée
@+Thierry
 
H

Henri

Guest
Bonjour le Forum, Thierry,
Je vous remercie pour votre réponse.
En fait, ma syntaxe est : If TextBox1.Value=.Range('D10').Value Then Userform1 Unload:Exit Sub
Je viens de tenter de la changer avec ce que vous me proposez et cela ne fonctionne pas.
Je me suis probablement mal exprimé dans mon premier message et je vous prie de me pardonner.
Voyez-vous une solution à mon problème ?
Un grand merci par avance.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re bonsoir Henri

Ah oui tu t'es plutôt mal exprimé, (on peut se tutoyer sur XLD)

Tu n'as laissé transparaitre dans ta question aucun problème de If ...

Je conseille ce genre de Syntax plutôt que d'utiliser les ':'



Attention on écrit Unload Userform1 et pas l'inverse (ou Unload Me si c'est le UserForm Actif)

Bonne Soirée
[ol]@+Thierry[/ol]
 
H

Henri

Guest
Bonjour le forum, Thierry, Will,
Je vous remercie pour vos réponses.
Les 2 syntaxes fonctionnent et en ce qui concerne le tutoiement, je n'ai pas l'habitude, même sur les forums (j'ai 55 ans et je suis de la vieille école).
Encore merci pour votre gentillesse et votre disponibilité.
Je vous souhaite une bonne soirée.
 

Discussions similaires

Réponses
16
Affichages
565
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…