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,

11doc2.docx (91.77 Ko)

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).Value

Bonjour,

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,

vba-new a écrit :

En supposant que ta combobox s'appelle 'ship_to' et ta textbox 'adresse'

On n'a pas les bons noms.

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 Sub

Je 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 Sub

Un tout grand merci !

Rechercher des sujets similaires à "vba 2010"