XL 2016 Erreur de compilation "FOR"

MickaeL_D

XLDnaute Junior
Bonjour à tous les experts,

Dans le code ci-dessous, je rencontre une erreur de compilation "variable de contrôle déjà utilisée".

Auriez-vous une solution svp

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xCell As Range, Rg As Range
    On Error Resume Next
    Set Rg = Application.Intersect(Target, Range("G6:G5000"))
    If Not Rg Is Nothing Then
        For Each xCell In Rg
            If xCell.Value = 21 And (xCell.Offset(0, -3).Value = "71076" Or xCell.Offset(0, -3).Value = "605106" Or xCell.Offset(0, -3).Value = "603149") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU- 036", vbExclamation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\CDC-CAU- 036 - SUIVI MASSE ISOTEX APRES IMPREGNATION\CDC-CAU- 036 - Suivi masse après imprégnation.xlsm"
            End If
        Next
    End If
    Rg = Nothing
    Set Rg = Application.Intersect(Target, Range("D6:D5000"))
    If Not Rg Is Nothing Then
        For Each xCell In Rg
            Select Case xCell.Value
            Case Is = "71073"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-26", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-26.xlsm"
    Rg = Nothing
    On Error Resume Next
    Set Rg = Application.Intersect(Target, Range("X6:X5000"))
    If Not Rg Is Nothing Then
        For Each xCell In Rg
            Select Case xCell.Value
            Case Is = "2,5"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-44", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\CC VITESSE ISOTEX\CDC-2011-44 Vitesse ISOTEX 2.5m-min Avant Racle_ind02 ed00.xlsm"
            Case Else
            End Select
        Next
    End If
End Sub
 
Solution
Re,
Manque encore un EndIf :
VB:
            Case Is = "619980"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-019", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-019.xlsm"
            Case Else
            End Select
        Next
    End If  ' Encore oublié !
D'où l'intérêt d'une indentation correcte, cela évite les oubli de boucle.
Vérifiez au moins votre indentation.
devant chaque If un EndIf, devant chaque For un Next .....

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Mickael,
Il manque un End Select et un Next :
VB:
    Dim xCell As Range, Rg As Range
    On Error Resume Next
    Set Rg = Application.Intersect(Target, Range("G6:G5000"))
    If Not Rg Is Nothing Then
        For Each xCell In Rg
            If xCell.Value = 21 And (xCell.Offset(0, -3).Value = "71076" Or xCell.Offset(0, -3).Value = "605106" Or xCell.Offset(0, -3).Value = "603149") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU- 036", vbExclamation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\CDC-CAU- 036 - SUIVI MASSE ISOTEX APRES IMPREGNATION\CDC-CAU- 036 - Suivi masse après imprégnation.xlsm"
            End If
        Next
    End If
    Rg = Nothing
    Set Rg = Application.Intersect(Target, Range("D6:D5000"))
    If Not Rg Is Nothing Then
        For Each xCell In Rg
            Select Case xCell.Value
                Case Is = "71073"
                    MsgBox "Merci de renseigner la carte de ctrl CDC-2011-26", vbInformation, "Carte de contrôle à remplir"
                    ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-26.xlsm"
            End Select
        Next
    Rg = Nothing
    On Error Resume Next
    Set Rg = Application.Intersect(Target, Range("X6:X5000"))
    If Not Rg Is Nothing Then
        For Each xCell In Rg
            Select Case xCell.Value
                Case Is = "2,5"
                    MsgBox "Merci de renseigner la carte de ctrl CDC-2011-44", vbInformation, "Carte de contrôle à remplir"
                    ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\CC VITESSE ISOTEX\CDC-2011-44 Vitesse ISOTEX 2.5m-min Avant Racle_ind02 ed00.xlsm"
            End Select
        Next
    End If
End Sub
D'où l'intérêt d'une indentation correcte, cela évite les oubli de boucle.
 

MickaeL_D

XLDnaute Junior
Merci à tous pour vos retours.

Je vous joins le code en entier car j'ai toujours une erreur de compilation...
Merci d'avance,

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xCell As Range, Rg As Range
    On Error Resume Next
    Set Rg = Application.Intersect(Target, Range("G6:G5000"))
    If Not Rg Is Nothing Then
        For Each xCell In Rg
            If xCell.Value = 21 And (xCell.Offset(0, -3).Value = "71076" Or xCell.Offset(0, -3).Value = "605106" Or xCell.Offset(0, -3).Value = "603149") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU- 036", vbExclamation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\CDC-CAU- 036 - SUIVI MASSE ISOTEX APRES IMPREGNATION\CDC-CAU- 036 - Suivi masse après imprégnation.xlsm"
            End If
            If xCell.Value = 21 And (xCell.Offset(0, -3).Value = "603180") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU-01", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\MENSCHNER\PRODUITS\CDC-2011-01.xlsm"
            End If
            If xCell.Value = 22 And (xCell.Offset(0, -3).Value = "603180") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU-22", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-22.xlsm"
            End If
            If xCell.Value = 20 And (xCell.Offset(0, -3).Value = "71094") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU-90", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\MENSCHNER\PRODUITS\CDC-2011-90.xlsm"
            End If
            If xCell.Value = 21 And (xCell.Offset(0, -3).Value = "71094") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU-91", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-91.xlsm"
            End If
            If xCell.Value = 21 And (xCell.Offset(0, -3).Value = "619259") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU-08", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\MENSCHNER\PRODUITS\CDC-2011-08.xlsm"
            End If
            If xCell.Value = 22 And (xCell.Offset(0, -3).Value = "619259") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU-51", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-51.xlsm"
            End If
            If xCell.Value = 21 And (xCell.Offset(0, -3).Value = "71113") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU-14", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\MENSCHNER\PRODUITS\CDC-2011-14.xlsm"
            End If
            If xCell.Value = 22 And (xCell.Offset(0, -3).Value = "71113") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU-109", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-109.xlsm"
            End If
            If xCell.Value = 20 And (xCell.Offset(0, -3).Value = "603398") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU-106", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\MENSCHNER\PRODUITS\CDC-2011-106.xlsm"
            End If
            If xCell.Value = 21 And (xCell.Offset(0, -3).Value = "603398") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU-107", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\MENSCHNER\PRODUITS\CDC-2011-107.xlsm"
            End If
            If xCell.Value = 22 And (xCell.Offset(0, -3).Value = "603398") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU-108", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-108.xlsm"
            End If
            If xCell.Value = 22 And (xCell.Offset(0, -3).Value = "71076") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU-102", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-102.xlsm"
            End If
            If xCell.Value = 22 And (xCell.Offset(0, -3).Value = "603149") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU-105", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-105.xlsm"
            End If
            If xCell.Value = 22 And (xCell.Offset(0, -3).Value = "605106") Then
                MsgBox "Merci de renseigner la carte de ctrl CDC-CAU-99", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-99.xlsm"
            End If
        Next
    End If
    Rg = Nothing
    Set Rg = Application.Intersect(Target, Range("D6:D5000"))
    If Not Rg Is Nothing Then
        For Each xCell In Rg
            Select Case xCell.Value
            Case Is = "71073"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-26", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-26.xlsm"
            Case Is = "75129"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-27", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-27.xlsm"
            Case Is = "71077"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-19", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-19.xlsm"
            Case Is = "71082"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-20", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-20.xlsm"
            Case Is = "78685"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-28", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-28.xlsm"
            Case Is = "79511"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-29", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-29.xlsm"
            Case Is = "71112"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-30", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-30.xlsm"
            Case Is = "74404"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-31", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-31.xlsm"
            Case Is = "77904"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-32", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-32.xlsm"
            Case Is = "78670"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-33", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-33.xlsm"
            Case Is = "76032"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-21", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-21.xlsm"
            Case Is = "71079"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-112", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-112.xlsm"
            Case Is = "71157"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-03", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\MENSCHNER\PRODUITS\CDC-2011-03.xlsm"
            Case Is = "76026"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-04", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\MENSCHNER\PRODUITS\CDC-2011-04.xlsm"
            Case Is = "602150"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-06", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\MENSCHNER\PRODUITS\CDC-2011-06.xlsm"
            Case Is = "78592"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-07", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\MENSCHNER\PRODUITS\CDC-2011-07.xlsm"
            Case Is = "71108"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-11", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\MENSCHNER\PRODUITS\CDC-2011-11.xlsm"
            Case Is = "78518"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-12", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\MENSCHNER\PRODUITS\CDC-2011-12.xlsm"
            Case Is = "71105"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-13", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\MENSCHNER\PRODUITS\CDC-2011-13.xlsm"
            Case Is = "76007"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-15", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\MENSCHNER\PRODUITS\CDC-2011-15.xlsm"
            Case Is = "A1004747"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-020", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-020.xlsm"
            Case Is = "602172"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-24", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-24.xlsm"
            Case Is = "602589"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-25", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-25.xlsm"
            Case Is = "603126"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-037", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-037.xlsm"
            Case Is = "603458"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-110", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-110.xlsm"
            Case Is = "603150"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-36", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-36.xlsm"
            Case Is = "603151"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-37", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-37.xlsm"
            Case Is = "603247"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-23", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-23.xlsm"
            Case Is = "619034"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-95", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-95.xlsm"
            Case Is = "619980"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-019", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-019.xlsm"
            Case Else
            End Select
        Next
        Rg = Nothing
    On Error Resume Next
    Set Rg = Application.Intersect(Target, Range("X6:X5000"))
    If Not Rg Is Nothing Then
        For Each xCell In Rg
            Select Case xCell.Value
                Case Is = "2,5"
                    MsgBox "Merci de renseigner la carte de ctrl CDC-2011-44", vbInformation, "Carte de contrôle à remplir"
                    ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\CC VITESSE ISOTEX\CDC-2011-44 Vitesse ISOTEX 2.5m-min Avant Racle_ind02 ed00.xlsm"
            End Select
        Next
    End If
End Sub
sur la fin...
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Manque encore un EndIf :
VB:
            Case Is = "619980"
                MsgBox "Merci de renseigner la carte de ctrl CDC-2011-019", vbInformation, "Carte de contrôle à remplir"
                ThisWorkbook.FollowHyperlink "S:\PRODUCTION\2010-2011\01 - Cartes de contrôle\ISOTEX\PRODUITS\CDC-2011-019.xlsm"
            Case Else
            End Select
        Next
    End If  ' Encore oublié !
D'où l'intérêt d'une indentation correcte, cela évite les oubli de boucle.
Vérifiez au moins votre indentation.
devant chaque If un EndIf, devant chaque For un Next .....
 

Discussions similaires

Statistiques des forums

Discussions
315 088
Messages
2 116 089
Membres
112 658
dernier inscrit
doro 76