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 ':'

Private Sub CommandButton1_Click()

   
If TextBox1.Value = Sheets('Feuil1').Range('D10').Value Then
        MsgBox 'Condition Remplie'
        Unload Me
   
Else
        MsgBox 'Condition NON-Remplie'
   
End If

End Sub


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
501

Statistiques des forums

Discussions
312 362
Messages
2 087 638
Membres
103 621
dernier inscrit
breizhyoda