Integration de bouton fonction d'une autre feuille
Fermé
Eddy959
Messages postés
8
Date d'inscription
samedi 4 octobre 2014
Statut
Membre
Dernière intervention
28 mai 2016
-
26 mai 2016 à 14:40
Eddy959 Messages postés 8 Date d'inscription samedi 4 octobre 2014 Statut Membre Dernière intervention 28 mai 2016 - 28 mai 2016 à 13:16
Eddy959 Messages postés 8 Date d'inscription samedi 4 octobre 2014 Statut Membre Dernière intervention 28 mai 2016 - 28 mai 2016 à 13:16
A voir également:
- Integration de bouton fonction d'une autre feuille
- Fonction si et - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Comment supprimer une feuille sur word - Guide
- Bruler une feuille de laurier - Guide
- Comment colorer une cellule excel en fonction du contenu d'une autre cellule ✓ - Forum Excel
6 réponses
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 739
26 mai 2016 à 16:23
26 mai 2016 à 16:23
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
Eddy959
Messages postés
8
Date d'inscription
samedi 4 octobre 2014
Statut
Membre
Dernière intervention
28 mai 2016
Modifié par Eddy959 le 26/05/2016 à 22:10
Modifié par Eddy959 le 26/05/2016 à 22:10
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!
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 739
Modifié par via55 le 26/05/2016 à 22:54
Modifié par via55 le 26/05/2016 à 22:54
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
Eddy959
Messages postés
8
Date d'inscription
samedi 4 octobre 2014
Statut
Membre
Dernière intervention
28 mai 2016
26 mai 2016 à 23:32
26 mai 2016 à 23:32
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
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 739
27 mai 2016 à 01:09
27 mai 2016 à 01:09
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
Eddy959
Messages postés
8
Date d'inscription
samedi 4 octobre 2014
Statut
Membre
Dernière intervention
28 mai 2016
27 mai 2016 à 07:28
27 mai 2016 à 07:28
ç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
Eddy959
Messages postés
8
Date d'inscription
samedi 4 octobre 2014
Statut
Membre
Dernière intervention
28 mai 2016
27 mai 2016 à 08:38
27 mai 2016 à 08:38
Petit souci détecter ... si je masque la feuille "modèle" ça bug... il ne la trouve pas...
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 739
>
Eddy959
Messages postés
8
Date d'inscription
samedi 4 octobre 2014
Statut
Membre
Dernière intervention
28 mai 2016
27 mai 2016 à 10:36
27 mai 2016 à 10:36
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
Eddy959
Messages postés
8
Date d'inscription
samedi 4 octobre 2014
Statut
Membre
Dernière intervention
28 mai 2016
27 mai 2016 à 11:45
27 mai 2016 à 11:45
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
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 739
>
Eddy959
Messages postés
8
Date d'inscription
samedi 4 octobre 2014
Statut
Membre
Dernière intervention
28 mai 2016
27 mai 2016 à 19:10
27 mai 2016 à 19:10
Re,
Il faut d'abord selectionner chaque feuille dans ta boucle
Cdlmnt
Via
Il faut d'abord selectionner chaque feuille dans ta boucle
For n = 1 To Sheets.Count If Left(Sheets(n).Name, 4) = "Jour" Then With Sheets(n) .Select .Range("A9:F15").Select .PageSetup.PrintArea = "$A$9:$F$15" End With End If Next
Cdlmnt
Via
Eddy959
Messages postés
8
Date d'inscription
samedi 4 octobre 2014
Statut
Membre
Dernière intervention
28 mai 2016
>
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
27 mai 2016 à 19:36
27 mai 2016 à 19:36
je te remercie Via, mais je vais pas pouvoir tester tes écrits....
j'ai mon excel qui m’éjecte quand je lui lance une macro... alors que ce fonctionne très bien sur un autre pc!!
J'installe 2016 pour voir si ca continue...
Merci encore de ta patience et ton amabilité
j'ai mon excel qui m’éjecte quand je lui lance une macro... alors que ce fonctionne très bien sur un autre pc!!
J'installe 2016 pour voir si ca continue...
Merci encore de ta patience et ton amabilité