Bonjout tout le monde,
J'ai un code extrêmement répétitif et j'aimerais le réduire, il s'agit de la fonction if elseif else ifend.
Pas d'insultes, c'ets vraiment très grand, merci beaucoups
(je mets juste une partie, parcqu'il y a 5400 lignes)
If Worksheets("Feuil3").Range("IN21") = Worksheets("Feuil3").Range("A41") Then
Worksheets("Feuil3").Range("IL21").Copy
lig = 1
Do While Worksheets("Feuil3").Range("A351").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("Feuil3").Range("A" & lig + 350).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("IL21").Select
Selection.ClearContents
Range("IL23").Select
ElseIf Worksheets("Feuil3").Range("IN21") = Worksheets("Feuil3").Range("A42") Then
Worksheets("Feuil3").Range("IL21").Copy
lig = 1
Do While Worksheets("Feuil3").Range("B351").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("Feuil3").Range("B" & lig + 350).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("IL21").Select
Selection.ClearContents
Range("IL23").Select
ElseIf Worksheets("Feuil3").Range("IN21") = Worksheets("Feuil3").Range("A43") Then
Worksheets("Feuil3").Range("IL21").Copy
lig = 1
Do While Worksheets("Feuil3").Range("C351").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("Feuil3").Range("C" & lig + 350).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("IL21").Select
Selection.ClearContents
Range("IL23").Select
ElseIf Worksheets("Feuil3").Range("IN21") = Worksheets("Feuil3").Range("A44") Then
Worksheets("Feuil3").Range("IL21").Copy
lig = 1
Do While Worksheets("Feuil3").Range("D351").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("Feuil3").Range("D" & lig + 350).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("IL21").Select
Selection.ClearContents
Range("IL23").Select
ElseIf Worksheets("Feuil3").Range("IN21") = Worksheets("Feuil3").Range("A45") Then
Worksheets("Feuil3").Range("IL21").Copy
lig = 1
Do While Worksheets("Feuil3").Range("E351").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("Feuil3").Range("E" & lig + 350).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("IL21").Select
Selection.ClearContents
Range("IL23").Select
ElseIf Worksheets("Feuil3").Range("IN21") = Worksheets("Feuil3").Range("A46") Then
Worksheets("Feuil3").Range("IL21").Copy
lig = 1
Do While Worksheets("Feuil3").Range("F351").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("Feuil3").Range("F" & lig + 350).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("IL21").Select
Selection.ClearContents
Range("IL23").Select
ElseIf Worksheets("Feuil3").Range("IN21") = Worksheets("Feuil3").Range("A47") Then
Worksheets("Feuil3").Range("IL21").Copy
lig = 1
Do While Worksheets("Feuil3").Range("G351").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("Feuil3").Range("G" & lig + 350).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("IL21").Select
Selection.ClearContents
Range("IL23").Select
(répété x fois en changeant A41, A42, A43, A44, A45, A46, A47 PAR B41 --> A47, C41 --> C47 .... Comme ça jusqu'à AJ47)
L'ensemble du code se termine par :
Else
Range("IL21").Select
End If
End Sub
En rouge, ce sont les seules valeurs qui sont modifiées.
Merci de votre aide, parce que je n'ai pas vraiment d'idées sur la façon dont je peux réduire tout ce bazarre sachant qu'il me dit que c'est trop grand. Et donc ça ne marche pas.
Vous faut-il d'autres éléments ?
Merci
J'ai un code extrêmement répétitif et j'aimerais le réduire, il s'agit de la fonction if elseif else ifend.
Pas d'insultes, c'ets vraiment très grand, merci beaucoups
(je mets juste une partie, parcqu'il y a 5400 lignes)
If Worksheets("Feuil3").Range("IN21") = Worksheets("Feuil3").Range("A41") Then
Worksheets("Feuil3").Range("IL21").Copy
lig = 1
Do While Worksheets("Feuil3").Range("A351").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("Feuil3").Range("A" & lig + 350).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("IL21").Select
Selection.ClearContents
Range("IL23").Select
ElseIf Worksheets("Feuil3").Range("IN21") = Worksheets("Feuil3").Range("A42") Then
Worksheets("Feuil3").Range("IL21").Copy
lig = 1
Do While Worksheets("Feuil3").Range("B351").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("Feuil3").Range("B" & lig + 350).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("IL21").Select
Selection.ClearContents
Range("IL23").Select
ElseIf Worksheets("Feuil3").Range("IN21") = Worksheets("Feuil3").Range("A43") Then
Worksheets("Feuil3").Range("IL21").Copy
lig = 1
Do While Worksheets("Feuil3").Range("C351").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("Feuil3").Range("C" & lig + 350).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("IL21").Select
Selection.ClearContents
Range("IL23").Select
ElseIf Worksheets("Feuil3").Range("IN21") = Worksheets("Feuil3").Range("A44") Then
Worksheets("Feuil3").Range("IL21").Copy
lig = 1
Do While Worksheets("Feuil3").Range("D351").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("Feuil3").Range("D" & lig + 350).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("IL21").Select
Selection.ClearContents
Range("IL23").Select
ElseIf Worksheets("Feuil3").Range("IN21") = Worksheets("Feuil3").Range("A45") Then
Worksheets("Feuil3").Range("IL21").Copy
lig = 1
Do While Worksheets("Feuil3").Range("E351").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("Feuil3").Range("E" & lig + 350).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("IL21").Select
Selection.ClearContents
Range("IL23").Select
ElseIf Worksheets("Feuil3").Range("IN21") = Worksheets("Feuil3").Range("A46") Then
Worksheets("Feuil3").Range("IL21").Copy
lig = 1
Do While Worksheets("Feuil3").Range("F351").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("Feuil3").Range("F" & lig + 350).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("IL21").Select
Selection.ClearContents
Range("IL23").Select
ElseIf Worksheets("Feuil3").Range("IN21") = Worksheets("Feuil3").Range("A47") Then
Worksheets("Feuil3").Range("IL21").Copy
lig = 1
Do While Worksheets("Feuil3").Range("G351").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("Feuil3").Range("G" & lig + 350).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("IL21").Select
Selection.ClearContents
Range("IL23").Select
(répété x fois en changeant A41, A42, A43, A44, A45, A46, A47 PAR B41 --> A47, C41 --> C47 .... Comme ça jusqu'à AJ47)
L'ensemble du code se termine par :
Else
Range("IL21").Select
End If
End Sub
En rouge, ce sont les seules valeurs qui sont modifiées.
Merci de votre aide, parce que je n'ai pas vraiment d'idées sur la façon dont je peux réduire tout ce bazarre sachant qu'il me dit que c'est trop grand. Et donc ça ne marche pas.
Vous faut-il d'autres éléments ?
Merci