1 pièce(s) jointe(s)
Erreur d'execution '13' entre deux macro
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
Code:
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 celles-ci de l'userform ajoutfournisseur
Code:
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 |
et ici le fichier joins pour être plus claire
Merci à vous tous cordialement