Boucle de création de feuille Excel

maksym92 -  
LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je suis novice en VBA, je développe actuellement un comparateur de scénarios environementaux pour les carburants avec Excel.
L'utilisateur entre dans une case un nombre d'année, le but de ma macro est de créer une feuille par année (le nombre d'année étant donc une variable). Par exemple si l'utilisateur entre "3 ans" je voudrais pouvoir créer automatiquement une feuille "Année 1" une feuille "Année 2" et une feuille "Année 3".
Mon problème survient dans la boucle que je fait pour renommer les feuilles.
Pouvez vous m'aider??
Merci d'avance.
Maxime
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention   550
     
    Essaye ça: (En supposant que le nombre de feuilles soit stocké en A1 de la Feuil1)

    Sub AjoutFeuilles
    '

    ' Macro enregistrée le 14/05/2008 par LatelyGeek
    Dim compteur As Integer
    compteur = 1
    For compteur = 1 To Range("Feuil1!A1").Value
    Sheets.Add
    ActiveSheet.Name = "Année" & compteur
    Next
    End Sub
    1
    1. maksym92
       
      Merci c parfait!!
      0
    2. maksym92
       
      Encore un petit truc:
      J'arrive bien à créer une feuille par année, le problème est lorsque je veux renouveller l'opération, Excel ne peut pas renommer une feuille comme une autre feuille déjà référencée par VB.
      J'ai donc essayé de créer un petit module qui détecte les feuilles déjà créées et les supprime avant d'en créer des nouvelles à la place. Ca ne marche pas très bien.
      Aurais-tu une idée pour ce genre de pb?
      Merci.
      Maxime
      0
  2. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310
     
    Salut Maksym,
    ci-dessous le code de LatelyGeek complété de quelques lignes qui , avant de renommer une feuille, vérifient que la feuille n'existe pas déjà. Si oui, elle est SUPPRIMEE SANS MESSAGE DE CONFIRMATION.

    Sub AjoutFeuilles()
    Dim compteur As Integer
    compteur = 1
    For compteur = 1 To Range("A1").Value
    Sheets.Add

    For Each Worksheet In Worksheets
    If Worksheet.Name = "Année" & compteur Then
    Application.DisplayAlerts = False
    Worksheet.Delete
    Application.DisplayAlerts = True
    End If
    Next Worksheet

    ActiveSheet.Name = "Année" & compteur
    Next
    End Sub
    0
    1. maksym92
       
      Merci pour tes conseils.
      J'ai encore un ptit soucis. Je souhaite créer un bouton qui me permette de passer à chaque fois sur la feuille "Année" suivante (je rappelle que le nombre de feuille "Année" est variable). Donc sur chaque feuille créée il doit y avoir un bouton "page suivante" et un bouton "page précédente". Si le nombre de feuille est fixe c'est facile il suffit de faire des liens hypertextes, mais là je vois pas trop comment faire vu que tout dépend du nombre d'année.
      J'espère que tu peux m'aider.
      Merci d'avance.
      Maxime
      0
  3. LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention   550
     
    ActiveSheet.Next.Select
    ActiveSheet.Previous.Select

    (Sous réserve bien sûr qu'elles soient classées dans l'ordre...)
    0