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
Bonjour,
je travaille actuellement avec un calendrier et une feuille "modèle";

lorsque je clique sur une date, il se crée une nouvelle feuille (identique au modèle) avec cette date et diverses autre info.
Sur mon modèle, j'ai crée 2 boutons utilisant des fonctions (zone impression, mise en page spécifique)

mon problème: lors de la création de ma nouvelle feuille, mes boutons ne suivent pas...

j'ai pensé au basique copier/coller, mais je n'arrive pas a lui dire de revenir a la feuille précédente, le nom de celle ci n’étant jamais identique .

mon code actuelle:

Sub Macro6()
ActiveCell.Select
Sheets("Modele").Select
ActiveSheet.Shapes.Range(Array("CommandButton4")).Select
ActiveSheet.Shapes.Range(Array("CommandButton4", "CommandButton3")).Select
Selection.Copy
Sheets("Jour 52").Select
ActiveSheet.Paste
ActiveSheet.Shapes.Range(Array("CommandButton1")).Select
ActiveSheet.Shapes.Range(Array("CommandButton1", "CommandButton2")).Select
ActiveSheet.Shapes.Range(Array("CommandButton3")).Select
ActiveCell.Offset(0, -6).Range("A1").Select
End Sub



merci pour votre aide
A voir également:

6 réponses

via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
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 :
Sub nouvelle_feuille()
    Sheets("MODELE").Select
    Sheets("MODELE").Copy After:=Sheets("MODELE")
  End Sub


Cdlmnt
Via
0
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
Bonsoir et merci de ta reponse,

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!
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
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
0
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
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
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
0
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
ç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
0
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
Petit souci détecter ... si je masque la feuille "modèle" ça bug... il ne la trouve pas...
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729 > 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
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 :

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
0
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
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...

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
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729 > 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
Re,

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
0
Eddy959 Messages postés 8 Date d'inscription samedi 4 octobre 2014 Statut Membre Dernière intervention 28 mai 2016 > via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024
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é
0