Code VBA ne fonctionne pas
Fermé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 /-
- Code VBA ne fonctionne pas
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
4 réponses
20 juil. 2022 à 18:48
bonjour,
"ne marche pas": cela fait quoi?
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
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
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
Modifié le 22 juil. 2022 à 12:53
Ce sont les lignes 40 et 42 qui ne marchent pas comme je le souhaite
22 juil. 2022 à 13:55
As-tu compris ma réponse #3?