VBA Excel 2010
Bonjour,
j'ai une feuille excel 2010 avec des données en colonne A et B.
J'ai un userform, sur lequel j'ai une listbox en relation avec les données de la colonne A et une textbox que je voudrais mettre en relation avec les données de la colonne B, mais plus spécifiquement avec celle en rapport avec la donnée que j'ai choisi à partir de ma listbox (donc en relation avec la colonne A).
Pouvez-vous me communiquer le code VBA afin que ma textbox ce mette à jour en fonction de la donnée que je sélectionne dans ma listbox, soit automatiquement une fois une donnée choisie, soit en passant par un bouton.
Merci D'avance,
Fabrice
Bonjour Fabrice, bienvenue sur le forum,
Il faudrait que tu joignes un fichier (avec des données bidons mais en gardant la structure exacte) afin que l'on te trouve une solution adaptée.
Bonjour,
Il s'agit d'un template et Je ne peux pas vous envoyer le fichier format XLTM avec les macro, je ne peux vous envoyer que des print screen
Je voudrais donc que lorsque je choisi une donnée sur le userform1 on niveau de la listbox 'ship to' (en relation avec la colonne A de la feuil 4, dans l'exemple, la données AAA), apparaisse dans la textbox 'adresse' la donnée reprise en colonne B de la feuil 4 en vis à vis de la valeur choisie au niveau de la listbox 'ship to' (la donnée DDD dans l'exemple.
merci d'avance,
Re,
On va faire avec.
En supposant que ta combobox s'appelle 'ship_to' et ta textbox 'adresse', une solution avec ce code à mettre dans l'évènement Change de ta combobox :
Dim shipTo As Range
'on cherche le nom
On Error Resume Next
Set shipTo = Sheets("Feuil4").Columns("A").Find(ship_to.Value, , , xlWhole)
On Error GoTo 0
'si on ne trouve pas le nom on sort de la procédure
If shipTo Is Nothing Then MsgBox "Nom non trouvé": Exit Sub
adresse.Value = shipTo.Offset(, 1).ValueBonjour,
Je vois renvoie le fichier car je rencontre toujours un problème.
J'ai placé le code comme demandé dans l'event 'change' de la combo box, mais lorsque je sélectionne une donnée dans la combo, j'ai le message d'erreur qui apparait.
Fabrice
Re,
On n'a pas les bons noms.vba-new a écrit :En supposant que ta combobox s'appelle 'ship_to' et ta textbox 'adresse'
Voici le code associé :
Private Sub Shipto_Change()
Dim ShipToRng As Range
'on cherche le nom
On Error Resume Next
Set ShipToRng = Sheets("Feuil4").Columns("A").Find(Me.Shipto.Value, , , xlWhole)
On Error GoTo 0
'si on ne trouve pas le nom on sort de la procédure
If ShipToRng Is Nothing Then MsgBox "Nom non trouvé": Exit Sub
Me.Adresse1.Value = ShipToRng.Offset(, 1).Value
End SubJe vous remercie, cela fonctionne à present.
Il me reste néanmoins un dernier soucis:
Ces données, une fois rapatriées vers les combo et textbox 'shipto, adresse1, adresse2 et pays 'doivent être recopiées vers la feuille excel Feuil1 via le bouton 'Commandebutton1'' de mon userform qui comprend le code suviant:
Private Sub CommandButton1_Click()
Range("FEUIL1!A12,D12,A21").Value = Shipto.Value
Range("FEUIL1!A13,D13,A22").Value = Adresse1.Value
Range("FEUIL1!A14,D14,A23").Value = Adresse2.Value
Range("FEUIL1!A15,D15,A24").Value = Pays.Value
Ce code, qui fonctionnait parfaitement lors de l'introduction manuel de données dans les textbox, ne fonctionne à present plus.
Pouvez-vous me dire quel update je dois faire sur ce code?
Encore merci d'avance, en espérant qu'après cela, c'est tout
Utilise plutôt cette syntaxe :
Private Sub CommandButton1_Click()
With Sheets("Feuil1")
.Range("f23").Value = Demandeur.Value
.Range("A12,D12,A21").Value = Shipto.Value
.Range("A13,D13,A22").Value = Adresse1.Value
.Range("A14,D14,A23").Value = Adresse2.Value
.Range("A15,D15,A24").Value = Pays.Value
.Range("A16,D16,A25").Value = Attn.Value
.Range("e24").Value = Incoterms.Value
.Range("f24").Value = Incoville.Value
.Range("A32").Value = description1.Value
.Range("A34").Value = Description2.Value
.Range("A36").Value = Description3.Value
.Range("A38").Value = Description4.Value
.Range("A40").Value = Description5.Value
.Range("A42").Value = Description6.Value
.Range("A44").Value = Description7.Value
.Range("A46").Value = Description8.Value
.Range("A48").Value = Description9.Value
.Range("A50").Value = Description10.Value
.Range("A33").Value = ADR1.Value
.Range("A35").Value = ADR2.Value
.Range("A37").Value = ADR3.Value
.Range("A39").Value = ADR4.Value
.Range("A41").Value = ADR5.Value
.Range("A43").Value = ADR6.Value
.Range("A45").Value = ADR7.Value
.Range("A47").Value = ADR8.Value
.Range("A49").Value = ADR9.Value
.Range("A51").Value = ADR10.Value
.Range("d33").Value = Taric1.Value
.Range("d35").Value = Taric2.Value
.Range("d37").Value = Taric3.Value
.Range("d39").Value = Taric4.Value
.Range("d41").Value = Taric5.Value
.Range("d43").Value = Taric6.Value
.Range("d45").Value = Taric7.Value
.Range("d47").Value = Taric8.Value
.Range("d49").Value = Taric9.Value
.Range("d51").Value = Taric10.Value
.Range("e25").Value = ConditionT°1.Value
.Range("d32").Value = Référence1.Value
.Range("d34").Value = Référence2.Value
.Range("d36").Value = Référence3.Value
.Range("d38").Value = Référence4.Value
.Range("d40").Value = Référence5.Value
.Range("d42").Value = Référence6.Value
.Range("d44").Value = Référence7.Value
.Range("d46").Value = Référence8.Value
.Range("d48").Value = Référence9.Value
.Range("d50").Value = Référence10.Value
.Range("E32").Value = Quantité1.Value
.Range("E34").Value = Quantité2.Value
.Range("E36").Value = Quantité3.Value
.Range("E38").Value = Quantité4.Value
.Range("E40").Value = Quantité5.Value
.Range("E42").Value = Quantité6.Value
.Range("E44").Value = Quantité7.Value
.Range("E46").Value = Quantité8.Value
.Range("E48").Value = Quantité9.Value
.Range("E50").Value = Quantité10.Value
.Range("F32").Value = Unité1.Value
.Range("F34").Value = Unité2.Value
.Range("F36").Value = Unité3.Value
.Range("F38").Value = Unité4.Value
.Range("F40").Value = Unité5.Value
.Range("F42").Value = Unité6.Value
.Range("F44").Value = Unité7.Value
.Range("F46").Value = Unité8.Value
.Range("F48").Value = Unité9.Value
.Range("F50").Value = Unité10.Value
.Range("G32").Value = Prix1.Value
.Range("G34").Value = Prix2.Value
.Range("G36").Value = Prix3.Value
.Range("G38").Value = Prix4.Value
.Range("G40").Value = Prix5.Value
.Range("G42").Value = Prix6.Value
.Range("G44").Value = Prix7.Value
.Range("G46").Value = Prix8.Value
.Range("G48").Value = Prix9.Value
.Range("G50").Value = Prix10.Value
End With
'Ferme l'UserForm nommé UserForm1
Unload UserForm1
End SubUn tout grand merci !