A voir également:
- Integration de bouton fonction d'une autre feuille
- Fonction si et - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Bruler feuille de laurier - Guide
- Comment supprimer une feuille sur word - Guide
- Comment imprimer en a5 sur une feuille a4 - Guide
6 réponses
Bonjour Eddy
Comment ta macro copie ta feuille modèle ?
Normalement avec une macro de ce type, les boutons et les codes associés sont forcément copiés également :
Cdlmnt
Via
Comment ta macro copie ta feuille modèle ?
Normalement avec une macro de ce type, les boutons et les codes associés sont forcément copiés également :
Sub nouvelle_feuille() Sheets("MODELE").Select Sheets("MODELE").Copy After:=Sheets("MODELE") End Sub
Cdlmnt
Via
Bonsoir et merci de ta reponse,
pour la creation de mon nouvel onglet j'ai cette fonction:
mais de cette manière, et je ne comprends pas pourquoi, mes boutons de fonction ne reste pas!
pour la creation de mon nouvel onglet j'ai cette fonction:
Public Sub CreerOnglet(psSemaine As String, pdtDate As Date, piJour As Integer)
Dim oShNew As Worksheet
Set oShNew = Worksheets.Add
Worksheets("Modele").Cells.Copy
oShNew.Select
oShNew.Paste
oShNew.Range("A4").Value = psSemaine
oShNew.Range("A3").Value = pdtDate
oShNew.Range("A5").Value = "Jour " & piJour
oShNew.Range("A1").Select
oShNew.Name = "Jour " & piJour
oShNew.Visible = xlSheetVisible
oShNew.Select
Set oShNew = Nothing
mais de cette manière, et je ne comprends pas pourquoi, mes boutons de fonction ne reste pas!
Re,
Normal ! Au lieu de copier la feuille comme je le fais dans ma macro, dans la tienne tu crées une nouvelle feuille, tu copies les cellules de la feuille modèle (Worksheets("Modele").Cells.Copy) et tu les colles dans la nouvelle feuille mais pas les boutons !
Procède donc plutôt par copie de la feuille modèle (sans créer une nouvelle feuille avant), puis tu renommes cette copie et tu remplis les cellules A5 etc
Cdlmnt
Via
"L'imagination est plus importante que le savoir." A. Einstein
Normal ! Au lieu de copier la feuille comme je le fais dans ma macro, dans la tienne tu crées une nouvelle feuille, tu copies les cellules de la feuille modèle (Worksheets("Modele").Cells.Copy) et tu les colles dans la nouvelle feuille mais pas les boutons !
Procède donc plutôt par copie de la feuille modèle (sans créer une nouvelle feuille avant), puis tu renommes cette copie et tu remplis les cellules A5 etc
Cdlmnt
Via
"L'imagination est plus importante que le savoir." A. Einstein
merci pour ton explication, mais tres franchement je suis un newbies dans le Vba, j'essaie de comprendre et de manipuler les macros que je trouve pour atteindre mes objectifs... de véritable usine a gaz !!
j'ai essayé avec ta fonction, mais là ce soir, que des bug et surtout pas de résultat... je te joins mon fichier, si le cœur t'en dit, jette un coup d’œil histoire de peut être me guider...
http://www.cjoint.com/c/FEAvA60JEd8
je t'en remercie
j'ai essayé avec ta fonction, mais là ce soir, que des bug et surtout pas de résultat... je te joins mon fichier, si le cœur t'en dit, jette un coup d’œil histoire de peut être me guider...
http://www.cjoint.com/c/FEAvA60JEd8
je t'en remercie
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
Voilà avec macro pour copier la feuille modèle avec ses boutons, il n'y a pas besoin de plus
http://www.cjoint.com/c/FEAwWevKs3z
Pour l'instant il n'y a pas de macros associée aux boutons 3 et 4 de ta feuille modèle, ce que je te conseille pou éviter que ces macros se retrouvent dans toutes les feuilles créées c'est de créer ces macros dans un module et de les nommer par ex action_bouton3 et action_bouton4
Ensuite dans la feuille modèle dans le code associé au bouton3 tu mets juste action_bouton3 pour lancer la macro correspondante, idem pour l'autre bouton bien sûr
Ainsi chaque feuille copiée n'aura qu'une ligne de code associée au lieu de plusieurs lignes
Enfin si les 2 boutons sont bien comme je pense pour imprimer simplement le haut ou le bas de la page, pas besoin de 10 000 lignes il suffit :
- d'une ligne pour définir la zone d'impression
ActiveSheet.PageSetup.PrintArea = "$A$1:$F$7"
- éventuellement de lignes pour fixer les marges
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.708661417322835)
.RightMargin = Application.InchesToPoints(0.708661417322835)
.TopMargin = Application.InchesToPoints(0.748031496062992)
.BottomMargin = Application.InchesToPoints(0.748031496062992)
End with
- d'une ligne pour lancer l'impression en indiquant éventuellement le nombre de copies
ActiveSheet.PrintOut Copies:=1
Et c'est tout, pas d'usine à gaz
Cdlmnt
Via
Voilà avec macro pour copier la feuille modèle avec ses boutons, il n'y a pas besoin de plus
http://www.cjoint.com/c/FEAwWevKs3z
Pour l'instant il n'y a pas de macros associée aux boutons 3 et 4 de ta feuille modèle, ce que je te conseille pou éviter que ces macros se retrouvent dans toutes les feuilles créées c'est de créer ces macros dans un module et de les nommer par ex action_bouton3 et action_bouton4
Ensuite dans la feuille modèle dans le code associé au bouton3 tu mets juste action_bouton3 pour lancer la macro correspondante, idem pour l'autre bouton bien sûr
Ainsi chaque feuille copiée n'aura qu'une ligne de code associée au lieu de plusieurs lignes
Enfin si les 2 boutons sont bien comme je pense pour imprimer simplement le haut ou le bas de la page, pas besoin de 10 000 lignes il suffit :
- d'une ligne pour définir la zone d'impression
ActiveSheet.PageSetup.PrintArea = "$A$1:$F$7"
- éventuellement de lignes pour fixer les marges
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.708661417322835)
.RightMargin = Application.InchesToPoints(0.708661417322835)
.TopMargin = Application.InchesToPoints(0.748031496062992)
.BottomMargin = Application.InchesToPoints(0.748031496062992)
End with
- d'une ligne pour lancer l'impression en indiquant éventuellement le nombre de copies
ActiveSheet.PrintOut Copies:=1
Et c'est tout, pas d'usine à gaz
Cdlmnt
Via
ça c'est du rapide !!!
ça marche nickel, par contre en ce qui concerne l'impression...
Est ce que tu connaitrais une ligne de commande pour faire la mise en page automatique sur TouS les onglets comportant le terme "Jour" sachant que la zone impression n'est compatible que onglet par onglet.... ce qui me permettrait de n'avoir qu'une ou macros sur le global
ça marche nickel, par contre en ce qui concerne l'impression...
Est ce que tu connaitrais une ligne de commande pour faire la mise en page automatique sur TouS les onglets comportant le terme "Jour" sachant que la zone impression n'est compatible que onglet par onglet.... ce qui me permettrait de n'avoir qu'une ou macros sur le global
Bonjour Eddy
Pour la feuille modèle masquée il faut en début de macro la démasquer avec la commande Sheets("Modèle").Visible = True puis la remasquer en fin de macro avec Sheets("Modèle").Visible = False
Pour faire une action sur tous les onglets commençant par jour tu fais une boucle sur toutes les feuilles :
Cdlmnt
Via
Pour la feuille modèle masquée il faut en début de macro la démasquer avec la commande Sheets("Modèle").Visible = True puis la remasquer en fin de macro avec Sheets("Modèle").Visible = False
Pour faire une action sur tous les onglets commençant par jour tu fais une boucle sur toutes les feuilles :
For n= 1 to Sheets.Count If Left(Sheets(n).Name,4)="Jour" then 'ici tes lignes de commande de mise en page End If Next n
Cdlmnt
Via
bonjour Via
pour la boucle, pas de resultat... la mise en page se fait bien sur la page ou je lance la macro, mais pas sur les autres...
pour la boucle, pas de resultat... la mise en page se fait bien sur la page ou je lance la macro, mais pas sur les autres...
Sub Macro1()
'
' Macro1 Macro
For n = 1 To Sheets.Count
If Left(Sheets(n).Name, 4) = "Jour" Then
Range("A9:F15").Select
ActiveSheet.PageSetup.PrintArea = "$A$9:$F$15"
End If
Next n
End Sub