Code VBA ne fonctionne pas

Fermé
jus2mandarine Messages postés 225 Date d'inscription vendredi 5 juin 2015 Statut Membre Dernière intervention 13 novembre 2024 - 20 juil. 2022 à 17:45
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 - 22 juil. 2022 à 13:55

Bonjour Chers tous,

Sur la feuille "Booking" du fichier Excel dont l'accès est possible à partir du lien ci-dessous, j'aimerai faire respectivement faire l'enregistrement soit d'un client sur la colonne F, soit d'un fournisseur sur la colonne E. Pour cela, j'ai écrit un code VBA sur la feuille Userform nommée "Add_booking". Malheureusement, le code que j'ai écrit ne marche pas.

https://cjoint.com/c/LGupQyCTht3

Merci de m'aider à trouver une solution

Cordialement /- 

A voir également:

4 réponses

yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 Ambassadeur 1 568
20 juil. 2022 à 18:48

bonjour,

"ne marche pas": cela fait quoi?

0
jus2mandarine Messages postés 225 Date d'inscription vendredi 5 juin 2015 Statut Membre Dernière intervention 13 novembre 2024 1
20 juil. 2022 à 18:52

Bonjour yg_be,

Seule la colonne F enregistre, alors que dans le code, c'est soit la colonne E, soit la colonne F qui devraient enregistrer

0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
20 juil. 2022 à 19:11

Tu n'as pas expliqué comment nous pouvons observer le problème.

Ajoute ceci en ligne 39 de ton code, et explique ce que tu observes

MsgBox Me.Label_type


 

0
jus2mandarine Messages postés 225 Date d'inscription vendredi 5 juin 2015 Statut Membre Dernière intervention 13 novembre 2024 1
22 juil. 2022 à 12:49
Option Explicit
Public memoire As Integer
Private Sub CommandButton1_Click()
    If Me.Txt_facture <> "" And Me.Txt_nombre <> "" And Me.Cbx_order.ListIndex >= 0 And Me.Cbx_type.ListIndex >= 0 Then
        With Me.List_order
            .AddItem
            .List(memoire, 0) = Me.Cbx_article
            .List(memoire, 1) = Me.Txt_nombre
        End With
        memoire = memoire + 1
        Me.Cbx_article = ""
        Me.Txt_nombre = ""
        
    End If
End Sub

Private Sub CommandButton2_Click()
Dim DL As Integer
Dim list_nombre As Integer
Dim ligne As Integer

list_nombre = Me.List_order.ListCount - 1
   If Me.List_order.ListCount > 0 Then 'controle si la liste est vide
        If MsgBox("Voulez-vous enregistrer cette transaction ?", vbYesNo) = vbYes Then
            For ligne = 0 To list_nombre
            
            'Ajouter une nouvelle ligne dans le tableau
            Sheets(5).ListObjects("tableau5").ListRows.Add
            
            'Chercher le nombre de la prochaine ligne libre dans notre tableau
            DL = Sheets(5).Range("b65536").End(xlUp).Row
            
            'Ajouter les informations dans notre base de données
            Sheets(5).Range("B" & DL) = Me.info1
            Sheets(5).Range("C" & DL) = Me.Txt_facture
            Sheets(5).Range("D" & DL) = Me.Cbx_order
            
            'Controler si cest un fournisseur ou un client
            If Me.Label_type = "fournisseur:" Then
                Sheets(5).Range("E" & DL) = Me.Cbx_type
                Else
                Sheets(5).Range("F" & DL) = Me.Cbx_type
            End If
            
            'Ajouter les données
            Sheets(5).Range("G" & DL) = Me.List_order.List(ligne, 0)
            Sheets(5).Range("H" & DL) = CInt(Me.List_order.List(ligne, 1))
            Next ligne
            
            MsgBox "Le Booking est fait"
            Unload Me
            ThisWorkbook.Save
        End If
    End If

End Sub

Private Sub List_order_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    If Me.List_order.ListIndex >= 0 Then
        If MsgBox("Voulez-vous supprimer cette entrée ?", vbYesNo) = vbYes Then
            Me.List_order.RemoveItem Me.List_order.ListIndex
            memoire = memoire - 1
        End If
    End If
End Sub
Private Sub Option_entree_Click()
    Me.Label_type = "Fournisseur:"
    Me.Cbx_type.RowSource = "fournisseur"
    Me.Cbx_order.RowSource = "order_id"
    Me.info1 = "Entrée"
End Sub

Private Sub Option_sortie_Click()
    Me.Label_type = "Client:"
    Me.Cbx_type.RowSource = "Client"
    Me.Cbx_order.RowSource = "order_id"
     Me.info1 = "Sortie"
End Sub

Private Sub Txt_nombre_Change()
  'Contrôle s'il y a un nombre
    If Not IsNumeric(Txt_nombre) And Txt_nombre <> "" Then
        MsgBox "Désolé, saisir uniquement des chiffres !"
        Txt_nombre = ""
    End If
End Sub

Private Sub UserForm_Initialize()
 Me.Label_info.Caption = Sheets(8).Range("e21").Value
End Sub
0
jus2mandarine Messages postés 225 Date d'inscription vendredi 5 juin 2015 Statut Membre Dernière intervention 13 novembre 2024 1
Modifié le 22 juil. 2022 à 12:53

Ce sont les lignes 40 et 42 qui ne marchent pas comme je le souhaite

0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
22 juil. 2022 à 13:55

As-tu compris ma réponse #3?

0