Adapter textbox en fonction combobox automatiquement

Llyod

XLDnaute Nouveau
Bonjour,

Je reviens vers vous pour avoir de l'aide pour mon problème.

Actuellement, suivant la valeur choisie dans la combobox, la textbox s'adapte quand j'appui sur le bouton " Validez ".
Je bloque pour placer ce code dans l'initiation de l'userform et ainsi que la valeur de la textbox évolue quand je change la valeur choisie dans la combobox.

Dim Mois, Fourni, ligne, colonne As Range

Mois = TextBox5.Value
Fourni = ComboBox2.Value


With Sheets("2016")

.Range("B18", "B33").Select
Set ligne = Selection.Find(What:=Fourni, After:=ActiveCell, LookIn:=xlValue, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False)

.Range("C4", "N4").Select
Set colonne = Selection.Find(What:=Mois, After:=ActiveCell, LookIn:=xlValue, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False)


If Not ligne Is Nothing And Not colonne Is Nothing Then

TextBox4 = .Cells(ligne.Row, colonne.Column).Value
'MsgBox ("Colonne " & Selection.Column & " / Ligne " & Selection.Row)

Else
End If
End With


Je vous joint mon fichier excel, et vous remercie de votre aide,

Baptiste
 

Pièces jointes

  • Compa.xlsm
    77.7 KB · Affichages: 66
  • Compa.xlsm
    77.7 KB · Affichages: 61

bbb38

XLDnaute Accro
Re : Adapter textbox en fonction combobox automatiquement

Bonjour Baptiste, le forum,
Actuellement, suivant la valeur choisie dans la combobox, la textbox s'adapte quand j'appui sur le bouton " Validez ".
Après avoir complété l’UserForm2, si je clique sur « Valider », j’ai le message d’erreur suivant « Erreur d’exécution ‘9’ ; ….. ».
Je bloque pour placer ce code dans l'initiation de l'userform et ainsi que la valeur de la textbox évolue quand je change la valeur choisie dans la combobox.
Si tu places ton code dans l’initialisation de l’UserForm (Sub UserForm_Initialize), celui-ci ne sera exécuté qu’au chargement de l’objet UserForm2, et non en fonction de la Combobox.
Cordialement,
Bernard
 

cathodique

XLDnaute Barbatruc
Re : Adapter textbox en fonction combobox automatiquement

Bonjour Llyod,

S'il te plaît explique-nous, ce que tu veux obtenir. Pas ce que tu as tenté d'obtenir.
Pour quel usage l'userform va te servir (insérer de nouvelles données ou modifier?).
Ta feuille est mal agencée, si c'est un bd.

@+
 

job75

XLDnaute Barbatruc
Re : Adapter textbox en fonction combobox automatiquement

Bonjour Llyod, Bernard, le forum,

Après avoir complété l’UserForm2, si je clique sur « Valider », j’ai le message d’erreur suivant « Erreur d’exécution ‘9’ ; ….. ».

Oui, faute d'orthographe : LookIn:=xlValues

Par ailleurs, Lloyd, en VBA les Select sont à éviter, ils sont en général inutiles, voire nuisibles.

Je me suis permis de modifier votre code mais vous n'êtes pas du tout obligé de me suivre :)

Code:
Private Sub CommandButton3_Click()
TextBox4 = ""
If IsDate("1/" & TextBox5) And ComboBox2.ListIndex > -1 Then
  TextBox4 = Sheets("2016").Cells(ComboBox2.ListIndex + 18, Month("1/" & TextBox5) + 2)
  TextBox4 = Format(TextBox4, "0.00 €")
End If
End Sub

Private Sub UserForm_Initialize()
Dim c As Range

TextBox5 = Application.Proper(Format(Date, "mmmm"))

With Sheets("2016")
  For Each c In .[C:C].SpecialCells(xlCellTypeConstants, 2)
    If c Like "Encaissement*" Then ComboBox1.AddItem c
  Next
  If .[B18] <> "" Then If .[B19] = "" Then ComboBox2.AddItem .[B18] Else _
    ComboBox2.List = .Range("B18", .[B18].End(xlDown)).Value
End With

End Sub

Edit 1 : bonjour cathodique, je ne vous avais pas vu. Llyod est en phase d'élaboration de son projet.

Edit 2 : ajouté le cas .[B19] = "" (un seul fournisseur).

A+
 
Dernière édition:

Llyod

XLDnaute Nouveau
Re : Adapter textbox en fonction combobox automatiquement

Bonjour à tous,

Excusez-moi de ne pas avoir répondu plus tôt, je me suis fait hospitalisé entre temps ;)
Merci d'avoir pris du temps pour me répondre.

Si tu places ton code dans l’initialisation de l’UserForm (Sub UserForm_Initialize), celui-ci ne sera exécuté qu’au chargement de l’objet UserForm2, et non en fonction de la Combobox.
Cordialement,
Bernard

Merci pour cette information, j'ai cependant dans une autre feuille excel, un For qui permet de mettre automatique les textbox dans l'initialisation de l'userform.

S'il te plaît explique-nous, ce que tu veux obtenir. Pas ce que tu as tenté d'obtenir.
Pour quel usage l'userform va te servir (insérer de nouvelles données ou modifier?).

Salut cathodique, ce classeur me permet de suivre la comptabilité de mon entreprise. J'ai mis en place cet userform pour m'informer et rentrer de nouvelles données de manière plus claire !
Avant cet userform, ca devient vite le bordel pour mettre des données, ne pas se planter de mois ou de fournisseur, cela fausse tout les calculs ensuite.

J'aimerais ensuite ajouter une textbox " Commentaires ", écrire par exemple "Facture 20023" et retrouver ce commentaire sous de forme de commentaire sur la cellule. J'ai commencer à chercher sur internet, ça semble assez complexe !

Je te l'accorde, il faut que je change l'userform, mettre qu'une case "Montant", si la recherche trouve une valeur, la case se grise, sinon on peux écrire le montant que l'on souhaite ajouté.

Après je ne sais pas si on peux appeler ça une base de données..Dit moi si c'est plus clair, les modifications que tu apporterais..;)

Code:
Private Sub CommandButton3_Click()
TextBox4 = ""
If IsDate("1/" & TextBox5) And ComboBox2.ListIndex > -1 Then
  TextBox4 = Sheets("2016").Cells(ComboBox2.ListIndex + 18, Month("1/" & TextBox5) + 2)
  TextBox4 = Format(TextBox4, "0.00 €")
End If
End Sub

Private Sub UserForm_Initialize()
Dim c As Range

TextBox5 = Application.Proper(Format(Date, "mmmm"))

With Sheets("2016")
  For Each c In .[C:C].SpecialCells(xlCellTypeConstants, 2)
    If c Like "Encaissement*" Then ComboBox1.AddItem c
  Next
  If .[B18] <> "" Then If .[B19] = "" Then ComboBox2.AddItem .[B18] Else _
    ComboBox2.List = .Range("B18", .[B18].End(xlDown)).Value
End With

End Sub

Edit 2 : ajouté le cas .[B19] = "" (un seul fournisseur).

A+

Salut job75, et merci beaucoup pour ce code, il marche parfaitement et évite l'utilisation des Select.

Je suis un grand débutant en vba, pourriez-vous me l'expliquer plus en détail ? Surtout l'explication des fonctions .AddItem, .ListIndex, ComboBox2.ListIndex + 18..

EDIT : Je m'y suis penché dessus ce soir, un grand merci à job75, j'ai pu ainsi revoir l'ensemble du code et franchement ton code marche du feu de dieu. Un grand merci à vous tous :cool:
Je mets en PJ, la version finale. La problématique est pour mettre des commentaires, j'ouvre un autre topic pour que soit plus clair.


En tout cas un grand merci d'avoir pris le temps de m'aider.

En attente de vos réponses,

Baptiste
 

Pièces jointes

  • Compa.xlsm
    81 KB · Affichages: 50
  • Compa.xlsm
    81 KB · Affichages: 36
Dernière modification par un modérateur:

Discussions similaires

Statistiques des forums

Discussions
315 133
Messages
2 116 602
Membres
112 801
dernier inscrit
Yaz113