Erreurs sur mon VBA
Bonjour,
Il me reste quelques erreurs sur mon VBA que je ne parviens pas à corriger malgré de nombreuses recherches
- dans la feuille "listes_cascade" dans les cellules I5 et J5 "sélectionner" n'apparaît pas
- dans la feuille "construction" les listes no commercial et article sont censées contenir des informations mais elles sont vides
Si vous avez des idées, je vous en remercie!
Bonjour Oceane et le forum,
C'est rectifié et ça fonctionne chez moi.
J'avais une erreur 1004 à l'ouverture du fichier. Cela provenait certainement de la ligne 2 de la feuille listes_cascade. Il y avait des cellules fusionnées et le VBA n'aime pas trop cela.
Bonjour,
Autre solution:
Modification du code Workbook_open
Private Sub Workbook_Open()
Dim colonne As Integer: Dim ligne As Integer
Dim ligne_bd As Integer: Dim plage As Range
Application.ScreenUpdating = False 'pour éviter les rafraîchissement de l'écran et accélerer l'exécution de la macro
'on réinitialise les données
Sheets("listes_cascade").liste_date.Clear
Sheets("listes_cascade").liste_nocommercial.Clear
Sheets("listes_cascade").liste_article.Clear
'on retire la dernière donnée en mémoire
Sheets("listes_cascade").liste_date.Value = ""
Sheets("listes_cascade").liste_nocommercial.Value = ""
Sheets("listes_cascade").liste_article.Value = ""
For colonne = 2 To 6 Step 2 'pour omettre les colonnes entre
ligne = 5
While Sheets("construction").Cells(ligne, colonne).Value <> "" 'valeur non vide
Sheets("construction").Cells(ligne, colonne).Value = ""
ligne = ligne + 1
Wend
Next colonne
ligne_bd = 2: ligne = 5
While Sheets("bd_sorties").Cells(ligne_bd, 1).Value <> "" 'valeur non vide
Sheets("construction").Cells(ligne, 2).Value = Sheets("bd_sorties").Cells(ligne_bd, 1).Value
ligne = ligne + 1: ligne_bd = ligne_bd + 1
Wend
ligne = ligne - 1
Sheets("construction").Select 'activation de la feuille construction
Set plage = Sheets("construction").Range(Sheets("construction").Cells(5, 2), Sheets("construction").Cells(ligne, 2))
ActiveSheet.Range(Sheets("construction").Cells(5, 2), Sheets("construction").Cells(ligne, 2)).RemoveDuplicates Columns:=1, Header:=xlNo ' retire les doublons
ActiveWorkbook.Worksheets("construction").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("construction").Sort.SortFields.Add Key:=Range("B5"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("construction").Sort
.SetRange plage
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply ' A REVOIR
End With
ligne = 4
While Sheets("construction").Cells(ligne, 2).Value <> ""
Sheets("listes_cascade").liste_date.AddItem Sheets("construction").Cells(ligne, 2).Value
ligne = ligne + 1
Wend
Sheets("listes_cascade").Select
Sheets("listes_cascade").liste_date.ListIndex = 0
End SubModification des codes de la feuille "Listes_cascade"
Private Sub liste_nocommercial_change()
Application.ScreenUpdating = False 'pour éviter les rafraîchissement de l'écran et accélerer l'exécution de la macro
liste_article.Clear
If liste_nocommercial.Value <> "Séléctionner un numéro commercial" Then
Sheets("listes_cascade").Range("I5").Value = liste_nocommercial.Value
charger_article
End If
Sheets("listes_cascade").Range("J5").Value = liste_article.Value
End Sub
Private Sub liste_date_Change()
Application.ScreenUpdating = False 'pour éviter les rafraîchissement de l'écran et accélerer l'exécution de la macro
'charger_activite
liste_nocommercial.Clear
liste_article.Clear
With Sheets("listes_cascade")
If liste_date.Value <> "Séléctionner une date" Then
.Range("H5").Value = liste_date.Value
charger_nocommercial
Else
.Range("H5").Value = ""
End If
End With
End Sub
Private Sub liste_article_change()
Application.ScreenUpdating = False 'pour éviter les rafraîchissement de l'écran et accélerer l'exécution de la macro
If liste_article.Value <> "Séléctionner un article" Then
Sheets("listes_cascade").Range("J5").Value = liste_article.Value
Else
Sheets("listes_cascade").Range("J5").Value = ""
End If
End SubLe fichier
Cdlt