IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Implémenter les noms de feuilles [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut Implémenter les noms de feuilles
    Bonjour à tous,

    Premier poste sur le forum, je vais essayer d'être le plus concis possible.

    Après plusieurs heures de recherches (personnelles, forums, FAQ,...), je suis bloqué sur un bout de code qui est primordial dans le formulaire que je suis en train de créer.

    Contexte :

    Après identification (feuille 1), l'utilisateur clique sur un bouton pour encoder son projet dans une fiche (nouvelle feuille pré-remplie). Il existe 3 types de fiche, c'est-à-dire 3 feuilles excel avec un contenu différent.

    Etant donné que l'utilisateur peut encoder autant de projets qu'il veut, lorsqu'il clique sur le bouton, le code VBA copie la feuille pré-remplie concernée et copie dans une nouvelle feuille préalablement créée grâce au code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton2_Click()
    If ComboBox1.Value = "Général" Then
    Sheets("Feuil5").Copy Before:=Sheets("Feuil2")
    ActiveSheet.Name = "FP_G"
    End If
    Exit Sub
    "Feuille 5" étant la feuille concernée par le projet de type "général".

    Mon soucis réside dans le fait que si l'utilisateur veut encoder un nouveau projet de type "général", il faut un code qui repère l'existence de la première feuille ("FP_G1") et copie à nouveau la feuille 5 en donnant comme nom à la nouvelle feuille "FP_G2" et ainsi de suite.

    Je cherche donc un code qui exécuterait quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub CommandButton2_Click()
    If ComboBox1.Value = "Général" Then
    Dim i As Integer
    For i = 1 To 100
    nomfeuille = "FP_G" & i
    If Sheets("FP_G" & i) existe Then
      Sheets("Feuil5").Copy Before:=Sheets("Feuil2")
      ActiveSheet.Name = "FP_G" & i + 1
    Else : Sheets("Feuil5").Copy Before:=Sheets("Feuil2")
      ActiveSheet.Name = "FP_G" & i
    End If
    Exit For
    Next i
    End If
    End Sub
    Je n'y parviens pas, si un d'entre vous a une piste ou peut m'aider de quelconque manière, je le remercie d'avance!

    Bonne fin de journée

  2. #2
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Bonjour,

    Il y' a plein de sujets similaires sur le forum....
    Ici par exemple:
    http://www.developpez.net/forums/d12...tence-feuille/

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Essayez avec le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Private Sub CommandButton2_Click()
    If ComboBox1.Value = "Général" Then
    Sheets("Feuil5").Copy Before:=Sheets("Feuil2")
     
    '///
    Dim A$
    Dim cpt&    'compteur
    '---
    A$ = "FP_G"
    On Error Resume Next
    ActiveSheet.Name = A$
    If Err <> 0 Then
      Do
        Err.Clear
        cpt& = cpt& + 1
        ActiveSheet.Name = A$ & " (" & cpt& & ")"
      Loop Until Err = 0
    End If
    On Error GoTo 0
    '///
     
    End Sub

  4. #4
    Membre habitué
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    Merci pour votre réponse.

    J'ai reçu via un autre forum un code dans le même ordre d'idée qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub CommandButton2_Click()
    Dim I As Integer
     
      If ComboBox1.Value = "Général" Then
        Do
          I = I + 1
          If FeuilleExiste("FP_G" & I) = False Then
            Sheets("Feuil5").Copy Before:=Sheets("Feuil2")
            ActiveSheet.Name = "FP_G" & I
            Exit Do
          End If
        Loop
      End If
    End Sub
     
    Function FeuilleExiste(Nom As String) As Boolean
      On Error Resume Next
      FeuilleExiste = Sheets(Nom).Name <> ""
      On Error GoTo 0
    End Function
    Merci tout de même!

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Mais je vous en prie guilty_AL.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Combobox en utilisant les noms des feuilles
    Par Nikes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/06/2009, 22h57
  2. Réponses: 4
    Dernier message: 23/02/2009, 19h39
  3. liste déroulante avec les noms des feuilles d'un classeur fermé
    Par winclass dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/12/2008, 22h39
  4. Lire les noms des feuilles d'un fichier
    Par funkykid dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/05/2008, 13h56
  5. Réponses: 3
    Dernier message: 03/11/2007, 18h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo