Créer automatiquement fichier Excel selon base de données

Pimpon974

XLDnaute Nouveau
Bonjour à tous,

Je suis sapeur pompier en charge du suivi et de la gestion des formations dont je suis responsable pédagogique.

Afin de nous soulager des tâches chronophage (gestion administrative surtout) je tente de construire un fichier Excel qui me permet de générer automatiquement le nombre de feuilles Excel nécessaire qui correspond aux nombres de formateur qui interviendront sur une formation.

Pour se faire j'ai une feuille de données à remplir et une feuille de suivi administratif type (Tableau).
Je souhaite à l'aide d'un bouton (lié à un code macro) que toutes les feuilles de suivi administrative (Tableau) soient créées pour chaque personne concernée et enregistrées dans le même classeur.
Tout cela en prenant en compte les données pour chacun des formateurs qui viendront se placer dans le tableau (là où il y a les croix rouge)

Voila.

J'espère avoir été clair dans l'explication de ce projet et je vous remercie d'avance pour votre aide.

Cordialement,
 

Pièces jointes

  • Signature For Test VBA.xlsx
    36.1 KB · Affichages: 11

gbinforme

XLDnaute Impliqué
Je souhaite à l'aide d'un bouton (lié à un code macro) que toutes les feuilles de suivi administrative (Tableau) soient créées pour chaque personne concernée et enregistrées dans le même classeur.
Bonjour,
Je ne suis pas sûr que tu ais choisi la formule la plus adaptée.
Plutôt que de créer un tableau par formateur, je verrais plutôt un onglet où tu saisirais tes journées de formation et en choisissant le formateur dans ton tableau toutes les dates s'afficheraient.
Cela allégerait ton classeur et permettrait d'obtenir de nombreux résultats sur la durée.
C'est une suggestion et si elle te parle je peux t'aider à la générer.
 

Pimpon974

XLDnaute Nouveau
Bonjour gbinforme,

Merci pour ce retour.
La nécessité de un tableau par formateur me permet d'effectuer l'émargement de l'état de présence (signature via stylet)

Pourrait t'on retrouver la forme de mon tableau avec ta suggestion ?
En choisissant le formateur dans le tableau, toutes les dates s'afficheraient ainsi que la signature de présence et les heures.

Merci pour ton aide.

Cordialement,
 

Pimpon974

XLDnaute Nouveau
Bonsoir,

J'ai pu créer une avancée.
Ma Macro génère le nombre de feuille(avec le nom en onglet) selon de nom des formateurs qui est rentré.

Nouveau casse tête : Si je suis amené à rajouter un ou plusieurs formateurs, je voudrais que se génère QUE ces ajouts et non que cela me refasse des onglets (en plus faussé) sur les noms déjà existant.

Help ! :))))

Merci par avance
 

Pièces jointes

  • Signature For Test 2 bis.xlsm
    98.4 KB · Affichages: 7

JM27

XLDnaute Barbatruc
bonjour
A tester
En suivant ta logique
VB:
Option Explicit 'Oblige ˆ dŽclarer les variables

Sub GŽnŽrerFeuilleFormateur()

        Dim nom As String 'dŽclare la variable des noms formateur
        Dim c As Range 'dŽclare la variable Liste desformateurs
                
                
        For Each c In Range("ListeFor")
                nom = c.Value
                If nom <> "" Then
                
                        Sheets("Tableau").Copy After:=Sheets(Worksheets.Count)
                        On Error Resume Next
                        ActiveSheet.Name = nom
                        If Err <> 0 Then
                            Application.DisplayAlerts = False
                                ActiveSheet.Delete
                            Application.DisplayAlerts = True
                            
                        End If
                        On Error GoTo 0
                End If
        Next

MsgBox "Onglets gŽnŽrŽs !" 'message de validation de l'action

End Sub
 

Pimpon974

XLDnaute Nouveau
JM27,
Merci beaucoup pour ce complément. J'ai juste eu à modifier une ligne (en gras)
Sinon avec le 0 cela effaçait les création dans l'élan.

:)
Je peux passer à l'étape suivante :
Ramener les infos de chaque formateur (Statut, centre, grade, nom, prénom) dans les tableau créés lors du lancement du macro.

Je reste preneur de tes bons conseils tout en continuant à chercher.
C'est addictif ces choses là :rolleyes::eek:

Sub GénérerFeuilleFormateur()

Dim nom As String 'déclare la variable des noms formateur
Dim c As Range 'déclare la variable Liste desformateurs


For Each c In Range("ListeFor")
nom = c.Value
If nom <> "" Then

Sheets("Tableau").Copy After:=Sheets(Worksheets.Count)
On Error Resume Next
ActiveSheet.Name = nom

If Error <> "" Then
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End If

On Error GoTo 0
End If
Next

MsgBox "Onglets générés !" 'message de validation de l'action

End Sub
 

Pimpon974

XLDnaute Nouveau
Bonjour Jean-Marcel,

A nouveau de vous remercie pour ce retour.

Sur le premier jet, je ne sais pour quelle raison, avec la formule quand je l'activais elle me créait bien les onglets avec le nom mais elle le supprimait ensuite.
Bref.
Ce que vous m'avez renvoyé ce jour fonctionne parfaitement :)

Je vais demander à mon administration une formation Excel pour ces choses là. Je trouve le VBA très intéressant.

Je vous remercie encore pour votre temps et votre partage.

Bonne fin de journée à vous Jean-Marcel
 

Discussions similaires

Statistiques des forums

Discussions
315 097
Messages
2 116 186
Membres
112 679
dernier inscrit
Yupanki