Variables considerer comme vide après un tour dans une boucle

Bonjour,

J'ai un projet en VBA pour un stage, et il s'avére que j'ai un soucis.

Dans mon projet je dois creer de nouvelles pages qui porterons le nom de la case A + C + D de la page 1 par rapport la variable N

A chaque boucle je fais N + 1 afin de selectionner la case inferieur. N dans mon cas démarre a 6

Concernant la case C je dois slectionner essentielement les 3 premieres lettres.

Mon problème et que cela fonctionne seulement pour le premier tour de la boucle, après cela la case C est considérer comme vide

De ce fait les feuille suivante s'appelle bien avec A + D mais pas C

Voici une partie de mon code ci-dessous

Dim N As Byte
N = 6
Dim debutNom As String

Do While Sheets("Feuil1").Range("A" & N).Value <> ""
debutNom = Left(Range("C" & N).Value, 3)
If Cells(N, 1) <> " " Then

Sheets("feuil2").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = Sheets("Feuil1").Range("A" & N).Value & "_" & Sheets("Feuil1").Range("D" & N).Value & "_" & debutNom
End If
N = N + 1
Else
Exit Sub
End If
Loop

Merci pour votre aide

Arthur

Bonjour,

Un essai avec vérification si la feuille existe déjà zou pas ...

Option Explicit

Sub AjouterFeuille()
Dim N As Byte
Dim debutNom As String
Dim NomFeuil As String

   N = 6

   Do While Sheets("Feuil1").Range("A" & N).Value <> ""
      NomFeuil = Sheets("Feuil1").Range("A" & N).Value & "_" & Sheets("Feuil1").Range("D" & N).Value & "_" & debutNom

      If FeuilleExiste(NomFeuil) = True Then  ' si la feuille n'existe pas déjà
         N = N + 1
      Else
         debutNom = Left(Range("C" & N).Value, 3)
         If Cells(N, 1) <> " " Then
            Sheets("Feuil2").Copy After:=Sheets(Sheets.Count)
            ActiveSheet.Name = NomFeuil
            N = N + 1
         Else
            Exit Sub
         End If
      End If
   Loop
End Sub

Public Function FeuilleExiste(FeuilleAVerifier As String) As Boolean
'fonction qui vérifie si la "FeuilleAVerifier" existe dans le Classeur actif
'par Excel-Malin.com ( https://excel-malin.com )

On Error GoTo SiErreur
Dim Feuille As Worksheet

    FeuilleExiste = False
    For Each Feuille In Worksheets
        If UCase(Feuille.Name) = UCase(FeuilleAVerifier) Then
            FeuilleExiste = True
            Exit Function
        End If
    Next Feuille
Exit Function

SiErreur:
    FeuilleExiste = CVErr(xlErrNA)
End Function

ric

Bonjour,

merci pour voutre aide.

Concernant votre question, oui sur mon code complet j'ai déja implémenter une vérification si la feuille existe déja

Arthur

Rechercher des sujets similaires à "variables considerer comme vide tour boucle"