Creer des nouvelles feuilles a partir d'une feuille modele
Fermé
SueZollars
Messages postés
10
Date d'inscription
lundi 13 mai 2013
Statut
Membre
Dernière intervention
31 juillet 2013
-
13 mai 2013 à 20:36
Sophie - 10 juil. 2013 à 18:15
Sophie - 10 juil. 2013 à 18:15
A voir également:
- Créer une nouvelle feuille vba
- Darkino nouvelle adresse - Accueil - Services en ligne
- Darkino devient DarkiWorld : le site pirate change de nom, d'adresse et d'interface - Guide
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Créer un groupe whatsapp - Guide
10 réponses
.Grincheux.
Messages postés
211
Date d'inscription
vendredi 10 mai 2013
Statut
Membre
Dernière intervention
22 octobre 2016
84
13 mai 2013 à 23:44
13 mai 2013 à 23:44
Bonjour,
Il te faudra en effet probablement passer par une macro, qui dupliquera ton 1er onglet (.Copy / .Paste) puis le renommera à partir du contenu de la cellule A1.
Ta 2ème feuille sera ainsi la copie conforme de la 1ère.
Par contre je ne suis pas sûr de comprendre ce que tu entends par "Et, au niveau de l'extraction journalière, est ce je peux appliquer la même macro sur mes nouvelles feuilles ou non? "
Bonne journée !
Il te faudra en effet probablement passer par une macro, qui dupliquera ton 1er onglet (.Copy / .Paste) puis le renommera à partir du contenu de la cellule A1.
Ta 2ème feuille sera ainsi la copie conforme de la 1ère.
Par contre je ne suis pas sûr de comprendre ce que tu entends par "Et, au niveau de l'extraction journalière, est ce je peux appliquer la même macro sur mes nouvelles feuilles ou non? "
Bonne journée !
via55
Messages postés
14491
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
24 octobre 2024
2 734
13 mai 2013 à 23:50
13 mai 2013 à 23:50
Bonsoir Sue
Le plus simple
Tu crées ta feuille modèle en Feuil 1 que tu appelles MODELE
Tu la masques
Tu mets l'enregistreur de macro en marche, tu donnes le nom et le raccourci que tu veux à ta macro puis :
Tu clic sur l'onglet de Feuil 2 puis Afficher et tu fais afficher MODELE
Tu clic sur l'onglet MODELE puis sur Deplacer Copier la feuille et tu coches bien l'option Copier
Tu clic à nouveau sur l'onglet MODELE et tu fais à nouveau cacher la feuille MODELE
ET tu arrêtes l'enregistreur de Macro
Chaque fois que tu lancera l'exécution de la macro une nouvelle feuille identique à MODELE sera créee qu'il te suffira de renommer comme tu veux
Cdlmnt
Le plus simple
Tu crées ta feuille modèle en Feuil 1 que tu appelles MODELE
Tu la masques
Tu mets l'enregistreur de macro en marche, tu donnes le nom et le raccourci que tu veux à ta macro puis :
Tu clic sur l'onglet de Feuil 2 puis Afficher et tu fais afficher MODELE
Tu clic sur l'onglet MODELE puis sur Deplacer Copier la feuille et tu coches bien l'option Copier
Tu clic à nouveau sur l'onglet MODELE et tu fais à nouveau cacher la feuille MODELE
ET tu arrêtes l'enregistreur de Macro
Chaque fois que tu lancera l'exécution de la macro une nouvelle feuille identique à MODELE sera créee qu'il te suffira de renommer comme tu veux
Cdlmnt
SueZollars
Messages postés
10
Date d'inscription
lundi 13 mai 2013
Statut
Membre
Dernière intervention
31 juillet 2013
14 mai 2013 à 17:26
14 mai 2013 à 17:26
Bonjour a tous,
Tout d'abord, merci beaucoup pour votre aide.
En etudiant vos reponses, je suis arrivee a quelque chose de plutot correct pour mon premier point. Je dupplique simplement la feuille 1 par une macro, que j'ai obtenu en parti par l'enregistreur.
Ce que je voulais dire par "Et, au niveau de l'extraction journalière, est ce je peux appliquer la même macro sur mes nouvelles feuilles ou non? " c'est qu'une fois ma feuille creee, je voudrais appliquer la macro qui extrait les donnees dont j'ai besoin. Mais est ce que la maccro que je vais creer va s'appliquer a toute ces nouvelles feuilles? J'ai cree un bouton associee a une macro sur la feuille 1 mais sur les autres feuilles qui sont dupliquee, la macro ne se lance pas lorque je clique sur ce bouton.
J'espere que je suis claire...
Merci encore
Tout d'abord, merci beaucoup pour votre aide.
En etudiant vos reponses, je suis arrivee a quelque chose de plutot correct pour mon premier point. Je dupplique simplement la feuille 1 par une macro, que j'ai obtenu en parti par l'enregistreur.
Ce que je voulais dire par "Et, au niveau de l'extraction journalière, est ce je peux appliquer la même macro sur mes nouvelles feuilles ou non? " c'est qu'une fois ma feuille creee, je voudrais appliquer la macro qui extrait les donnees dont j'ai besoin. Mais est ce que la maccro que je vais creer va s'appliquer a toute ces nouvelles feuilles? J'ai cree un bouton associee a une macro sur la feuille 1 mais sur les autres feuilles qui sont dupliquee, la macro ne se lance pas lorque je clique sur ce bouton.
J'espere que je suis claire...
Merci encore
PHILOU10120
Messages postés
6393
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
9 octobre 2024
810
14 mai 2013 à 18:21
14 mai 2013 à 18:21
Bonjour
Le bouton qui lance la macro est actif après duplication d'une feuille, il faut faire attention dans la macro de lancer celle-ci sur feuille active et non sur le nom d'une feuille et comme cela la macro peu servir sur toutes les nouvelles feuilles et elle s'exécutera sur la feuille active
Le bouton qui lance la macro est actif après duplication d'une feuille, il faut faire attention dans la macro de lancer celle-ci sur feuille active et non sur le nom d'une feuille et comme cela la macro peu servir sur toutes les nouvelles feuilles et elle s'exécutera sur la feuille active
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
SueZollars
Messages postés
10
Date d'inscription
lundi 13 mai 2013
Statut
Membre
Dernière intervention
31 juillet 2013
15 mai 2013 à 14:27
15 mai 2013 à 14:27
Effectivement, ca marche :)
Il ne me reste plus qu'a m'occuper de mon extraction...
Merci beaucoup en tout cas :)
Il ne me reste plus qu'a m'occuper de mon extraction...
Merci beaucoup en tout cas :)
SueZollars
Messages postés
10
Date d'inscription
lundi 13 mai 2013
Statut
Membre
Dernière intervention
31 juillet 2013
15 mai 2013 à 16:21
15 mai 2013 à 16:21
J'abuse de votre aide mais j'ai un souci...
Quand, dans ma feuille 1, je tape en A1 une date qui a deja ete utilisee, la macro bug car l'onglet existe deja.
J'ai essaye d'ajouter a ma macro existante un test qui affiche une message box type "cette date existe deja" pour pouvoir ensuite rentrer une autre date. Je suis passee par une fonction que j'ai trouvee dans un forum mais ca n'a pas l'air de fonctionner. La macro bug toujours, la message box s'affiche tout le temps, meme quand la date est correct. Bref je ne sais pas comment construire ma macro avec cette nouvelle condition.
J'espere que vous pourrez m'aider.
Merci d'avance !
Quand, dans ma feuille 1, je tape en A1 une date qui a deja ete utilisee, la macro bug car l'onglet existe deja.
J'ai essaye d'ajouter a ma macro existante un test qui affiche une message box type "cette date existe deja" pour pouvoir ensuite rentrer une autre date. Je suis passee par une fonction que j'ai trouvee dans un forum mais ca n'a pas l'air de fonctionner. La macro bug toujours, la message box s'affiche tout le temps, meme quand la date est correct. Bref je ne sais pas comment construire ma macro avec cette nouvelle condition.
J'espere que vous pourrez m'aider.
Merci d'avance !
.Grincheux.
Messages postés
211
Date d'inscription
vendredi 10 mai 2013
Statut
Membre
Dernière intervention
22 octobre 2016
84
15 mai 2013 à 21:12
15 mai 2013 à 21:12
Donne-nous le code que tu as utilisé pour le test, comme ça on pourra te dire ce qui ne va pas et tu apprendras de tes erreurs ;-)
SueZollars
Messages postés
10
Date d'inscription
lundi 13 mai 2013
Statut
Membre
Dernière intervention
31 juillet 2013
15 mai 2013 à 21:20
15 mai 2013 à 21:20
Salut Grincheux et les autres,
Voila mon "test", je l'ai modifiee entre temps pour resoudre mon probleme, mais il ne fonctionne toujours pas.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Byte
If Intersect(Target, [B1]) Is Nothing Then
Else
If Target.Value <> "" Then
For i = 1 To Sheets.Count
If Target.Value = Sheets(i).Name Then
MsgBox "La feuille existe déjà !!!"
Exit Sub
Next i
Else
ActiveWorkbook.Sheets(1).Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = [B1]
End If
Else
MsgBox ("Rentrer la date")
End If
End If
End Sub
Voila mon "test", je l'ai modifiee entre temps pour resoudre mon probleme, mais il ne fonctionne toujours pas.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Byte
If Intersect(Target, [B1]) Is Nothing Then
Else
If Target.Value <> "" Then
For i = 1 To Sheets.Count
If Target.Value = Sheets(i).Name Then
MsgBox "La feuille existe déjà !!!"
Exit Sub
Next i
Else
ActiveWorkbook.Sheets(1).Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = [B1]
End If
Else
MsgBox ("Rentrer la date")
End If
End If
End Sub
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 236
15 mai 2013 à 22:45
15 mai 2013 à 22:45
Bonjour,
avec ton if dans la boucle for et le else à l'extérieur de cette boucle ça ne risque pas de marcher.
avant la boucle met une variable boolean ok à true.
Si tu trouves ta feuille tu la mets à false, et après la boucle tu testes :
if ok then
'créer feuille'
else
' ce que tu veux
endif
eric
avec ton if dans la boucle for et le else à l'extérieur de cette boucle ça ne risque pas de marcher.
avant la boucle met une variable boolean ok à true.
Si tu trouves ta feuille tu la mets à false, et après la boucle tu testes :
if ok then
'créer feuille'
else
' ce que tu veux
endif
eric
SueZollars
Messages postés
10
Date d'inscription
lundi 13 mai 2013
Statut
Membre
Dernière intervention
31 juillet 2013
16 mai 2013 à 16:22
16 mai 2013 à 16:22
Bonjour Eric,
J'ai essaye de prendre en compte tes remarques concernant mes erreurs d'ecriture sur les bouclesm les if... J'en arrive a la :
Par contre, je ne comprends pas trop ce que tu dis par rapport a la variable boolean, peux tu me donner plus d'explications stp ?
Merci d'avance
J'ai essaye de prendre en compte tes remarques concernant mes erreurs d'ecriture sur les bouclesm les if... J'en arrive a la :
Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer If Intersect(Target, [B1]) Is Nothing Then Else For i = 1 To Sheets.Count If [B1] = Sheets(i).Name Then MsgBox "La feuille existe déjà !!!" Exit Sub End If Next ActiveWorkbook.Sheets(1).Copy After:=Worksheets(Worksheets.Count) ActiveSheet.Name = [B1] End If End Sub
Par contre, je ne comprends pas trop ce que tu dis par rapport a la variable boolean, peux tu me donner plus d'explications stp ?
Merci d'avance
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 236
Modifié par eriiic le 16/05/2013 à 17:46
Modifié par eriiic le 16/05/2013 à 17:46
Bonjour,
sans tester ça donnerait ça :
Sinon tu as une autre technique qui consiste à interroger la propriété .name ou .index de ta feuille.
Si elle n'existe pas tu as une erreur.
Tu sais si elle existe ou pas en gérant l'erreur générée si elle est absente, sans à avoir de boucle à faire sur toutes les feuilles.
Ex d'une fonction faisant ça :
Si la feuille existe tu as son index, sinon 0 (Faux)
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
sans tester ça donnerait ça :
Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer, ok As Boolean If Not Intersect(Target, [B1]) Is Nothing Then ok = True For i = 1 To Sheets.Count If [B1] = Sheets(i).Name Then MsgBox "La feuille existe déjà !!!" ok = False Exit For End If Next If ok Then ActiveWorkbook.Sheets(1).Copy After:=Worksheets(Worksheets.Count) ActiveSheet.Name = [B1] End If End If End Sub
Sinon tu as une autre technique qui consiste à interroger la propriété .name ou .index de ta feuille.
Si elle n'existe pas tu as une erreur.
Tu sais si elle existe ou pas en gérant l'erreur générée si elle est absente, sans à avoir de boucle à faire sur toutes les feuilles.
Ex d'une fonction faisant ça :
Function existSheet(nomFeuille As String) As Long On Error Resume Next existSheet = Sheets(nomFeuille).Index End Function
Si la feuille existe tu as son index, sinon 0 (Faux)
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
SueZollars
Messages postés
10
Date d'inscription
lundi 13 mai 2013
Statut
Membre
Dernière intervention
31 juillet 2013
20 mai 2013 à 14:22
20 mai 2013 à 14:22
Salut Eric,
Le test ne fonctionnais pas mais je suis parti de ton idee pour "trifouiller" un test. Il fonctionne donc j'en ai fini avec ca !
Merci a tous !
Le test ne fonctionnais pas mais je suis parti de ton idee pour "trifouiller" un test. Il fonctionne donc j'en ai fini avec ca !
Merci a tous !
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 236
20 mai 2013 à 16:33
20 mai 2013 à 16:33
Bonjour,
par curiosité j'ai testé ce que je t'avais écrit, ça fonctionne très bien sans changer quoique ce soit.
eric
par curiosité j'ai testé ce que je t'avais écrit, ça fonctionne très bien sans changer quoique ce soit.
eric