Problème Next sans For

Bonjour, j'ai un problème avec ce code, quand je le lance il m'affiche comme message d'erreur : Next sans for.

  a = Sheets("New param").Range("A4").Value
  b = Sheets("New param").Range("A7").Value
  c = Sheets("New param").Range("A9").Value

For p = 1 To 63
   For Z = E To BO

If Range("D2").Value = 1 Then
If Range("D3").Value = p Then
Sheets("Base de donnée").Select
Range(Z + "3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                            :=False, Transpose:=False
Next p
Next Z

Else
If Range("D2").Value = 2 Then
If Range("D3").Value = p Then
Sheets("Base de donnée").Select
Range(Z + a).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                            :=False, Transpose:=False
Next Z
Next p

Else
If Range("D2").Value = 3 Then
If Range("D3").Value = p Then
Sheets("Base de donnée").Select
Range(Z + b).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                            :=False, Transpose:=False
Next Z
Next p

Else
If Range("D2").Value = 4 Then
If Range("D3").Value = p Then
Sheets("Base de donnée").Select
Range(o + "3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                            :=False, Transpose:=False
Next Z
Next p

End If

Bonjour

Ce n'est pas cela qui est le souci mais les deux IF dans la boucle pour lesquels excel attend un END IF ou un ELSE

Possible de voir le code qui se trouve avant a= .....

Crdlt

sur le code fournie en annexe on peut voir 8 "IF" et 1 "END IF" je pense que sa peut poser problème


mettre 2 "end if " avant chaque "next p next z" resoudra peut être le problème a tester

Re, voici le code avant le "a="

Sub TAD_Rectangleàcoinsarrondis1_Cliquer()
Application.ScreenUpdating = False

For i = 6 To Cells(Rows.Count, "I").End(xlUp).Row
        If Range("I" & i) = 0 Then
            Range("I" & i).MergeArea.ClearContents
            Range("I" & i).Select
            Selection.NumberFormat = "m/d/yyyy"
            Range("H" & i).Copy
            Range("I" & i) = Range("H" & i)
        ElseIf Range("I" & i) <> "" Then
            Range("H" & i).Copy
            Range("I" & i) = Range("I" & i) & " - " & Range("H" & i)
        ElseIf Range("I" & i) = "" Then
            If Range("H" & i) <> "" Then
                Range("H" & i).Copy
                Range("I" & i).Select
                ActiveSheet.Paste
            End If
        End If
    Next i

    Dim DernLigne As Long
DernLigne = Range("F65536").End(xlUp).Row
Range("I6:I" & DernLigne).Copy

Cordialement.


J'ai testé minance mais j'ai ce message d'erreur qui s'affiche :

" Référence de variable de contrôle incorrect dans Next " (en surbrillance Next p)

re

en supposant qu'il faut deux conditions pour coller les infos, essaie comme ceci

For p = 1 To 63
   For Z = E To BO

        If Range("D2").Value = 1 And Range("D3").Value = p Then
            Sheets("Base de donnée").Select
            Range(Z + "3").PasteSpecial Paste:=xlPasteValues

        ElseIf Range("D2").Value = 2 And Range("D3").Value = p Then
            Sheets("Base de donnée").Select
            Range(Z + a).PasteSpecial Paste:=xlPasteValues

        ElseIf Range("D2").Value = 3 And Range("D3").Value = p Then
            Sheets("Base de donnée").Select
            Range(Z + b).PasteSpecial Paste:=xlPasteValues

         ElseIf Range("D2").Value = 4 And Range("D3").Value = p Then
            Sheets("Base de donnée").Select
            Range(o + "3").PasteSpecial Paste:=xlPasteValues

        End If

    Next Z
Next p

Crdlt

Je viens d'essayer Dan mais il m'affiche ce message d'erreur :

"Erreur d'execution '1004':

La méthode 'Range de l'objet_Global' a echoué "

En surbrillance : Range(Z+"3").PasteSpeciale Paste:=xlPasteValues

Je viens de tester est c'est la boucle " For Z = E to BO " qui pose problème

teste avec Range("Z"&3)


ne pas confondre + et &

exemple

1+ 1= 2

1&1 = "11"

Si je fais ça minanse , ça me copie en "Z3".


Le problème vient de la boucle des colonnes

oui j'ai remarquer sa plus tard enfaite il suffit de changer de + en & et enlever les guillemets sur les chiffres


après je pourra pas t'aider plus car j’étais même au courant qu'on pouvais faire une boucle "for" avec des lettre


j'étais même pas au courant*

Merci pour ton aide minance mais ça fonctionne toujours pas

si sa tien qu'à moi j'aurai changer toute la boucle "for Z" (car je ne m'y connait pas du tout sur les boucle for avec les lettre) et le remplacer par :

for z = 5 to 67

If Range("D2").Value = 1 And Range("D3").Value = p Then

Sheets("Base de donnée").Select

h = Split(Columns(z).Address(ColumnAbsolute:=False), ":")(1)

Range(h&3).PasteSpecial Paste:=xlPasteValues

ElseIf Range("D2").Value = 2 And Range("D3").Value = p Then

Sheets("Base de donnée").Select

h = Split(Columns(z).Address(ColumnAbsolute:=False), ":")(1)

Range(h& a).PasteSpecial Paste:=xlPasteValues

ElseIf Range("D2").Value = 3 And Range("D3").Value = p Then

Sheets("Base de donnée").Select

h = Split(Columns(z).Address(ColumnAbsolute:=False), ":")(1)

Range(h& b).PasteSpecial Paste:=xlPasteValues

ElseIf Range("D2").Value = 4 And Range("D3").Value = p Then

Sheets("Base de donnée").Select

h = Split(Columns(z).Address(ColumnAbsolute:=False), ":")(1)

Range(h&3).PasteSpecial Paste:=xlPasteValues

End If

Next Z

ps : j'ai reprit le code de dan et j'ai apport quelque modification

Merci pour ton aide minanse mais même avec les & et sans les "" ça fonctionne toujours pas.

même avec le code ci-dessus ?

est-il possible d'avoir un fichier joint pour voir quels est l'erreur ?

Je viens d'essayer minanse, le code fonctionne au niveau ligne mais il me copie tout dans la colonne "E". merci quand même

mon niveau vba s'arrête la 8)

je te souhaite bonne chance pour la suite

un grand merci à toi minanse pour ton aide le temps que tu m'a accordé

de rien

C bon j'ai réussi, j'ai récuperé ton code minanse, j'ai supprimé le for "z" et je l'ai remplacé par "p+4"

For p = 1 To 63

If Range("D2").Value = 1 And Range("D3").Value = p Then
Sheets("Base de donnée").Select
h = Split(Columns(p + 4).Address(ColumnAbsolute:=False), ":")(1)
Range(h & 3).PasteSpecial Paste:=xlPasteValues

ElseIf Range("D2").Value = 2 And Range("D3").Value = p Then
Sheets("Base de donnée").Select
h = Split(Columns(p + 4).Address(ColumnAbsolute:=False), ":")(1)
Range(h & a).PasteSpecial Paste:=xlPasteValues

ElseIf Range("D2").Value = 3 And Range("D3").Value = p Then
Sheets("Base de donnée").Select
h = Split(Columns(p + 4).Address(ColumnAbsolute:=False), ":")(1)
Range(h & b).PasteSpecial Paste:=xlPasteValues

ElseIf Range("D2").Value = 4 And Range("D3").Value = p Then
Sheets("Base de donnée").Select
h = Split(Columns(p + 4).Address(ColumnAbsolute:=False), ":")(1)
Range(h & 3).PasteSpecial Paste:=xlPasteValues

End If

Next p

Re

déso du retard.

A vrai dire je n'avais pas trop compris le pourquoi du "For E =Z to BO" et le "Range(Z + a).Select" et me doutais que tu aurais des soucis sur ces instructions. De même pour le Split...

Sans fichier ...

Mais ok si ta demande est solutionnée

Cordialement

Rechercher des sujets similaires à "probleme next"