Duplication automatique de feuilles avec mise en page
Fermé
Gurhaus3
Messages postés
5
Date d'inscription
mardi 9 septembre 2014
Statut
Membre
Dernière intervention
12 septembre 2014
-
Modifié par Gurhaus3 le 9/09/2014 à 09:52
via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 - 12 sept. 2014 à 13:33
via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 - 12 sept. 2014 à 13:33
A voir également:
- Duplication automatique de feuilles avec mise en page
- Mise en forme conditionnelle excel - Guide
- Supprimer une page word - Guide
- Message automatique thunderbird - Guide
- Traducteur de page web automatique - Guide
- Comment faire un livret avec des feuilles a4 - Guide
8 réponses
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
9 sept. 2014 à 10:48
9 sept. 2014 à 10:48
Bonjour
A quel moment se fait la création de la fiche technique ? A chaque nouvel ajout dans le tableau principal ?
Si c'est le cas la procedure à suivre pour automatiser pourrait être celle-ci :
1) Créer un modèle vierge de Fiche technique avec la mise en page adéquate
2) Créer une macro qui copiera le modèle, attribuera un nom à la copie (d'après les élements de la ligne du tableau général) et copiera en bonne place les infos du tableau général
Cette macro pouvant être déclenchée soit par un bouton soit automatiquement dès remplissage de la cellule de la dernière colonne
Pour t'aider à réaliser cette macro il faudrait la structure du tableau général et la fiche modèle vierge, poster le fichier sur cjoint.com et revenir ici indiquer le lien fourni
Cdlmnt
A quel moment se fait la création de la fiche technique ? A chaque nouvel ajout dans le tableau principal ?
Si c'est le cas la procedure à suivre pour automatiser pourrait être celle-ci :
1) Créer un modèle vierge de Fiche technique avec la mise en page adéquate
2) Créer une macro qui copiera le modèle, attribuera un nom à la copie (d'après les élements de la ligne du tableau général) et copiera en bonne place les infos du tableau général
Cette macro pouvant être déclenchée soit par un bouton soit automatiquement dès remplissage de la cellule de la dernière colonne
Pour t'aider à réaliser cette macro il faudrait la structure du tableau général et la fiche modèle vierge, poster le fichier sur cjoint.com et revenir ici indiquer le lien fourni
Cdlmnt
Gurhaus3
Messages postés
5
Date d'inscription
mardi 9 septembre 2014
Statut
Membre
Dernière intervention
12 septembre 2014
9 sept. 2014 à 11:23
9 sept. 2014 à 11:23
Merci pour la réponse rapide.
http://cjoint.com/data/0IjlwZPnDEN.htm
Donc la création de fiche technique n'est pas obligatoirement immédiate. Le but ici est d'arriver à dans un premier temps automatiser la création de fiches techniques suite à un listing pour ensuite imprimer le tout et se servir même de la page de listing comme de table des matières (et donc dans ce cas, il faudra que je modifie la première page pour qu'elle soit en paysage et que je puisse y placer plus d'infos.
Encore merci pour la réponse ^^
http://cjoint.com/data/0IjlwZPnDEN.htm
Donc la création de fiche technique n'est pas obligatoirement immédiate. Le but ici est d'arriver à dans un premier temps automatiser la création de fiches techniques suite à un listing pour ensuite imprimer le tout et se servir même de la page de listing comme de table des matières (et donc dans ce cas, il faudra que je modifie la première page pour qu'elle soit en paysage et que je puisse y placer plus d'infos.
Encore merci pour la réponse ^^
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
9 sept. 2014 à 12:10
9 sept. 2014 à 12:10
Bonjour
Une macro possible, à mettre dans le Worksheet de la feuille Liste (ALT F11 pour ouvrir l'éditeur, double-clic sur Liste dans larborescence, copier et colle la macro)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'ligne du double clic
lg = Target.Row
If lg < 12 Then Exit Sub 'sortie sans rien faire si ligne avant la 12
' nom de la feuille à créer
nom = Sheets("Liste").Range("E9") & "_FT " & Sheets("Liste").Range("A" & lg)
' boucle sur feuilles pour vérifier que fiche n'existe pas dejà
For n = 1 To Sheets.Count
If Sheets(n).Name = nom Then MsgBox ("Cette fiche existe déjà"): Exit Sub
Next
'Copie du modele
Sheets("Fiche technique").Select
Sheets("Fiche technique").Copy After:=Sheets(Sheets.Count)
Sheets("Fiche technique (2)").Select
' Renomme feuille créee
Sheets("Fiche technique (2)").Name = nom
'copie les infos dans la feuille crée
Sheets(nom).Range("A9") = Sheets("Liste").Range("A9")
Sheets(nom).Range("D11") = "N° dossier : " & Sheets("Liste").Range("E9")
Sheets(nom).Range("C13") = Sheets("Liste").Range("B" & lg)
Sheets(nom).Range("C16") = Sheets("Liste").Range("C" & lg)
Sheets(nom).Range("C19") = Sheets("Liste").Range("D" & lg)
Sheets(nom).Range("C20") = Sheets("Liste").Range("E" & lg)
Sheets(nom).Range("C27") = Sheets("Liste").Range("F" & lg) & " Pages"
End Sub
Ensuite un double-clic sur nimporte quelle ligne de Liste à partir de la 12° crée la fiche correspondante si elle n'existe déjà pas
A adapter à tes besoins
Cdlmnt
Une macro possible, à mettre dans le Worksheet de la feuille Liste (ALT F11 pour ouvrir l'éditeur, double-clic sur Liste dans larborescence, copier et colle la macro)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'ligne du double clic
lg = Target.Row
If lg < 12 Then Exit Sub 'sortie sans rien faire si ligne avant la 12
' nom de la feuille à créer
nom = Sheets("Liste").Range("E9") & "_FT " & Sheets("Liste").Range("A" & lg)
' boucle sur feuilles pour vérifier que fiche n'existe pas dejà
For n = 1 To Sheets.Count
If Sheets(n).Name = nom Then MsgBox ("Cette fiche existe déjà"): Exit Sub
Next
'Copie du modele
Sheets("Fiche technique").Select
Sheets("Fiche technique").Copy After:=Sheets(Sheets.Count)
Sheets("Fiche technique (2)").Select
' Renomme feuille créee
Sheets("Fiche technique (2)").Name = nom
'copie les infos dans la feuille crée
Sheets(nom).Range("A9") = Sheets("Liste").Range("A9")
Sheets(nom).Range("D11") = "N° dossier : " & Sheets("Liste").Range("E9")
Sheets(nom).Range("C13") = Sheets("Liste").Range("B" & lg)
Sheets(nom).Range("C16") = Sheets("Liste").Range("C" & lg)
Sheets(nom).Range("C19") = Sheets("Liste").Range("D" & lg)
Sheets(nom).Range("C20") = Sheets("Liste").Range("E" & lg)
Sheets(nom).Range("C27") = Sheets("Liste").Range("F" & lg) & " Pages"
End Sub
Ensuite un double-clic sur nimporte quelle ligne de Liste à partir de la 12° crée la fiche correspondante si elle n'existe déjà pas
A adapter à tes besoins
Cdlmnt
Gurhaus3
Messages postés
5
Date d'inscription
mardi 9 septembre 2014
Statut
Membre
Dernière intervention
12 septembre 2014
Modifié par Gurhaus3 le 9/09/2014 à 13:24
Modifié par Gurhaus3 le 9/09/2014 à 13:24
Tu es un dieu. J'adore.
J'avais des questions pour modifier mais ayant un peu chipoté, c'est résolu.
Par contre une question reste en suspend : En cas de double clic sur une ligne, y a t-il moyen d'éviter l'ouverture automatique de l'onglet relatif?
Ou alors un moyen de prévoir un seul bouton pour générer l'intégralité des feuilles sans effacer celles déjà réalisées mais en pouvant modifier celles-ci et sans message d'erreur en cascade (si 20 feuilles sont déjà faites, aurais-je 20 messages pour signaler qu'une feuille existe déjà?)
Sinon cette feuille va largement me faire gagner du temps.
J'avais des questions pour modifier mais ayant un peu chipoté, c'est résolu.
Par contre une question reste en suspend : En cas de double clic sur une ligne, y a t-il moyen d'éviter l'ouverture automatique de l'onglet relatif?
Ou alors un moyen de prévoir un seul bouton pour générer l'intégralité des feuilles sans effacer celles déjà réalisées mais en pouvant modifier celles-ci et sans message d'erreur en cascade (si 20 feuilles sont déjà faites, aurais-je 20 messages pour signaler qu'une feuille existe déjà?)
Sinon cette feuille va largement me faire gagner du temps.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
9 sept. 2014 à 15:43
9 sept. 2014 à 15:43
Re
Pour le bouton :
Supprimer la macro de la feuille Liste
Créer un module (Dans l'Editeur Onglet Insertion Module)
Y coller la macro suivante
Sub fiche()
Dim DernLigne As Long
'derniere ligne non vide
DernLigne = Sheets("Liste").Range("A" & Rows.Count).End(xlUp).Row
For x = 12 To DernLigne
' nom de la feuille à créer
nom = Sheets("Liste").Range("E9") & "_FT " & Sheets("Liste").Range("A" & x)
' boucle sur feuilles pour vérifier que fiche n'existe pas dejà
dj = 0
For n = 1 To Sheets.Count
If Sheets(n).Name = nom Then dj = 1
Next
If dj = 0 Then 'si la feuille n'existe pas déjà
'Copie du modele
Sheets("Fiche technique").Select
Sheets("Fiche technique").Copy After:=Sheets(Sheets.Count)
Sheets("Fiche technique (2)").Select
' Renomme feuille créee
Sheets("Fiche technique (2)").Name = nom
'copie les infos dans la feuille crée
Sheets(nom).Range("A9") = Sheets("Liste").Range("A9")
Sheets(nom).Range("D11") = "N° dossier : " & Sheets("Liste").Range("E9")
Sheets(nom).Range("C13") = Sheets("Liste").Range("B" & x)
Sheets(nom).Range("C16") = Sheets("Liste").Range("C" & x)
Sheets(nom).Range("C19") = Sheets("Liste").Range("D" & x)
Sheets(nom).Range("C20") = Sheets("Liste").Range("E" & x)
Sheets(nom).Range("C27") = Sheets("Liste").Range("F" & x) & " Pages"
End If
Next x
End Sub
Sur la feuille liste crée le controle ACtive X Bouton puis Clic droit sur le bouton Visualiser le code et mettre simplement dans le code du bouton le nom de la macro c à d fiche
Cdlmnt
Pour le bouton :
Supprimer la macro de la feuille Liste
Créer un module (Dans l'Editeur Onglet Insertion Module)
Y coller la macro suivante
Sub fiche()
Dim DernLigne As Long
'derniere ligne non vide
DernLigne = Sheets("Liste").Range("A" & Rows.Count).End(xlUp).Row
For x = 12 To DernLigne
' nom de la feuille à créer
nom = Sheets("Liste").Range("E9") & "_FT " & Sheets("Liste").Range("A" & x)
' boucle sur feuilles pour vérifier que fiche n'existe pas dejà
dj = 0
For n = 1 To Sheets.Count
If Sheets(n).Name = nom Then dj = 1
Next
If dj = 0 Then 'si la feuille n'existe pas déjà
'Copie du modele
Sheets("Fiche technique").Select
Sheets("Fiche technique").Copy After:=Sheets(Sheets.Count)
Sheets("Fiche technique (2)").Select
' Renomme feuille créee
Sheets("Fiche technique (2)").Name = nom
'copie les infos dans la feuille crée
Sheets(nom).Range("A9") = Sheets("Liste").Range("A9")
Sheets(nom).Range("D11") = "N° dossier : " & Sheets("Liste").Range("E9")
Sheets(nom).Range("C13") = Sheets("Liste").Range("B" & x)
Sheets(nom).Range("C16") = Sheets("Liste").Range("C" & x)
Sheets(nom).Range("C19") = Sheets("Liste").Range("D" & x)
Sheets(nom).Range("C20") = Sheets("Liste").Range("E" & x)
Sheets(nom).Range("C27") = Sheets("Liste").Range("F" & x) & " Pages"
End If
Next x
End Sub
Sur la feuille liste crée le controle ACtive X Bouton puis Clic droit sur le bouton Visualiser le code et mettre simplement dans le code du bouton le nom de la macro c à d fiche
Cdlmnt
Gurhaus3
Messages postés
5
Date d'inscription
mardi 9 septembre 2014
Statut
Membre
Dernière intervention
12 septembre 2014
10 sept. 2014 à 09:32
10 sept. 2014 à 09:32
Niquel, merci pour le coup de main
Gurhaus3
Messages postés
5
Date d'inscription
mardi 9 septembre 2014
Statut
Membre
Dernière intervention
12 septembre 2014
12 sept. 2014 à 09:02
12 sept. 2014 à 09:02
Hello,
Je me retrouve quand même face à un souci.
http://cjoint.com/data3/3ImjaAniy7l.htm
Lors de la génération des différentes feuilles, les fiches techniques doivent normalement avoir leur numéro qui s'affiche en C11 (reprise du nom de l'onglet et sélection uniquement de la numérotation).
Je génère par exemple 5 feuilles et dans la case C11 sur toutes les fiches, celles-ci sont nommées "5", comme si la C11 de la dernière feuille était une seule et même cellule avec toutes les autres feuilles.
Une idée?
Je me retrouve quand même face à un souci.
http://cjoint.com/data3/3ImjaAniy7l.htm
Lors de la génération des différentes feuilles, les fiches techniques doivent normalement avoir leur numéro qui s'affiche en C11 (reprise du nom de l'onglet et sélection uniquement de la numérotation).
Je génère par exemple 5 feuilles et dans la case C11 sur toutes les fiches, celles-ci sont nommées "5", comme si la C11 de la dernière feuille était une seule et même cellule avec toutes les autres feuilles.
Une idée?
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
12 sept. 2014 à 13:33
12 sept. 2014 à 13:33
Bonjour
Supprime la formule en C11
Dans la macro rajoute cette ligne parmi celles qui copient les infos :
Sheets(nom).Range("C11") = Sheets("Liste").Range("A" & x)
Cdlmnt
Supprime la formule en C11
Dans la macro rajoute cette ligne parmi celles qui copient les infos :
Sheets(nom).Range("C11") = Sheets("Liste").Range("A" & x)
Cdlmnt