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