VBA erreur de compilation

bonjour à tous.

J ai mis le code suivant dans ce qui suit et j ai le message suivant qui apparait

erreur de compilation variable non définie

merci pour votre aide

Private Sub CommandButton1_Click()

Dim part_name As String
Dim part_prix As Currency

If Me.Cbx_article >= 0 And Me.Txt_nombre <> "" Then

If Me.List_order.ListCount >= 20 Then 'si il y a plus de 20 articles
MsgBox "trop d'article pour cette commande il faut creer une nouvelle commande"
Else

On Error GoTo erreur


part_name = WorksheetFunction.VLookup(Me.Cbx_article, Sheets(2).Range("b:i"), 2, 0)
part_prix = WorksheetFunction.VLookup(Me.Cbx_article, Sheets(2).Range("b:i"), 4, 0)

'remplir la zone de liste

With Me.List_order


.AddItem

.List(memoire, 0) = Me.Cbx_article
.List(memoire, 1) = part_name
.List(memoire, 2) = CCur(part_prix)
.List(memoire, 3) = Me.Txt_nombre




End With



Me.Cbx_article = ""
Me.Txt_nombre = ""

memoire = memoire + 1

ThisWorkbook.Save

Bonjour,

tu utilises la variable "memoire" qui n'est pas déclarée dans la sub. Rajouter:

Dim memoire as Integer

au niveau des autres lignes Dim .

Par ailleurs, il est préférable de formater (bouton </>) le code joint pour qu'il soit plus lisible...

A+

merci. ca marche mais je n ai pas compris formater le bouton ?????

ah oui je ne connais rien en VBA je fais des copier coller avec des videos pour pouvoir faire un gestionnaire de stock à ma fille

Formater le code, copié dans la discussion, à l'aide du bouton...

boutons
Private Sub CommandButton1_Click()

Dim part_name As String
Dim part_prix As Currency

If Me.Cbx_article >= 0 And Me.Txt_nombre <> "" Then

If Me.List_order.ListCount >= 20 Then 'si il y a plus de 20 articles
MsgBox "trop d'article pour cette commande il faut creer une nouvelle commande"
Else

On Error GoTo erreur

part_name = WorksheetFunction.VLookup(Me.Cbx_article, Sheets(2).Range("b:i"), 2, 0)
part_prix = WorksheetFunction.VLookup(Me.Cbx_article, Sheets(2).Range("b:i"), 4, 0)

'remplir la zone de liste

With Me.List_order

.AddItem

.List(memoire, 0) = Me.Cbx_article
.List(memoire, 1) = part_name
.List(memoire, 2) = CCur(part_prix)
.List(memoire, 3) = Me.Txt_nombre

End With

Me.Cbx_article = ""
Me.Txt_nombre = ""

memoire = memoire + 1

ThisWorkbook.Save

L'indenter aide également le lecteur et le rédacteur...

A+

merci.

J ai encore besoin d'un coup de main

Voilà dans la colonne contrôle (feuille 3 order) j ai mis la formule suivante

=SIERREUR(INDEX(Tableau5[Nombre];EQUIV(1;([@[Nr commande]]=Tableau5[@[Nr Bon de commande]])*([@[Nr article]]=[Nr article]);0));"") pour pouvoir accepter les entées et sorties du document (bookink-feuille 5)

1) quand je rentre les données par le bouton ADD y a pas de problèmes aussi bien en entrée quand sortie

mais quand je rentre les données de façon manuelle ( directement dans la colonne "type" rien ne se passe et

2) quand je rentre des articles ou que je sors des articles (sortie entrée ) en deux fois pour la même commande les nombres ne s'additionne pas dans la la feuille 2 ( article) seule le premier nombre s'inscrit

Merci

6doc1.pdf (62.19 Ko)

Salut

je viens de mettre le code que tu m a donne et je ne sais plus ajouter des articles dans mon bon de commande .j ajoute un article mais quand je veux ajouter un deuxième , le deuxième

capture d ecran 2021 03 15 122804

ajout écrase le premier

Pour avoir plus de chance d'avoir des réponses, il vaut mieux limiter une discussion à un seul sujet. Donc nouveau sujet = nouvelle discussion.

Et pour avoir encore plus de chance d'obtenir de l'aide, c'est bien de poster un fichier ... mais une image ou un fichier PDF ne permettent pas de faire des tests et simulations... Joignez un classeur lors de votre prochaine demande.

A+

Rechercher des sujets similaires à "vba erreur compilation"