Création feuille supplémentaire en fonction d'une liste
Fermé
MirouAdri
Messages postés
8
Date d'inscription
vendredi 22 février 2019
Statut
Membre
Dernière intervention
2 juillet 2019
-
Modifié le 22 févr. 2019 à 15:05
via55 Messages postés 14501 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 novembre 2024 - 25 févr. 2019 à 11:45
via55 Messages postés 14501 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 novembre 2024 - 25 févr. 2019 à 11:45
A voir également:
- Création feuille supplémentaire en fonction d'une liste
- Liste déroulante excel - Guide
- Fonction si et - Guide
- Liste déroulante en cascade - Guide
- Creation compte gmail - Guide
- Comment supprimer une feuille sur word - Guide
5 réponses
via55
Messages postés
14501
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 novembre 2024
2 735
22 févr. 2019 à 15:09
22 févr. 2019 à 15:09
Bonjour
Macro à mettre dans un module de l'éditeur VBA et à lacer depuis la feuil1 à condition d'avoir crée aussi préalablement une feuille appelée Modèle
Cdlmnt
Via
Macro à mettre dans un module de l'éditeur VBA et à lacer depuis la feuil1 à condition d'avoir crée aussi préalablement une feuille appelée Modèle
Sub creation_feuilles() ligne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row ' drnière ligne remplie en A For n = 1 To ligne 'boucle depuis ligne 1 à la dernière nom = Range("A" & n) ' nom à donner Sheets("Modele").Select Sheets("Modele").Copy After:=Sheets(Sheets.Count) ' copie Modèle en dernier Sheets("Modele (2)").Select Sheets("Modele (2)").Name = nom ' renomme feuilel crée Range("B2").Select ActiveCell.FormulaR1C1 = nom ' met le nom aussi en B2 Sheets("Feuil1").Select Range("E" & n).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ nom & "!A1", TextToDisplay:=nom ' met le lien hypertexet en col E de Feuil1 Next End Sub
Cdlmnt
Via
via55
Messages postés
14501
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 novembre 2024
2 735
22 févr. 2019 à 16:20
22 févr. 2019 à 16:20
Tu avais parlé de la colonne A !!
La colonne de la liste est mentionnée 1ere ligne ici 1; change le 1 en 3 pour la colonne C
Comme cette instruction recherche la dernière ligne remplie si tu ajoutes des noms pas de souci
ligne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row ' drnière ligne remplie en A
La boucle part de la ligne 1 dans l'instruction suivante, rempale le 1 par 8 pour partir de la ligen 8
For n = 1 To ligne
La colonne de recherche est aussi définie ici, change alors le A en C
nom = Range("A" & n) ' nom à donner
La colonne de la liste est mentionnée 1ere ligne ici 1; change le 1 en 3 pour la colonne C
Comme cette instruction recherche la dernière ligne remplie si tu ajoutes des noms pas de souci
ligne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row ' drnière ligne remplie en A
La boucle part de la ligne 1 dans l'instruction suivante, rempale le 1 par 8 pour partir de la ligen 8
For n = 1 To ligne
La colonne de recherche est aussi définie ici, change alors le A en C
nom = Range("A" & n) ' nom à donner
MirouAdri
Messages postés
8
Date d'inscription
vendredi 22 février 2019
Statut
Membre
Dernière intervention
2 juillet 2019
22 févr. 2019 à 16:30
22 févr. 2019 à 16:30
Je vais essayer tout çà, merci en tout cas.
Ma crainte est que je vais modifier au fur et à mesure les nouvelles feuilles crées, et je ne souhaite pas qu'en ré utilisant la macro ( suite à l'ajout en colonne C des noms supplémentaires, cela écrase les feuilles existantes.
Ma crainte est que je vais modifier au fur et à mesure les nouvelles feuilles crées, et je ne souhaite pas qu'en ré utilisant la macro ( suite à l'ajout en colonne C des noms supplémentaires, cela écrase les feuilles existantes.
MirouAdri
Messages postés
8
Date d'inscription
vendredi 22 février 2019
Statut
Membre
Dernière intervention
2 juillet 2019
22 févr. 2019 à 17:01
22 févr. 2019 à 17:01
çà marche pour la première partie
Mais comme je craignais, je ne sais pas réitérer l'opération après avoir ajouter 10 noms dans la colonne C à la suite des autres ...
Mais comme je craignais, je ne sais pas réitérer l'opération après avoir ajouter 10 noms dans la colonne C à la suite des autres ...
via55
Messages postés
14501
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 novembre 2024
2 735
22 févr. 2019 à 18:25
22 févr. 2019 à 18:25
Oui si tu rajoutes des noms après il faut vérifier que la feuille n'existe pas déjà alors après la ligne
nom = Range("A" & n) ' nom à donner
rajoute celles ci :
dj = 0
For x = 1 To Sheets.Count
If Sheets(x).Name = nom Then dj = 1
Next
If dj = 0 Then
puis avant le Next qui est avant le End sub rajoute
End If
nom = Range("A" & n) ' nom à donner
rajoute celles ci :
dj = 0
For x = 1 To Sheets.Count
If Sheets(x).Name = nom Then dj = 1
Next
If dj = 0 Then
puis avant le Next qui est avant le End sub rajoute
End If
MirouAdri
Messages postés
8
Date d'inscription
vendredi 22 février 2019
Statut
Membre
Dernière intervention
2 juillet 2019
25 févr. 2019 à 08:57
25 févr. 2019 à 08:57
Tout Fonctionne parfaitement Via 55, merci pour ton aide précieuse.
Me reste juste un soucis, c'est que le lien ne fonctionne que quand il n'y a pas d'espace dans le nom ...
Mille merci
Me reste juste un soucis, c'est que le lien ne fonctionne que quand il n'y a pas d'espace dans le nom ...
Mille merci
via55
Messages postés
14501
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 novembre 2024
2 735
25 févr. 2019 à 09:40
25 févr. 2019 à 09:40
Re
Exact pour qu'un nom avec espace soit accepté il doit être encadré par des apostrophes
Modifie la ligne d e macro qui récupère le nom ainsi
nom = "'" & Range("A" & n) &"'"
avant et après le & c'est bien guillemet apostrophe guillemet attention
Cdlmnt
Via
Exact pour qu'un nom avec espace soit accepté il doit être encadré par des apostrophes
Modifie la ligne d e macro qui récupère le nom ainsi
nom = "'" & Range("A" & n) &"'"
avant et après le & c'est bien guillemet apostrophe guillemet attention
Cdlmnt
Via
MirouAdri
Messages postés
8
Date d'inscription
vendredi 22 février 2019
Statut
Membre
Dernière intervention
2 juillet 2019
25 févr. 2019 à 10:06
25 févr. 2019 à 10:06
Ca marchait nickel mais mnt il m'indique ceci :
Erreur d'exécution '1004':
Vous avez tapé un nom de feuille ou de graphique non valide. Vérifiez les points suivants
- le nom ne dépasse pas 31 caractères ( espace compris, non )
- Le nom ne contient aucun caractère des caractères suivants : \/ ? * [ ] NON
- Le champ du nom n'est pas vide
Erreur d'exécution '1004':
Vous avez tapé un nom de feuille ou de graphique non valide. Vérifiez les points suivants
- le nom ne dépasse pas 31 caractères ( espace compris, non )
- Le nom ne contient aucun caractère des caractères suivants : \/ ? * [ ] NON
- Le champ du nom n'est pas vide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
via55
Messages postés
14501
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 novembre 2024
2 735
25 févr. 2019 à 11:45
25 févr. 2019 à 11:45
Renvoie moi le fichier via mon-partage.fr que je puisse voir ce qui bug
22 févr. 2019 à 15:45
Merci pour ton aide !!
Tu as bien compris ce que je voulais cependant çà ne fonctionne pas car ma colonne avec les noms est en "C" et commence à la ligne 8. Je ne sais pas où changer ces paramètres.
De plus, si j'ajoute plus tard des noms à la suite, je ne souhaite pas que le "bouton" écrase mes premières feuilles. Est ce possible ?
Grand merci d'avance