Erreur de compilation avec For/next et If/Else/End If

Bonjour ,

Dans la boucle suivante dès que j'ajoute la condition supplémentaire avec le Else, la boucle ne fonctionne plus et j'ai une erreur de compilation qui me marque "Next sans For" . Merci de votre aide.

'Copie les données de la fich de fab et l'onglet Process suivant le nb de lignes

For i = 2 To nbligne + 1
Windows("Macro_PlyB.xlsm").Activate
Sheets("Feuil2").Select
Range("D" & i & ":J" & i & "").Copy
Windows("Masque_Plybook.xlsx").Activate
Sheets("Process").Select
Range("A33").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Range("A33").Select
ActiveWorkbook.Sheets("Process").Copy After:=ActiveWorkbook.Sheets(Sheets.Count)
ActiveSheet.Name = "Process_" & [A33]

' insertion images msv
Set target = Range("B33")
If target.Value = "Mise sous vide" Then
Range("B7").Select
ActiveSheet.Pictures.Insert("K:\Production\1- Méthodes\3-Création_Plybook\Images\MSV.JPG").Select

Else
If target.Value = "Mise sous vide finale" Then
Range("B7").Select
ActiveSheet.Pictures.Insert("K:\Production\1- Méthodes\3-Création_Plybook\Images\MSVF.JPG").Select

End If

Next i

Bonjour User_695.

Je pense qu'il te manque un "End If" tout simplement, Pense a utiliser la tabulation dans ton code, peut-être que cela peut t'aider à y voir plus clair

For i = 2 To nbligne + 1
    Windows("Macro_PlyB.xlsm").Activate
    Sheets("Feuil2").Select
    Range("D" & i & ":J" & i & "").Copy
    Windows("Masque_Plybook.xlsx").Activate
    Sheets("Process").Select
    Range("A33").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

    Range("A33").Select
    ActiveWorkbook.Sheets("Process").Copy After:=ActiveWorkbook.Sheets(Sheets.Count)
    ActiveSheet.Name = "Process_" & [A33]

    ' insertion images msv
    Set target = Range("B33")
        If target.Value = "Mise sous vide" Then
            Range("B7").Select
            ActiveSheet.Pictures.Insert("K:\Production\1- Méthodes\3-Création_Plybook\Images\MSV.JPG").Select
        Else
            If target.Value = "Mise sous vide finale" Then
                Range("B7").Select
                ActiveSheet.Pictures.Insert("K:\Production\1- Méthodes\3-Création_Plybook\Images\MSVF.JPG").Select
            End If
        End If

Next i

A+

Bonjour,

Lorsque vous postez un code, merci d'utiliser les balises de codes en cliquant sur l'icone </> disponible dans le menu et en collant le code dans la fenêtre

Il vous manque un END IF avant le NEXT i.

Sinon votre code comme ceci :

Dim i As Byte
Dim nbligne as integer
For i = 2 To nbligne + 1
    Workbooks("Macro_PlyB.xlsm").Sheets("Feuil2").Range("D" & i & ":J" & i & "").Copy
    With Workbooks("Masque_Plybook.xlsx").Sheets("Process")
        .Range("A33").PasteSpecial Paste:=xlPasteValues
        .Copy After:=ActiveWorkbook.Sheets(Sheets.Count)
        ActiveSheet.Name = "Process_" & .Range("A33")
    End With
' insertion images msv

    If .Range("B33").Value = "Mise sous vide" Then
        ActiveSheet.Range("B7").Pictures.Insert("K:\Production\1- Méthodes\3-Création_Plybook\Images\MSV.JPG").Select

    Else
        If .Range("B33").Value = "Mise sous vide finale" Then
            ActiveSheet.Range("B7").Pictures.Insert("K:\Production\1- Méthodes\3-Création_Plybook\Images\MSVF.JPG").Select
        End If
    End If
Next i

NB : évitez d'utiliser des instructions disponibles (comme TARGET dans votre code) dans VBA pour définir vos variables. Choisissez toujours d'autres noms

si ok -->

Cordialement

Edit : oups GABIN ... j'aurais pu m'abstenir..

tout simplement... quel boulet ... Merci beaucoup , effectivement ça va beaucoup d'un coup

Veillez à mettre votre profil à jour en mentionnant notamment votre version excel

Crdlt

Salut @Dan, C'est pas grave t'as réponse était mieux détaillée !

J'essaye d'être actif ce matin, je cherche une bonne excuse pour envoyer mon prochain message

Rechercher des sujets similaires à "erreur compilation next else end"