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éation de feuille automatique VBA Macro [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Novembre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Employé
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2017
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Création de feuille automatique VBA Macro
    Bonjour

    je suis encore débutant en VBA

    j'ai pu créer une macro qui suivant une liste me duplique un classeur et inscrit le nom de la colonne en titre de la nouvelle feuille.

    Pour aller plus loin j'aimerai que dans cette nouvelle page 3 informations de la ligne concernée par la page (la ligne active) soit reporté dans les casse de la nouvelle feuille. est ce possible?

    je vous mets le code et le ficher intituler test.xlsm. Voila dans la nouvelle feuille je veux qu'il reporte automatiquement les données suivant:
    l'ID dans la case A1 le Noms dans la case B2 et le Prénom dans la case E2 la Date de Naissance dans la case C2 la ville dans la Case C3 et le groupe dans la casse D13


    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Option Explicit
    Dim maColonne As Integer
     
    Sub AjoutFeuilles()
    Dim derLi As Long
    Dim i As Integer
    Dim maFeuille As Worksheet
    Set maFeuille = ActiveSheet
     
    maColonne = 1 ' a ajuster
     
    derLi = Columns(maColonne).Find("*", , , , , xlPrevious).Row
    For i = 2 To derLi ' 2 si ligne de titre
       'Si la feuille existe déjà, on passe à la ligne suivante
       If FeuilleExiste(maFeuille.Cells(i, maColonne)) Then GoTo Suivant
       ' ajout d'une feuille à la fin
     
       Sheets("FichePersonel").Copy after:=Sheets(Sheets.Count)
       Sheets(Worksheets.Count).Name = maFeuille.Cells(i, maColonne)
       ' nom de la feuille = valeur de la cellule
    Suivant:
    Next
    'on retourne à la feuille d'origine
    maFeuille.Select
    Set maFeuille = Nothing
    End Sub
    Function FeuilleExiste(Nom$) As Boolean 'Ti
       On Error Resume Next
       FeuilleExiste = Sheets(Nom).Name <> ""
    End Function
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = maColonne Then AjoutFeuilles
    End Sub
    merci pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Membre confirmé
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 365
    Points : 631
    Points
    631
    Par défaut
    Tu peux juste après avoir renommé ta feuille faire ceci pour chacune des données que tu veux écrire

    la feuille que tu viens de renommer étant la feuille active.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       ActiveSheet.Range("A1").Value = Sheets("Contact").Cells(i, 1)
       ActiveSheet.Range("A2").Value = Sheets("Contact").Cells(i, 2)
    et ainsi de suite pour chaque donnée.



    B2 est fusionnée avec A2 , je pense que tu souhaite mettre le nom en A2

    bonne journée.

    PS : si la liste est longue il peut être intéressant d'ajouter:

    en début de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    ceci fige l'affichage pendant l'exécution de la macro

    ne pas oublier de défiger l'affichage avant de sortir de la macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = true
    Ceci peut accélérer le code de manière très importante.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Novembre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Employé
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2017
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Merci
    MERCI vraiment c'est au top j'avais essayé avec range. mais j'avais pas réussi ça m'aide bien
    J'arrivais pas à trouver le nom de la nouvelle fiche créée
    ça marche très bien

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 29/06/2016, 15h31
  2. Création de Feuille Automatique
    Par XBlade dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/08/2011, 13h58
  3. VBA sous excel - Macro - Création de feuilles à partir d'une liste
    Par Sylione dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/05/2007, 09h42
  4. [VBA-E] Création de feuille automatique
    Par matt8-5 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/01/2007, 11h59
  5. [VBA Excel] macro création de feuille
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 29/06/2006, 11h13

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