[Excel] Le second Next ne s'incremente pas ?

Résolu
elglouton Messages postés 189 Date d'inscription   Statut Membre Dernière intervention   -  
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai une macro qui evolue en fonction de differentes cellules definies pas des For...Next mais le second next ne s'incremente pas...

Voici le code

Sub CreeFeuilleEssais()
Dim Plage As Byte
Dim NomOnglet, l As Byte
Dim NFeuil As String
Dim ad As String 'déclare la variable ad (ADresse)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)

For Plage = 8 To 25 Step 8
For NomOnglet = 3 To 25 Step 8

With Sheets("Saisie")
            .Select
            If .Cells(NomOnglet, 9).Value <> "" Then
                    NFeuil = .Cells(NomOnglet, 9).Value
                    If FeuilExist(NFeuil) Then
                        Sheets(NFeuil).Activate
                        Exit Sub
                    Else
                        Sheets("Type").COPY After:=Sheets(ThisWorkbook.Sheets.Count)
                        ActiveSheet.Name = NFeuil
                        ActiveSheet.Range("Z1").Value = Sheets("Saisie").Cells(Plage, 9).Value
                        ActiveSheet.Range("I1").Value = .Cells(NomOnglet - 1, 9).Value
                        ActiveSheet.Range("I2").Value = .Cells(NomOnglet, 9).Value
                        ActiveSheet.Range("I3").Value = .Cells(NomOnglet + 1, 9).Value
                    End If
            End If
            ad = CStr(.Cells(Plage, 9).Value) 'définit l'adresse ad
        End With
        With Sheets("Données Chessel")
            .Range(ad).COPY Sheets(NFeuil).Range("A24") 'copie la plage et la colle dans A24 de l'ongle NFeuil
        End With
        With Sheets(NFeuil) 'prend en compte l'onglet NFeuil
            dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row + 1 'définit la dernière ligne dl
            Sheets("Type").Rows(28).COPY .Cells(dl, 1) 'copie la ligne 28 de l'onglet "Type" et la colle en ligne dl
            'place la formule en colonne D/ligne dl - 1
            .Cells(dl, 4).Formula = "=Max(" & .Range(.Cells(24, 4), .Cells(dl - 1, 4)).Address(0, 0) & ") - Min(" & .Range(.Cells(24, 4), .Cells(dl - 1, 4)).Address(0, 0) & ")"
            'recopie la formule jusqu'à la colonne T
            .Cells(dl, 4).AutoFill Destination:=.Range(.Cells(dl, 4), .Cells(dl, 20)), Type:=xlFillDefault
            'place la formule en U24
            .Cells(24, 21).Formula = "=Max(" & .Range(.Cells(24, 4), .Cells(24, 20)).Address(0, 0) & ") - Min(" & .Range(.Cells(24, 4), .Cells(24, 20)).Address(0, 0) & ")"
            'recopie la formule jusqu'à la ligne dl - 1
            .Cells(24, 21).AutoFill Destination:=.Range(.Cells(24, 21), .Cells(dl - 1, 21)), Type:=xlFillDefault
            'colore la colonne U
            .Range(.Cells(24, 21), .Cells(dl - 1, 21)).Interior.ColorIndex = .Range("U23").Interior.ColorIndex
            'place la formule en G11
            .Range("G11").Formula = "=Min(" & .Range(.Cells(24, 4), .Cells(dl - 1, 20)).Address(0, 0) & ")"
            'place la formule en G12
            .Range("G12").Formula = "=Max(" & .Range(.Cells(24, 4), .Cells(dl - 1, 20)).Address(0, 0) & ")"
            'place la formule en G13
            .Range("G13").Formula = "=Min(" & .Range(.Cells(24, 3), .Cells(dl - 1, 3)).Address(0, 0) & ")"
            'place la formule en G14
            .Range("G14").Formula = "=Max(" & .Range(.Cells(24, 3), .Cells(dl - 1, 3)).Address(0, 0) & ")"
            'place la formule en B18
            .Range("B18").Formula = "=AVERAGE(" & .Range(.Cells(24, 4), .Cells(dl - 1, 20)).Address(0, 0) & ")"
            'place la formule en C18
            .Range("C18").Formula = "=AVERAGE(" & .Range(.Cells(24, 3), .Cells(dl - 1, 3)).Address(0, 0) & ")"
        End With 'fin de la prise en compte de l'onglet NFeuil
    Next NomOnglet
    Next Plage
End Sub


Avez vous une idée sur ce qu'il se passe
Merci par avance

A voir également:

1 réponse

Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
Salut le forum

Dès que tu rencontres une feuille existante, tu sors de la procédure.
If FeuilExist(NFeuil) Then
   Sheets(NFeuil).Activate
   Exit Sub
' ...

Mytå
1