Comparaison d un nom et d un nom d une feuille [Résolu]

Signaler
Messages postés
11
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
21 mai 2007
-
Messages postés
11
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
21 mai 2007
-
bonjour
je voudrais comparer le nom d une feuille de classeur excel avec un autre nom
voici mon code :

   anneeencours = Year(Date)
   anneepassee = anneeencours - 1
   nomfeuille = "Indicateur " & anneeencours
   nomfeuillepasse = "Indicateur " & anneepassee
   For j = 1 To Sheets.Count Step 1
       If nomfeuille <> Sheets(j).Name Then
            Sheets(nomfeuillepasse).Select
            Sheets.Add
            Sheets.Select
            Sheets("Feuil5").Name = nomfeuille
            Sheets(nomfeuillepasse).Select
            Cells.Select
            Selection.Copy
            Sheets(nomfeuille).Select
            Range("A1").Activate
            ActiveSheet.Paste
            For l = 0 To 22 Step 2
               For m = 0 To 4 Step 1
                   Sheets(nomfeuille).Cells(10 + l, 2 + m).Value = ""
               Next m
           Next l
       End If
   Next j

Mon probleme c'est qu il me crée ma premiere feuille mais apres ca il rerentre dans le if et la j obtiens une erreur car il existe deja une page avec le meme nom ca c normal
je pense que c est ma condition du "si" qui n est aps correcte mais je ne vois pas comment y remedier

merci

don_cagoule

PS : j ai aussi essayé avec strcomp

4 réponses

Messages postés
11
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
21 mai 2007

anneeencours = Year(Date)
anneepassee = anneeencours - 1
nomfeuille = "Indicateur " & anneeencours
nomfeuillepasse = "Indicateur " & anneepassee
test = 0
For j = 1 To Sheets.Count Step 1
    If nomfeuille <> Sheets(j).Name Then
        test = test + 1
    Else
        test = test + 0
    End If
Next j
If test = Sheets.Count Then
    Sheets(nomfeuillepasse).Select
    Sheets.Add
    Sheets.Select
    Sheets("Feuil1").Name = nomfeuille
    Sheets(nomfeuillepasse).Select
    Cells.Select
    Selection.Copy
    Sheets(nomfeuille).Select
    Range("A1").Activate
    ActiveSheet.Paste
    For l = 0 To 22 Step 2
        For m = 0 To 4 Step 1
            Sheets(nomfeuille).Cells(10 + l, 2 + m).Value = ""
        Next m
    Next l
    Worksheets(nomfeuille).Range("L24").Value = "=NBVAL('Suivi Commandes'!A:A)"
End If
Messages postés
695
Date d'inscription
jeudi 5 mai 2005
Statut
Membre
Dernière intervention
5 janvier 2010
27
Salut!
Essaie de cette maniere : 

  anneeencours = Year(Date)
   anneepassee = anneeencours - 1
   nomfeuille = "Indicateur " & anneeencours
   nomfeuillepasse = "Indicateur " & anneepassee
   For j = 1 To Sheets.Count Step 1

       If nomfeuille <> Sheets(j).Name Then  
            bollean = true  
      else boolean = false
      end if 
next j

            if boolean = true then
            Sheets(nomfeuillepasse).Select
            Sheets.Add
            Sheets.Select
            Sheets("Feuil5").Name = nomfeuille
            Sheets(nomfeuillepasse).Select
            Cells.Select
            Selection.Copy
            Sheets(nomfeuille).Select
            Range("A1").Activate
            ActiveSheet.Paste
            For l = 0 To 22 Step 2
               For m = 0 To 4 Step 1
                   Sheets(nomfeuille).Cells(10 + l, 2 + m).Value = ""
               Next m
           Next l
       End If

De cette maniere si la feuille existe deja, ton booleen sera à false et tu ne rentrera pas dans la boucle if.

(Si la réponse vous convient, appuyez sur réponse acceptée...). Noubliez pas de lire le REGLEMENT 

Il y a plusieurs facon d'être con ,mais un con choisit toujours la pire<>
Messages postés
11
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
21 mai 2007

merci de ta solution cela m a permis d avancer

le probleme avec ta solution proposée c est que ton boolean ne garde la valeur que de la derniere feuille du classeur et par consequent il me creera toujours une nouvelle feuille et la il y aura un bug car le nom existera deja

anneeencours = Year(Date)
anneepassee = anneeencours - 1
nomfeuille = "Indicateur " & anneeencours
nomfeuillepasse = "Indicateur " & anneepassee
test = 0
For j = 1 To Sheets.Count Step 1
    If nomfeuille <> Sheets(j).Name Then
        test = test + 1
    Else
        test = 0
    End If
Next j
If test = Sheets.Count Then
    Sheets(nomfeuillepasse).Select
    Sheets.Add
    Sheets.Select
    Sheets("Feuil1").Name = nomfeuille
    Sheets(nomfeuillepasse).Select
    Cells.Select
    Selection.Copy
    Sheets(nomfeuille).Select
    Range("A1").Activate
    ActiveSheet.Paste
    For l = 0 To 22 Step 2
        For m = 0 To 4 Step 1
            Sheets(nomfeuille).Cells(10 + l, 2 + m).Value = ""
        Next m
    Next l
    Worksheets(nomfeuille).Range("L24").Value = "=NBVAL('Suivi Commandes'!A:A)"
End If
Messages postés
695
Date d'inscription
jeudi 5 mai 2005
Statut
Membre
Dernière intervention
5 janvier 2010
27
C'est rien, content d'avoir pu t'aider!

(Si la réponse vous convient, appuyez sur réponse acceptée...). Noubliez pas de lire le REGLEMENT 

Il y a plusi