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
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