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 fiches pré remplis a partir d'une liste [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Création de fiches pré remplis a partir d'une liste
    Bonsoir,
    Novice dans la manipulation de macro en VBA sous excel (ou autre d'ailleurs), je fais appel à vos bons conseils.
    Je souhaite créer un fichier excel permettant de créer des feuilles de compétences pré remplis (feuille au nom de l'élève et grille de compétence vide) à partir d'un liste d’élève et d'une feuille regroupant toutes les compétence demandées).
    Grace à ce forum j'ai déjà réussi a créer les feuilles aux noms des élève en affectant une macro (trouvé ici) à un bouton mais pour la copie de ma grille dans ces nouvelles feuilles je bloque.
    Merci de votre aide.
    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
     
    Sub t()
     Dim rng As Range, cel As Range
     Set rng = ThisWorkbook.Worksheets("liste").Range("A2:A3")
     For Each cel In rng
      If Not (WorkSheetCreate(cel.Value)) Then MsgBox "La feuille " & cel.Value & " existe déjà"
     Next
    End Sub
    Function WorkSheetCreate(Name As String) As Boolean
     Application.ScreenUpdating = False
     Worksheets.Add before:=Worksheets(1)
     On Error Resume Next
     Worksheets(1).Name = Name
      If Err Then
      With Application
      .DisplayAlerts = False:  Worksheets(1).Delete:  .DisplayAlerts = True
       WorkSheetCreate = False
      End With
     Else
       WorkSheetCreate = True
     
     End If
     On Error GoTo 0
     Application.ScreenUpdating = False
    End Function

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Essaies comme ceci
    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
    Option Explicit
     
    Sub T()
    Dim Rng As Range, Cel As Range
     
    With ThisWorkbook
        Set Rng = .Worksheets("Liste").Range("A2:A3")
        For Each Cel In Rng
            If Cel.Value <> "" Then
                If Not FeuilleExiste(Cel.Value) Then
                    .Worksheets("NomFeuilleGrille").Copy Before:=.Worksheets(1)
                    ActiveSheet.Name = Cel.Value
                End If
            End If
        Next Cel
    End With
    End Sub
     
    'Fonction qui permet de tester l'existence d'une feuille nommée Nom
    Private Function FeuilleExiste(ByVal Nom As String) As Boolean
     
    On Error Resume Next
    FeuilleExiste = ThisWorkbook.Sheets(Nom).Index
    End Function
    Sinon, on parlera ensuite des contraintes éventuelles ultérieures.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci de cette rapidité.
    C'est tout à fait ce que je recherchais.
    Pour les contraintes, je me suis rendu compte (après quelques recherches) que l'on pouvait uniquement faire une copie conforme de la page d'origine.
    J'ai donc modifier le "patron " de ma grille de compétence afin de pouvoir rajouter des informations présente sur ma liste (nom élève et classe).
    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
    Option Explicit
     
    Sub T()
    Dim Rng As Range, Cel As Range, Nom As String
     
    With ThisWorkbook
        Set Rng = .Worksheets("Liste").Range("A2:A3")
        For Each Cel In Rng
            If Cel.Value <> "" Then
                If Not FeuilleExiste(Cel.Value) Then
                    .Worksheets("competence").Copy after:=.Worksheets(1)
    ' infos à mettre dans ma nouvelle feuille
                    Nom = Cel.Value
                      ActiveSheet.Name = Cel.Value
                     .Worksheets(Nom).Range("A1") = Nom
                     .Worksheets(Nom).Range("C1") = .Worksheets("Liste").Range("A1")
     
                End If
            End If
        Next Cel
    End With
    End Sub
     
    'Fonction qui permet de tester l'existence d'une feuille nommée Nom
    Private Function FeuilleExiste(ByVal Nom As String) As Boolean
     
    On Error Resume Next
    FeuilleExiste = ThisWorkbook.Sheets(Nom).Index
    End Function

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

Discussions similaires

  1. [XL-2013] création d'un bon d'économat à partir d'une fiche technique
    Par pat33bordeaux dans le forum Excel
    Réponses: 2
    Dernier message: 09/04/2015, 16h19
  2. Création d'une combobox auto rempli à partir d'une liste excel
    Par kyros21 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/11/2011, 15h46
  3. Création d'un arbre à partir d'une liste contigue
    Par karaz_karaz dans le forum C
    Réponses: 2
    Dernier message: 28/06/2008, 23h51
  4. 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
  5. Réponses: 5
    Dernier message: 17/03/2007, 15h36

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