Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Classeur et feuilles multiples.

7 réponses
Avatar
Dyj
Bonjour,
Mon système, Vista Home premium et Office 2007.
J'ai un classeur xlsm qui est composé de 12 feuilles au format identique.
Sur la première feuille, j'ai figé les lignes 1-5 de telles sortes à les
avoir tout en déroulant et j'ai crée 2 boutons pour lancer des macros. Tout
fonctionne comme je l'espérai.
Maintenant, je voudrai appliquer ces caractéristiques aux 11 feuilles
restantes. Dois je le faire une par une ou utiliser une autre méthode ? j'ai
essayé de grouper les feuilles mais avec copier coller ça ne marche pas.
Merci de votre aide.

7 réponses

Avatar
garnote
Bonjour,

Une suggestion :
1) Colle ces trois macros dans un module standard :

Sub Figer()
For i = 1 To 12
Sheets(i).Activate
With ActiveWindow
.SplitColumn = 0
.SplitRow = 5
End With
Next i
End Sub

Sub Copie_Boutons()
Sheets(1).Shapes.Range(Array("Button 1", "Button 2")).Select
Selection.Copy
Range("A1").Select
For i = 2 To 12
Sheets(i).Activate
Range("B7").Select
ActiveSheet.Paste
Range("A1").Select
Next i
End Sub

Sub Fige_Et_Colle()
Copie_Boutons
Figer
End Sub

2) Installe deux boutons (contrôle de formulaire) sur
la première feuille et associe une macro à chacun.

3) Appelle la macro Fige_Et_Colle

Il y a peut-être plus simple, allez savoir ?

Serge



"Dyj" a écrit dans le message de news:

Bonjour,
Mon système, Vista Home premium et Office 2007.
J'ai un classeur xlsm qui est composé de 12 feuilles au format identique.
Sur la première feuille, j'ai figé les lignes 1-5 de telles sortes à les
avoir tout en déroulant et j'ai crée 2 boutons pour lancer des macros.
Tout fonctionne comme je l'espérai.
Maintenant, je voudrai appliquer ces caractéristiques aux 11 feuilles
restantes. Dois je le faire une par une ou utiliser une autre méthode ?
j'ai essayé de grouper les feuilles mais avec copier coller ça ne marche
pas.
Merci de votre aide.



Avatar
isabelle
bonjour Dyj,

Sub CréationBouton()
Dim c As Range

For i = 2 To 12
Sheets(i).Activate
Range("A6").Select
ActiveWindow.FreezePanes = True

With ActiveSheet
With Union(.Range("B1"), .Range("D1")) ' à adapter
Application.ScreenUpdating = False
For Each c In .Cells
x = x + 1
With .Parent.Shapes.AddShape(msoShapeBevel, c.Left, c.Top,
c.Width, c.Height)
.Fill.ForeColor.SchemeColor = 7
.Fill.BackColor.SchemeColor = 55
.Fill.Transparency = 0#
.Fill.TwoColorGradient msoGradientFromCenter, 1
.Fill.ForeColor.SchemeColor = 22
.OLEFormat.Object.Caption = "MonBouton" & x
.OLEFormat.Object.OnAction = "Bouton_Click" & x
End With
Next
End With
End With
x = 0
Next i
End Sub

Sub Bouton_Click1()
MsgBox "essai 1"
End Sub

Sub Bouton_Click2()
MsgBox "essai 2"
End Sub

isabelle

Dyj a écrit :
Bonjour,
Mon système, Vista Home premium et Office 2007.
J'ai un classeur xlsm qui est composé de 12 feuilles au format
identique. Sur la première feuille, j'ai figé les lignes 1-5 de telles
sortes à les avoir tout en déroulant et j'ai crée 2 boutons pour
lancer des macros. Tout fonctionne comme je l'espérai.
Maintenant, je voudrai appliquer ces caractéristiques aux 11 feuilles
restantes. Dois je le faire une par une ou utiliser une autre méthode
? j'ai essayé de grouper les feuilles mais avec copier coller ça ne
marche pas.
Merci de votre aide.



Avatar
Dyj
Merci beaucoup, un petit copier/coller et voilà tous mes boutons en bonne
place. Juste comme on dit pour ma culture personnelle !! on puis je trouver
la correspondance des valeurs numériques et des couleurs correspondantes.

"isabelle" a écrit dans le message de
news:
bonjour Dyj,

Sub CréationBouton()
Dim c As Range

For i = 2 To 12
Sheets(i).Activate
Range("A6").Select
ActiveWindow.FreezePanes = True
With ActiveSheet
With Union(.Range("B1"), .Range("D1")) ' à adapter
Application.ScreenUpdating = False
For Each c In .Cells
x = x + 1
With .Parent.Shapes.AddShape(msoShapeBevel, c.Left, c.Top, c.Width,
c.Height)
.Fill.ForeColor.SchemeColor = 7
.Fill.BackColor.SchemeColor = 55
.Fill.Transparency = 0#
.Fill.TwoColorGradient msoGradientFromCenter, 1
.Fill.ForeColor.SchemeColor = 22
.OLEFormat.Object.Caption = "MonBouton" & x
.OLEFormat.Object.OnAction = "Bouton_Click" & x
End With
Next
End With
End With
x = 0
Next i
End Sub

Sub Bouton_Click1()
MsgBox "essai 1"
End Sub

Sub Bouton_Click2()
MsgBox "essai 2"
End Sub

isabelle

Dyj a écrit :
Bonjour,
Mon système, Vista Home premium et Office 2007.
J'ai un classeur xlsm qui est composé de 12 feuilles au format identique.
Sur la première feuille, j'ai figé les lignes 1-5 de telles sortes à les
avoir tout en déroulant et j'ai crée 2 boutons pour lancer des macros.
Tout fonctionne comme je l'espérai.
Maintenant, je voudrai appliquer ces caractéristiques aux 11 feuilles
restantes. Dois je le faire une par une ou utiliser une autre méthode ?
j'ai essayé de grouper les feuilles mais avec copier coller ça ne marche
pas.
Merci de votre aide.





Avatar
isabelle
bonjour Dyj,

pour connaitre le numéro d'une couleur
met les cellules de la colonne A à la couleur de ton choix et utilise
cette fonction pour en connaitre le numéro,

Function couleur(cellule As Range)
couleur = cellule.Interior.ColorIndex
End Function

en colonne B la formule

=couleur(A1)

isabelle

Dyj a écrit :
Merci beaucoup, un petit copier/coller et voilà tous mes boutons en
bonne place. Juste comme on dit pour ma culture personnelle !! on puis
je trouver la correspondance des valeurs numériques et des couleurs
correspondantes.

"isabelle" a écrit dans le message de
news:
bonjour Dyj,

Sub CréationBouton()
Dim c As Range

For i = 2 To 12
Sheets(i).Activate
Range("A6").Select
ActiveWindow.FreezePanes = True
With ActiveSheet
With Union(.Range("B1"), .Range("D1")) ' à adapter
Application.ScreenUpdating = False
For Each c In .Cells
x = x + 1
With .Parent.Shapes.AddShape(msoShapeBevel, c.Left, c.Top,
c.Width, c.Height)
.Fill.ForeColor.SchemeColor = 7
.Fill.BackColor.SchemeColor = 55
.Fill.Transparency = 0#
.Fill.TwoColorGradient msoGradientFromCenter, 1
.Fill.ForeColor.SchemeColor = 22
.OLEFormat.Object.Caption = "MonBouton" & x
.OLEFormat.Object.OnAction = "Bouton_Click" & x
End With
Next
End With
End With
x = 0
Next i
End Sub

Sub Bouton_Click1()
MsgBox "essai 1"
End Sub

Sub Bouton_Click2()
MsgBox "essai 2"
End Sub

isabelle

Dyj a écrit :
Bonjour,
Mon système, Vista Home premium et Office 2007.
J'ai un classeur xlsm qui est composé de 12 feuilles au format
identique. Sur la première feuille, j'ai figé les lignes 1-5 de
telles sortes à les avoir tout en déroulant et j'ai crée 2 boutons
pour lancer des macros. Tout fonctionne comme je l'espérai.
Maintenant, je voudrai appliquer ces caractéristiques aux 11
feuilles restantes. Dois je le faire une par une ou utiliser une
autre méthode ? j'ai essayé de grouper les feuilles mais avec copier
coller ça ne marche pas.
Merci de votre aide.








Avatar
Dyj
Un très grand merci pour ton aide et ta formation ...

"isabelle" a écrit dans le message de
news:
bonjour Dyj,

pour connaitre le numéro d'une couleur
met les cellules de la colonne A à la couleur de ton choix et utilise
cette fonction pour en connaitre le numéro,

Function couleur(cellule As Range)
couleur = cellule.Interior.ColorIndex
End Function

en colonne B la formule

=couleur(A1)

isabelle

Dyj a écrit :
Merci beaucoup, un petit copier/coller et voilà tous mes boutons en bonne
place. Juste comme on dit pour ma culture personnelle !! on puis je
trouver la correspondance des valeurs numériques et des couleurs
correspondantes.

"isabelle" a écrit dans le message de
news:
bonjour Dyj,

Sub CréationBouton()
Dim c As Range

For i = 2 To 12
Sheets(i).Activate
Range("A6").Select
ActiveWindow.FreezePanes = True
With ActiveSheet
With Union(.Range("B1"), .Range("D1")) ' à adapter
Application.ScreenUpdating = False
For Each c In .Cells
x = x + 1
With .Parent.Shapes.AddShape(msoShapeBevel, c.Left, c.Top,
c.Width, c.Height)
.Fill.ForeColor.SchemeColor = 7
.Fill.BackColor.SchemeColor = 55
.Fill.Transparency = 0#
.Fill.TwoColorGradient msoGradientFromCenter, 1
.Fill.ForeColor.SchemeColor = 22
.OLEFormat.Object.Caption = "MonBouton" & x
.OLEFormat.Object.OnAction = "Bouton_Click" & x
End With
Next
End With
End With
x = 0
Next i
End Sub

Sub Bouton_Click1()
MsgBox "essai 1"
End Sub

Sub Bouton_Click2()
MsgBox "essai 2"
End Sub

isabelle

Dyj a écrit :
Bonjour,
Mon système, Vista Home premium et Office 2007.
J'ai un classeur xlsm qui est composé de 12 feuilles au format
identique. Sur la première feuille, j'ai figé les lignes 1-5 de telles
sortes à les avoir tout en déroulant et j'ai crée 2 boutons pour lancer
des macros. Tout fonctionne comme je l'espérai.
Maintenant, je voudrai appliquer ces caractéristiques aux 11 feuilles
restantes. Dois je le faire une par une ou utiliser une autre méthode ?
j'ai essayé de grouper les feuilles mais avec copier coller ça ne
marche pas.
Merci de votre aide.










Avatar
FFO
Salut à toi

Soit Feuil1 la feuille à recopier
Tu peux utiliser ce code :

For i = 1 To Sheets.Count
If Sheets(i).Name <> "Feuil1" Then
Nom = Sheets(i).Name
Sheets("Feuil1").Copy Sheets(i)
Application.DisplayAlerts = False
Sheets(Nom).Delete
ActiveSheet.Name = Nom
End If
Next

Il recopie la Feuil1 autant fois qu'il y a d'autres feuilles (11 pour ton
cas) sur des nouvelles feuilles en récupérant le nom de chaque feuille
existante qu'il supprime ensuite

Fais des essais et dis moi !!!!!
Avatar
Dyj
Je n'avais pas de pbs de duplication de feuilles, mon classeur existe depuis
plusieurs mois, mais je voulais y rajouter 2 boutons identiques sur toutes
les feuilles. J'ai adopté la solution préconisée par "isabelle", et j'ai
résolu mon problème.
Merci tout de même d'avoir répondu.

"FFO" a écrit dans le message de
news:
Salut à toi

Soit Feuil1 la feuille à recopier
Tu peux utiliser ce code :

For i = 1 To Sheets.Count
If Sheets(i).Name <> "Feuil1" Then
Nom = Sheets(i).Name
Sheets("Feuil1").Copy Sheets(i)
Application.DisplayAlerts = False
Sheets(Nom).Delete
ActiveSheet.Name = Nom
End If
Next

Il recopie la Feuil1 autant fois qu'il y a d'autres feuilles (11 pour ton
cas) sur des nouvelles feuilles en récupérant le nom de chaque feuille
existante qu'il supprime ensuite

Fais des essais et dis moi !!!!!