Erreur d’exécution '91

Bonsoir à tous,

Je débute en VBA et essaie de créer un formulaire sur une base de donnée de produits avec : une référence, une description, un prix HT , un taux de TVA et un coût d'achat respectivement dans les colonnes A B C D E.

Sur ce formulaire il y a deux ComboBox : 1) Code produit et 2) Taux de TVA

Il y a 3 TextBox : 1) Description 2) Prix HT 3) Coût d'achat

J'ai pour l'instant réussi à faire fonctionner les Combobox correctement (même si mon taux de TVA n'apparaît pas en pourcentage dans la liste...)

Mon problème intervient dans le 2e code, je souhaiterais que les 3 Textbox et la ComboBox2 se remplissent en fonction de ce que je choisi dans la ComboBox1 (Code produit)

J'ai écris ce code mais un message de débogage apparaît : "Variable objet ou variable de bloc with non définie"

Ce n'est peut être pas grand chose mais je n'ai pas le niveau pour retrouver mon erreur, alors si vous l'avez n'hésitez pas

Merci d'avance

Private Sub UserForm_Initialize()

Dim J As Long

Dim Ws As Worksheet

Set Ws = Sheets("BDD Produits")

With Me.ComboBox1

For J = 4 To Ws.Range("A" & Rows.Count).End(xlUp).Row

.AddItem Ws.Range("A" & J)

Next J

End With

Sheets("Données").Select

ComboBox2.List = Range("E7:E10").Value

End Sub

Private Sub ComboBox1_Change()

Dim Ligne As Long

Dim I As Integer

If Me.ComboBox1.ListIndex = -1 Then Exit Sub

Ligne = Me.ComboBox1.ListIndex + 3

ComboBox2 = Ws.Cells(Ligne, "D")

For I = 1 To 3

Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 3)

Next I

End Sub

Bonsoir,

Ws non définie dans votre Sub...

@ bientôt

LouReeD

Bonsoir elisa,

LouReed (salut !) a raison : il y a un Ws non défini dans ta 2ème sub ; pour régler ce problème, déplace la ligne Dim Ws As Worksheet de ta 1ère sub en début de module, en dehors d'une sub ; ainsi, ce sera une variable globale du module, qui est correctement initialisée dans la 1ère sub UserFormInitialize() par Set Ws = Sheets("BDD Produits") et qui est ensuite connue et utilisée par tes 2 subs.

J'ai bien parlé d'un déplacement, pas d'une copie !

dhany

Bonjour, merci pour vos réponses au passage, savez vous comment faire pour que dans ma ComboBox2 la liste des taux de TVA s'affiche en pourcentages et non en décimales ?

Merci d'avance

Une combobox contient du texte, donc tu peux mettre par exemple : 18,25 %

regarde aussi l'instruction VBA Format() et son aide.

dhany

Rechercher des sujets similaires à "erreur execution"