Code VBA ne fonctionne pas

jus2mandarine Messages postés 258 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -

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 /- 

4 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour,

    "ne marche pas": cela fait quoi?

    0
  2. jus2mandarine Messages postés 258 Statut Membre 1
     

    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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      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
  3. jus2mandarine Messages postés 258 Statut Membre 1
     
    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
  4. jus2mandarine Messages postés 258 Statut Membre 1
     

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

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      As-tu compris ma réponse #3?

      0