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