Macro VBA : erreur Else sans if
Résolu
ricnoynoy
Messages postés
17
Statut
Membre
-
M-12 Messages postés 1349 Statut Membre -
M-12 Messages postés 1349 Statut Membre -
Bonjour,
Je ne parviens pas à résoudre mon problème de else sans if. (j'ai pourtant bien un saut de ligne après chaque "then", des elseif,des end with, end if que je pense bien placé.
Excel me note l'erreur "else sans if" au niveau du premier elseif avec ("cabriot").
Ma macro sert à copier le contenu de 4 textbox(textbox10,20,30,40,50) d'un userform en fonction du textbox20 et à les coller dans l'onglet correspondant à textbox20 puis à les coller dans l'onglet "récap" sans condition puis à trier toutes les lignes des colonnes de A à I de "récap" par date du plus ancien au plus récent (colonne C).
Voici ma macro :
Private Sub CommandButton1_Click()
If TextBox20.Value = "Ansot" Then
With Sheets("ANSOT")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Cabriot" Then
With Sheets("CABRIOT")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Hellere" Then
With Sheets("HELLERE")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "JM" Then
With Sheets("JM")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Julien" Then
With Sheets("JULIEN")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Lhote" Then
With Sheets("LHOTE")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Luc" Then
With Sheets("LUC")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Marc" Then
With Sheets("MARC")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Marine" Then
With Sheets("MARINE")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Pierre" Then
With Sheets("PIERRE")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
End If
With .Sheets("RECAP")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
Range("C13:C65000").Select
Selection.Sort Key1:=Range("C13"), Order1:=xlAscending
Sheets("ENTREE FACTURE").Select
End With
End Sub
Merci d'avance à tous.
Je ne parviens pas à résoudre mon problème de else sans if. (j'ai pourtant bien un saut de ligne après chaque "then", des elseif,des end with, end if que je pense bien placé.
Excel me note l'erreur "else sans if" au niveau du premier elseif avec ("cabriot").
Ma macro sert à copier le contenu de 4 textbox(textbox10,20,30,40,50) d'un userform en fonction du textbox20 et à les coller dans l'onglet correspondant à textbox20 puis à les coller dans l'onglet "récap" sans condition puis à trier toutes les lignes des colonnes de A à I de "récap" par date du plus ancien au plus récent (colonne C).
Voici ma macro :
Private Sub CommandButton1_Click()
If TextBox20.Value = "Ansot" Then
With Sheets("ANSOT")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Cabriot" Then
With Sheets("CABRIOT")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Hellere" Then
With Sheets("HELLERE")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "JM" Then
With Sheets("JM")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Julien" Then
With Sheets("JULIEN")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Lhote" Then
With Sheets("LHOTE")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Luc" Then
With Sheets("LUC")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Marc" Then
With Sheets("MARC")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Marine" Then
With Sheets("MARINE")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
ElseIf TextBox20.Value = "Pierre" Then
With Sheets("PIERRE")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
End With
End If
With .Sheets("RECAP")
With .Cells(.Rows.Count, "A").End(xlUp)(2)
.Value = TextBox10
.Offset(0, 1).Value = TextBox20
.Offset(0, 2).Value = TextBox30
.Offest(0, 3).Value = TextBox40
.Offest(0, 4).Value = TextBox50
Range("C13:C65000").Select
Selection.Sort Key1:=Range("C13"), Order1:=xlAscending
Sheets("ENTREE FACTURE").Select
End With
End Sub
Merci d'avance à tous.
A voir également:
- If and vba
- Spybot search and destroy - Télécharger - Antivirus & Antimalwares
- Find and mount - Télécharger - Récupération de données
- Disk boot failure insert system disk and press enter - Guide
- Nif pull and bear - Forum Consommation & Internet
- Vba attendre 1 seconde ✓ - Forum VB / VBA