Code VBA ne fonctionne pas
jus2mandarine
Messages postés
258
Statut
Membre
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 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 /-
A voir également:
- Code VBA ne fonctionne pas
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
4 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour,
"ne marche pas": cela fait quoi?
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
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