jules56750
XLDnaute Nouveau
fichier marche et tout un coup me renvoi erreur Sheets("entreeor").ListObjects(1).ListRows.Add et m'oblige a relancer excel et apres marche bien pendant un certain temps. code vba 123
je ne comprends plus rien mais debutant en vba
merci pour votre aide
Private Sub CommandButton2_Click() 'Code du bouton enregistrer du userform6
Dim nombre_ligne As Integer
Dim ligne As Integer
Dim DL5 As Integer
Dim MonOR As String
Dim iLigne As Long
Dim DerLigne As Long
Application.ScreenUpdating = False
'On vérifie qu'il y a des choses dans la liste
If Me.ListBox1.ListCount > 0 Then
'demander une confirmation de la commande
If MsgBox("Voulez-vous enregistrer OR ?", vbYesNo) = vbYes Then
'*******************************************************************
If Not Me.cbx_vehicule > "" Then
MsgBox ("Saisir un véhicule")
Exit Sub
End If
'***************************************************************************
'******************************************************************************
Else
GoTo fin
End If
Else
MsgBox " pas de commande disponible"
GoTo fin
End If
'Le numéro d'OR est dans label_info
MonOR = label_info.Value
'Si on a un numéro OR c'est qu'on vient de modifier sinon il faut aller en chercher un nouveau
If MonOR > " " Then
'On supprime toutes les ligne de la feuille entreor avec ce numéro d'OR
Sheets("entreeor").Activate
'Nombre de ligne de la feuille entreeor
DerLigne = Range("C" & Rows.Count).End(xlUp).Row
iLigne = 3
Do
If iLigne > DerLigne Then Exit Do
If Range("C" & iLigne).Value = MonOR Then
Range("C" & iLigne).EntireRow.Delete
DerLigne = DerLigne - 1
Else
iLigne = iLigne + 1
End If
Loop
Else
'on récupère un numéro OR
MonOR = Sheets("Config").Range("E23")
'On ajouote un pour le prochain numéro OR
Sheets("Config").Range("D23") = Sheets("Config").Range("D23") + 1
End If
nombre_ligne = Me.ListBox1.ListCount - 1
For ligne = 0 To nombre_ligne 'On boucle sur chaque ligne de la liste
'on ajoute une ligne dans le tableau
Sheets("entreeor").ListObjects(1).ListRows.Add
'chercher le n° de la prochaine ligne libre dans notre tableau
DL5 = Sheets("entreeor").Range("C" & Rows.Count).End(xlUp).Row
' ajouter nos informations dans notre base de donnée
Sheets("entreeor").Range("C" & DL5) = MonOR
Sheets("entreeor").Range("Q" & DL5) = TextBox23.Value
Sheets("entreeor").Range("D" & DL5) = cbx_vehicule.Value
Sheets("entreeor").Range("E" & DL5) = immatriculation.Value
Sheets("entreeor").Range("F" & DL5) = chassis.Value
Sheets("entreeor").Range("G" & DL5) = Txtkilométrage.Value
Sheets("entreeor").Range("L" & DL5) = Cbxemployés.Value
Sheets("entreeor").Range("M" & DL5) = ComboBox3.Value
Sheets("entreeor").Range("N" & DL5) = travaux.Value
Sheets("entreeor").Range("K" & DL5) = Temps.Value
Sheets("entreeor").Range("I" & DL5) = (Me.ListBox1.List(ligne, 1)) 'désignation' bon
Sheets("entreeor").Range("H" & DL5) = CStr(Me.ListBox1.List(ligne, 0)) 'ref article
Sheets("entreeor").Range("J" & DL5) = (Me.ListBox1.List(ligne, 2)) 'Quantitée
Sheets("entreeor").Range("O" & DL5) = CCur(Me.ListBox1.List(ligne, 3)) 'Prix
Sheets("entreeor").Range("P" & DL5) = (Me.ListBox1.List(ligne, 4)) 'fournisseur
Sheets("entreeor").Range("B" & DL5) = CDate(Now())
Next ligne
'Range("Tabl_OR[N° Ordre]").Select
' ActiveWorkbook.Worksheets("entreeor").ListObjects("Tabl_OR").Sort.SortFields. _
' Clear
' ActiveWorkbook.Worksheets("entreeor").ListObjects("Tabl_OR").Sort.SortFields. _
' Add2 Key:=Range("Tabl_OR[N° Ordre]"), SortOn:=xlSortOnValues, Order:= _
' xlAscending, DataOption:=xlSortNormal
' With ActiveWorkbook.Worksheets("entreeor").ListObjects("Tabl_OR").Sort
' .Header = xlYes
' .MatchCase = False
' .Orientation = xlTopToBottom
' .SortMethod = xlPinYin
' .Apply
' End With
fin:
Unload Me
Application.ScreenUpdating = True
ThisWorkbook.Save
UserForm1.Show
'Sheets("entreeor").Activate
End Sub
je ne comprends plus rien mais debutant en vba
merci pour votre aide
Private Sub CommandButton2_Click() 'Code du bouton enregistrer du userform6
Dim nombre_ligne As Integer
Dim ligne As Integer
Dim DL5 As Integer
Dim MonOR As String
Dim iLigne As Long
Dim DerLigne As Long
Application.ScreenUpdating = False
'On vérifie qu'il y a des choses dans la liste
If Me.ListBox1.ListCount > 0 Then
'demander une confirmation de la commande
If MsgBox("Voulez-vous enregistrer OR ?", vbYesNo) = vbYes Then
'*******************************************************************
If Not Me.cbx_vehicule > "" Then
MsgBox ("Saisir un véhicule")
Exit Sub
End If
'***************************************************************************
'******************************************************************************
Else
GoTo fin
End If
Else
MsgBox " pas de commande disponible"
GoTo fin
End If
'Le numéro d'OR est dans label_info
MonOR = label_info.Value
'Si on a un numéro OR c'est qu'on vient de modifier sinon il faut aller en chercher un nouveau
If MonOR > " " Then
'On supprime toutes les ligne de la feuille entreor avec ce numéro d'OR
Sheets("entreeor").Activate
'Nombre de ligne de la feuille entreeor
DerLigne = Range("C" & Rows.Count).End(xlUp).Row
iLigne = 3
Do
If iLigne > DerLigne Then Exit Do
If Range("C" & iLigne).Value = MonOR Then
Range("C" & iLigne).EntireRow.Delete
DerLigne = DerLigne - 1
Else
iLigne = iLigne + 1
End If
Loop
Else
'on récupère un numéro OR
MonOR = Sheets("Config").Range("E23")
'On ajouote un pour le prochain numéro OR
Sheets("Config").Range("D23") = Sheets("Config").Range("D23") + 1
End If
nombre_ligne = Me.ListBox1.ListCount - 1
For ligne = 0 To nombre_ligne 'On boucle sur chaque ligne de la liste
'on ajoute une ligne dans le tableau
Sheets("entreeor").ListObjects(1).ListRows.Add
'chercher le n° de la prochaine ligne libre dans notre tableau
DL5 = Sheets("entreeor").Range("C" & Rows.Count).End(xlUp).Row
' ajouter nos informations dans notre base de donnée
Sheets("entreeor").Range("C" & DL5) = MonOR
Sheets("entreeor").Range("Q" & DL5) = TextBox23.Value
Sheets("entreeor").Range("D" & DL5) = cbx_vehicule.Value
Sheets("entreeor").Range("E" & DL5) = immatriculation.Value
Sheets("entreeor").Range("F" & DL5) = chassis.Value
Sheets("entreeor").Range("G" & DL5) = Txtkilométrage.Value
Sheets("entreeor").Range("L" & DL5) = Cbxemployés.Value
Sheets("entreeor").Range("M" & DL5) = ComboBox3.Value
Sheets("entreeor").Range("N" & DL5) = travaux.Value
Sheets("entreeor").Range("K" & DL5) = Temps.Value
Sheets("entreeor").Range("I" & DL5) = (Me.ListBox1.List(ligne, 1)) 'désignation' bon
Sheets("entreeor").Range("H" & DL5) = CStr(Me.ListBox1.List(ligne, 0)) 'ref article
Sheets("entreeor").Range("J" & DL5) = (Me.ListBox1.List(ligne, 2)) 'Quantitée
Sheets("entreeor").Range("O" & DL5) = CCur(Me.ListBox1.List(ligne, 3)) 'Prix
Sheets("entreeor").Range("P" & DL5) = (Me.ListBox1.List(ligne, 4)) 'fournisseur
Sheets("entreeor").Range("B" & DL5) = CDate(Now())
Next ligne
'Range("Tabl_OR[N° Ordre]").Select
' ActiveWorkbook.Worksheets("entreeor").ListObjects("Tabl_OR").Sort.SortFields. _
' Clear
' ActiveWorkbook.Worksheets("entreeor").ListObjects("Tabl_OR").Sort.SortFields. _
' Add2 Key:=Range("Tabl_OR[N° Ordre]"), SortOn:=xlSortOnValues, Order:= _
' xlAscending, DataOption:=xlSortNormal
' With ActiveWorkbook.Worksheets("entreeor").ListObjects("Tabl_OR").Sort
' .Header = xlYes
' .MatchCase = False
' .Orientation = xlTopToBottom
' .SortMethod = xlPinYin
' .Apply
' End With
fin:
Unload Me
Application.ScreenUpdating = True
ThisWorkbook.Save
UserForm1.Show
'Sheets("entreeor").Activate
End Sub