Code VBA ne fonctionne pas

Fermé
jus2mandarine Messages postés 220 Date d'inscription vendredi 5 juin 2015 Statut Membre Dernière intervention 1 décembre 2023 - 20 juil. 2022 à 17:45
yg_be Messages postés 22770 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 mai 2024 - 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 22770 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 mai 2024 1 481
20 juil. 2022 à 18:48

bonjour,

"ne marche pas": cela fait quoi?

0
jus2mandarine Messages postés 220 Date d'inscription vendredi 5 juin 2015 Statut Membre Dernière intervention 1 décembre 2023
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 22770 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 mai 2024 1 481
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 220 Date d'inscription vendredi 5 juin 2015 Statut Membre Dernière intervention 1 décembre 2023
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 220 Date d'inscription vendredi 5 juin 2015 Statut Membre Dernière intervention 1 décembre 2023
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 22770 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 mai 2024 1 481
22 juil. 2022 à 13:55

As-tu compris ma réponse #3?

0