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 :

Créer une feuille par élément d'une liste.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Par défaut Créer une feuille par élément d'une liste.
    Bonjour à tous,

    J'ai beaucoup de mal avec le VBA, je n'ai jamais rien sorti... Mais là j'aurais absolument besoin d'une macro, vous êtes mon dernier espoir.

    Au boulot, je suis sous Excel 2000.
    Un classeur composé de deux feuilles. L'une se nome 'valeurs génériques' et l'autre 'CREA type'.
    Sur 'valeurs génériques' on a une liste. CREA type est une simple feuille de calcul....

    But de la macro:
    Pour chaque valeur de la liste, créer un onglet (une feuille) qui portera le nom de l'élément de la liste. Le contenu de chacune de ces feuilles est une copie de 'CREA type'.

    Exemple:
    Sur valeurs génériques, on a chirurgie en B1, médecine interne en B2, morgue en B3... (ce n'est qu'un exemple ). On lance la macro et ça génère 3 feuilles supplémentaires nommées chirurgie, médecine interne et morgue. Le contenu de chacune de ces feuilles étant le contenu de 'CREA type'

    Merci par avance
    Bien à vous.

  2. #2
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim MaCell As Range, Modele As Worksheet
     
    Set MaCell = ThisWorkbook.Worksheets("valeurs génériques").Range("B1")
    Set Modele = ThisWorkbook.Worksheets("CREA type")
    Do While Len(MaCell.Value) > 0
        Modele.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        ThisWorkbook.ActiveSheet.Name = MaCell.Value
        Set MaCell = MaCell.Offset(1)
    Loop

  3. #3
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    la même que bidou avec vérification que la feuille n'existe pas, ce qui permettrait de réutiliser la procédure suite à l'ajout de noms
    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
    23
    24
    Sub creation_feuilles()
    Application.ScreenUpdating = False
    Dim i As Integer, x As Integer, Verif As Boolean, Nom As String
     
    'boucle sur les valeurs de la colonne A, ligne 2 à la dernière ligne
    For i = 2 To Sheets("valeurs génériques").Cells(Rows.Count, 1).End(xlUp).Row
        Nom = Sheets("valeurs génériques").Cells(i, 1)
        Verif = False
     
        'vérification si la feuille existe déjà
        For x = 1 To Sheets.Count
            If Sheets(x).Name = Nom Then Verif = True
        Next
     
        'si la feuille n'existe pas, copier la feuille CREA et renommer la nouvelle feuille
        If Verif = False Then
            Sheets("CREA type").Copy After:=Sheets(Sheets.Count)
            ActiveSheet.Name = Nom
        End If
    Next
     
    Sheets("valeurs génériques").Activate
    Application.ScreenUpdating = True
    End Sub

  4. #4
    Membre averti
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Par défaut
    Merci infiniment, ça semble tellement simple pour vous, c'est déconcertant.

    En tout cas, je reviendrais à ce râtelier

    À+

    PS: Un tuto complet sous la main à me proposer?

  5. #5
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055

  6. #6
    Membre averti
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Par défaut
    Désolé... Soit je suis passé à coté ou j'ai recherché des tutos avant le 24 Janvier 2008 (je pense que c'est ça).
    Plus de 200 pages c'est du lourd, merci

    Et zou un [Résolu] dans le titre.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/11/2012, 16h36
  2. [XL-2007] Lancer une macro par dévérouillage d'une feuille
    Par Exosporium dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/10/2012, 19h49
  3. Choix de conception: une table par élément ou une ligne ?
    Par milach dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 16/08/2012, 11h04
  4. [XL-2007] Remplissage d'une feuille par rapport a une utre
    Par islande dans le forum Excel
    Réponses: 4
    Dernier message: 16/04/2012, 10h00
  5. [XL-2003] Macro ANNULER une suppression (par macro) dans une feuille
    Par Airone1CF03 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/03/2010, 10h26

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