Bonjour tous le monde
Voila je suis face à une erreur dont j'arrive pas à trouver la cause, en effet j'ai deux userform qui contiennent des macros le premier contient un combobox qui m'affiche la liste des fournisseur et un bouton qui appel le deuxième userform et dans ce deuxième userfom de textbox qui permet d'ajouter un nouveau fournisseur qui envoi les données vers une feuille nommée "Liste_fournisseur"
jusque là tout fonctionne bien mais dès que je vide la feuille "Liste_fournisseur" en la remettant à zéro au lancement de l'userform il y a débogage Erreur d'execution '13'
Voici l'ensemble des macros de l'userform menu
Et celles-ci de l'userform ajoutfournisseur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Dim f, choix1() Private Sub CommandButton1_Click() AjoutFournisseurs.Show End Sub Private Sub UserForm_Initialize() Set f = Sheets("liste_Fournisseurs") choix1 = Application.Transpose(f.Range("d12:D" & f.[D65000].End(xlUp).Row)) Me.ComboBox1.List = choix1 End Sub Private Sub ComboBox1_Change() If Me.ComboBox1.ListIndex = -1 And IsError(Application.Match(Me.ComboBox1, choix1, 0)) Then Me.ComboBox1.List = Filter(choix1, Me.ComboBox1.Text, True, vbTextCompare) Me.ComboBox1.DropDown End If End Sub
et ici le fichier joins pour être plus claire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 Private Sub AjoutNouveauFournisseur_Click() Dim Ctrl As Control Dim r As Integer Dim Derligne As Integer Dim LigneDebut As Long 'Si le Fourniseurs_TextBox est vide ou c'est une valeur numérique If Trim(Fourniseurs_TextBox) = "" Or IsNumeric(Fourniseurs_TextBox) Then 'Alors arrêt avec ce message en sortant de la boucle et en retourant sur Fourniseurs_TextBox MsgBox "Votre cellule est vide ou en format incorrecte! Veuillez le redéfinir", vbCritical On Error GoTo 0: Fourniseurs_TextBox.SetFocus: Exit Sub End If With Worksheets("Liste_Fournisseurs") LigneDebut = 12 Derligne = .Range("C" & Cells.Rows.Count).End(xlUp).Row + 1 For Each Ctrl In AjoutFournisseurs.Controls r = Val(Ctrl.Tag) If r > 0 Then .Cells(Derligne, r) = Ctrl Next Fourniseurs_TextBox = "" Fourniseurs_TextBox.SetFocus End With ActiveWorkbook.Worksheets("Liste_Fournisseurs").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Liste_Fournisseurs").Sort.SortFields.Add Key:= _ Range("D12:D" & Derligne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _ :=xlSortNormal ActiveWorkbook.Worksheets("Liste_Fournisseurs").Sort.SortFields.Add Key:= _ Range("C12:C" & Derligne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _ :=xlSortTextAsNumbers With ActiveWorkbook.Worksheets("Liste_Fournisseurs").Sort .SetRange Range("B11:D" & Derligne) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub Private Sub Annulation_Click() Unload AjoutFournisseurs End Sub Private Sub UserForm_Initialize() DateBox.Value = FormatDateTime(Now, vbShortDate) End Sub
Merci à vous tous cordialement
Partager