Problèmme = erreur de complitation : Sub ou function non définie

Bonjour,

Je suis novice en programmation et je commence à m'intéresser à la programmation en VBA. Je rencontre actuellement un problème dont je n'arrive à pas comprendre la cause. J'ai créé un formulaire avec un useform afin de me remplir une feuille automatiquement. Dans mon useform j'arrive à faire afficher les informations désirer mais lorsque je lance la commande d'ajout automatique pour envoyer les informations à la feuille excel j'ai un message d'erreur "problème de compliation : sub ou fonction non définie".

Je voudrais donc savoir quelle erreur ai-je commise s'il vous plâit.

Merci,

St quantique.

code

'Boutton commande envoi la liste au tableau bon de commande
Private Sub Cmd_commander_Click()

'Déclaration des variables

Dim nombre_ligne As Integer
Dim ligne As Integer
Dim y As Integer

'Ajout des lignes du tableau dans la base de donnée
If Me.List_order.ListCount > 0 And Me.Cbx_fournisseur > 0 Then
If msbox("Voulez-vous passer la commande?", vbYesNo) = vbYes Then

nombre_ligne = Me.List_order.ListCount - 1

For ligne = 0 To nombre_ligne
Sheets(3).listojects(1).ListRow.Add
dl = Sheets(3).Range("b9999").End(xlUp).Row

Sheets(3).Range("b" & y) = Me.Label_info.Caption
Sheets(3).Range("c" & y) = CDate(Now())
Sheets(3).Range("d" & y) = Me.List_order.List(ligne, 0)
Sheets(3).Range("e" & y) = Me.List_order.List(ligne, 1)
Sheets(3).Range("g" & y) = CCur(Me.List_order.List(ligne, 2))
Sheets(3).Range("f" & y) = CInt(Me.List_order.List(ligne, 3))
Sheets(3).Range("i" & y) = Me.Cbx_fournisseur

Next ligne

Sheets(8).Range("d20") = Sheets(8).Range("d20") + 1
Unload Add_order

End If

Else
MsgBox "Aucune commande possible"

End If
End Sub

bonjour,

1) merci de mettre ton code entre balise </>

2) sur quelle instruction as-tu le message d'erreur ?

3) mettre un fichier dans lequel on peut reproduire l'erreur aide grandement pour obtenir de l'aide.

Rebonjour,

Merci de ta réponse voici je ne sais pas de quel instruction viens le problème car c'est le private sub cmd_commander_click () qui est surlingé en jaune. Est qu'il faut je transmette mon fichier ?

Je met le code entre balise ci-dessus

<'Boutton commande envoi la liste au tableau bon de commande
Private Sub Cmd_commander_Click()

'Déclaration des variables

Dim nombre_ligne As Integer
Dim ligne As Integer
Dim y As Integer

'Ajout des lignes du tableau dans la base de donnée
If Me.List_order.ListCount > 0 And Me.Cbx_fournisseur > 0 Then
If msbox("Voulez-vous passer la commande?", vbYesNo) = vbYes Then

nombre_ligne = Me.List_order.ListCount - 1

For ligne = 0 To nombre_ligne
Sheets(3).listojects(1).ListRow.Add
dl = Sheets(3).Range("b9999").End(xlUp).Row

Sheets(3).Range("b" & y) = Me.Label_info.Caption
Sheets(3).Range("c" & y) = CDate(Now())
Sheets(3).Range("d" & y) = Me.List_order.List(ligne, 0)
Sheets(3).Range("e" & y) = Me.List_order.List(ligne, 1)
Sheets(3).Range("g" & y) = CCur(Me.List_order.List(ligne, 2))
Sheets(3).Range("f" & y) = CInt(Me.List_order.List(ligne, 3))
Sheets(3).Range("i" & y) = Me.Cbx_fournisseur

Next ligne

Sheets(8).Range("d20") = Sheets(8).Range("d20") + 1
Unload Add_order

End If

Else
MsgBox "Aucune commande possible"

End If
End Sub>

'Boutton commande envoi la liste au tableau bon de commande
Private Sub Cmd_commander_Click()

'Déclaration des variables

Dim nombre_ligne As Integer
Dim ligne As Integer
Dim y As Integer

'Ajout des lignes du tableau dans la base de donnée
If Me.List_order.ListCount > 0 And Me.Cbx_fournisseur > 0 Then
If msbox("Voulez-vous passer la commande?", vbYesNo) = vbYes Then

nombre_ligne = Me.List_order.ListCount - 1

For ligne = 0 To nombre_ligne
Sheets(3).listojects(1).ListRow.Add
dl = Sheets(3).Range("b9999").End(xlUp).Row

Sheets(3).Range("b" & y) = Me.Label_info.Caption
Sheets(3).Range("c" & y) = CDate(Now())
Sheets(3).Range("d" & y) = Me.List_order.List(ligne, 0)
Sheets(3).Range("e" & y) = Me.List_order.List(ligne, 1)
Sheets(3).Range("g" & y) = CCur(Me.List_order.List(ligne, 2))
Sheets(3).Range("f" & y) = CInt(Me.List_order.List(ligne, 3))
Sheets(3).Range("i" & y) = Me.Cbx_fournisseur

Next ligne

Sheets(8).Range("d20") = Sheets(8).Range("d20") + 1
Unload Add_order

End If

Else
MsgBox "Aucune commande possible"

End If
End Sub

J'ai fais un mauvais copier coller du code voici le bon

'boutton commande commander

Private Sub Cmd_commander_Click()
Dim nombre_ligne As Integer
Dim ligne As Integer
Dim DL As Integer

If Me.List_order.ListCount > 0 And Me.Cbx_fournisseur.ListIndex >= 0 Then

    'Demander une confirmation de la commande
   If MsgBox("Voluez-vous passer la commande?", vbYesNo) = vbYes Then

        nombre_ligne = Me.List_order.ListCount - 1

        For ligne = 0 To nombre_ligne
            Sheets(3).ListObjects(1).ListRows.Add
            DL = Sheets(3).Range("b9999").End(xlUp).Row

            'Afficher les information dans la base de donnée bon de commande
            sheeets(3).Range("B" & DL) = Me.Label_info.Caption
            sheeets(3).Range("C" & DL) = CDate(Now())
            sheeets(3).Range("D" & DL) = Me.List_order.List(ligne, 0)
            sheeets(3).Range("E" & DL) = Me.List_order.List(ligne, 1)
            sheeets(3).Range("G" & DL) = CCur(Me.List_order.List(ligne, 2))
            sheeets(3).Range("F" & DL) = CInt(Me.List_order.List(ligne, 3))
            Sheets(3).Range("I" & DL) = Me.Cbx_fournisseur

        Next ligne

        Sheets(8).Range("d20") = Sheets(8).Range("d20") + 1
        Unload Add_order

    End If

Else

    MsgBox "pas de commande disponible"

End If

End Sub

bonjour,

je suppose que l'erreur vient de e en trop dans ces instructions sheeets utilise sheets à la place

sheeets(3).Range("B" & DL) = Me.Label_info.Caption
            sheeets(3).Range("C" & DL) = CDate(Now())
            sheeets(3).Range("D" & DL) = Me.List_order.List(ligne, 0)
            sheeets(3).Range("E" & DL) = Me.List_order.List(ligne, 1)
            sheeets(3).Range("G" & DL) = CCur(Me.List_order.List(ligne, 2))
            sheeets(3).Range("F" & DL) = CInt(Me.List_order.List(ligne, 3))
            Sheets(3).Range("I" & DL) = Me.Cbx_fournisseur

Merci beaucoup le code fonctionne maintenant

Rechercher des sujets similaires à "problemme erreur complitation sub function definie"