Macro VBA : erreur Else sans if [Résolu/Fermé]

Signaler
Messages postés
15
Date d'inscription
jeudi 25 avril 2019
Statut
Membre
Dernière intervention
3 mai 2019
-
Messages postés
836
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
9 juillet 2020
-
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.

1 réponse

Messages postés
836
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
9 juillet 2020
166
Bonjour,

Regarde un peu ta procédure,
tu as un IF
suivi de deux WITH
et un seul END WITH
rajoute un END WITH et cela devrait aller
et corrigeant également les OFFSET
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60450 internautes nous ont dit merci ce mois-ci