Problème de code

Bonjour à tous,

Je retourne ce code depuis un petit moment est impossible de comprendre l'erreur :

'Copie des Données du CE dans l'ensemble des Nouveaux onglets

Dim nommarche2 As String, Ligne As Integer

Dim nommarche1 As String 'Définition de la variable a et nommarche2

Ligne = 3

While Ligne < 104 'Tant que la cellule est remplie

Sheets("nom marche").Activate 'activation de la feuille marché

nommarche2 = Sheets("nom marche").Cells(Ligne, 3) 'Définition variable marché

nommarche1 = Sheets("nom marche").Cells(Ligne, 1) 'Définition variable marché

Dim Cel As Range, Plage As Range, NbLg As Long

Dim NomColonne

Dim I As Integer, Colonne As Integer, Decalage As Integer

With Sheets(nommarche1)

.Select

NomColonne = Array("""C.A. (Ventes + Prest.)""", """Personnel (F.P. + M.O.E.)""", """Marge - Frais directs""")

For I = 0 To UBound(NomColonne)

Decalage = 2: If I = 2 Then Decalage = 4

If I = 1 Then Decalage = 4

Set Cel = Cells.Find(What:=NomColonne(I), LookIn:=xlValues, lookat:=xlWhole)

If Not Cel Is Nothing Then

Colonne = Cel.Column

NbLg = Cells(Rows.Count, Colonne).End(xlUp).Row

If Plage Is Nothing Then

Set Plage = Application.Union(Range(Cells(8, Colonne), Cells(NbLg, Colonne)), Range(Cells(8, Colonne + Decalage), Cells(NbLg, Colonne + Decalage)))

Else

Set Plage = Application.Union(Plage, Range(Cells(8, Colonne), Cells(NbLg, Colonne)), Range(Cells(8, Colonne + Decalage), Cells(NbLg, Colonne + Decalage)))

End If

Else

MsgBox "Colonne" & NomColonne & " introuvable"

End If

Next I

If Not Plage Is Nothing Then

Plage.Select

End If

selection.Copy

Sheets(nommarche2).Rang("Q5").Select

ActiveSheet.Paste

Ligne = Ligne + 1 'Boucle sur l'ensemble des onglets

Wend

L'erreur que me renvoie Excel est Wend sans While !

Alors que j'ai bien un While au tout début de ma macro !

Des pistes ?

Si tu apprennais à indenter ton code tu aurais vu en deux secondes qu'il te manquait un END IF et un END WITH

While Ligne < 104 'Tant que la cellule est remplie

    Sheets("nom marche").Activate 'activation de la feuille marché

    nommarche2 = Sheets("nom marche").Cells(Ligne, 3) 'Définition variable marché
    nommarche1 = Sheets("nom marche").Cells(Ligne, 1) 'Définition variable marché

    Dim Cel As Range, Plage As Range, NbLg As Long
    Dim NomColonne
    Dim I As Integer, Colonne As Integer, Decalage As Integer

    With Sheets(nommarche1)
        .Select

        NomColonne = Array("""C.A. (Ventes + Prest.)""", """Personnel (F.P. + M.O.E.)""", """Marge - Frais directs""")
        For I = 0 To UBound(NomColonne)
            Decalage = 2: If I = 2 Then Decalage = 4
            If I = 1 Then Decalage = 4
                Set Cel = Cells.Find(What:=NomColonne(I), LookIn:=xlValues, lookat:=xlWhole)
                If Not Cel Is Nothing Then
                    Colonne = Cel.Column
                    NbLg = Cells(Rows.Count, Colonne).End(xlUp).Row
                    If Plage Is Nothing Then
                        Set Plage = Application.Union(Range(Cells(8, Colonne), Cells(NbLg, Colonne)), Range(Cells(8, Colonne + Decalage), Cells(NbLg, Colonne + Decalage)))
                    Else
                        Set Plage = Application.Union(Plage, Range(Cells(8, Colonne), Cells(NbLg, Colonne)), Range(Cells(8, Colonne + Decalage), Cells(NbLg, Colonne + Decalage)))
                    End If
                Else
                    MsgBox "Colonne" & NomColonne & " introuvable"
                End If
            End If

        Next I

        If Not Plage Is Nothing Then
            Plage.Select
        End If

        Selection.Copy
        Sheets(nommarche2).Rang("Q5").Select
        ActiveSheet.Paste

        Ligne = Ligne + 1 'Boucle sur l'ensemble des onglets
    End With

Wend

J'avais déjà remarqué cela ...

Sauf que malheureusement Si je rajoute ce END IF l'erreur est :

End If sans Bloc IF ...

Impossible Le code que je t'ai filé est fonctionnel.

Moi j'ai vraiment une erreur de ce type ...

Bizarre

En effet, j'avais mal vu il faut enlever un end if

While Ligne < 104 'Tant que la cellule est remplie

    Sheets("nom marche").Activate 'activation de la feuille marché

    nommarche2 = Sheets("nom marche").Cells(Ligne, 3) 'Définition variable marché
   nommarche1 = Sheets("nom marche").Cells(Ligne, 1) 'Définition variable marché

    Dim Cel As Range, Plage As Range, NbLg As Long
    Dim NomColonne
    Dim I As Integer, Colonne As Integer, Decalage As Integer

    With Sheets(nommarche1)
        .Select

        NomColonne = Array("""C.A. (Ventes + Prest.)""", """Personnel (F.P. + M.O.E.)""", """Marge - Frais directs""")
        For I = 0 To UBound(NomColonne)
            Decalage = 2: If I = 2 Then Decalage = 4
            If I = 1 Then Decalage = 4
                Set Cel = Cells.Find(What:=NomColonne(I), LookIn:=xlValues, lookat:=xlWhole)
                If Not Cel Is Nothing Then
                    Colonne = Cel.Column
                    NbLg = Cells(Rows.Count, Colonne).End(xlUp).Row
                    If Plage Is Nothing Then
                        Set Plage = Application.Union(Range(Cells(8, Colonne), Cells(NbLg, Colonne)), Range(Cells(8, Colonne + Decalage), Cells(NbLg, Colonne + Decalage)))
                    Else
                        Set Plage = Application.Union(Plage, Range(Cells(8, Colonne), Cells(NbLg, Colonne)), Range(Cells(8, Colonne + Decalage), Cells(NbLg, Colonne + Decalage)))
                    End If
                Else
                    MsgBox "Colonne" & NomColonne & " introuvable"
                End If

        Next I

        If Not Plage Is Nothing Then
            Plage.Select
        End If

        Selection.Copy
        Sheets(nommarche2).Rang("Q5").Select
        ActiveSheet.Paste

        Ligne = Ligne + 1 'Boucle sur l'ensemble des onglets
   End With

Wend
Rechercher des sujets similaires à "probleme code"