Macro qui évolue selon les feuilles selectionnées

opopop

XLDnaute Nouveau
Bonjour à tous,

Juste une petite question. Dans l'exemple si dessous, j'ouvre la feuille1 et colorie des cellules en jaune. Jusque là pas de problème.
Pour l'instant, si je veux faire la même chose pour la feuille2, je dois duppliquer la macro en modifiant seulement le "feuil1".

Ce que je souhaiterais faire, c'est de rassembler les 2 macros en 1 tout en évitant de bloquer ma macro car selon les cas, seule la feuille 1 sera ouverte et dans d'autres, seule la feuille2.


Sub existe()
'
' existe Macro
'

'
Sheets("Feuil1").Select
Range("A1:F1").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With

End Sub



En espérant avoir été assez précis.



Opopop
 

Pierrot93

XLDnaute Barbatruc
Re : Macro qui évolue selon les feuilles selectionnées

Bonjour,

peut être ceci :
Code:
Option Explicit
Sub test()
Dim ws As Worksheet
For Each ws In Sheets(Array("Feuil1", "Feuil2"))
    With ws.Range("A1:F1").Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 65535
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
Next ws
End Sub

A noter qu'en vba rarement utile de seléctionner ou d'activer les objets.

bonne journée
@+
 

john

XLDnaute Impliqué
Re : Macro qui évolue selon les feuilles selectionnées

Bonjour,

Dans ton VBA dans ThisWorkbook sélectionne SheetActivate et tape ton code en supprimant la première ligne tout simplement
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Range("A1:F1").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub

Bien à toi.

John
 

opopop

XLDnaute Nouveau
Re : Macro qui évolue selon les feuilles selectionnées

à john: Je ne vois pas le sheetactivate lorsque je clique sur ThisWorkbook.
à Pierro93: ton code ne prend pas en compte le fait que la feuille 2 n'est pas forcément creée. (La macro doit pouvoir se lancer dans le cas où la feuille2 est creée ou pas).

En tout cas merci pour vos réponses!
 

john

XLDnaute Impliqué
Re : Macro qui évolue selon les feuilles selectionnées

Quand tu es dans le VBA, tu cliques 2X sur ThisWorkbook à droite il y a "Général", tu cliques sur la petite flèche et tu sélectionnes "Workbook" et à côté dans "Déclaration" tu sélectionnes "Sheetactivate"

En principe tu dois avoir !!!!

BàT.

John
 

Pièces jointes

  • chg_color.xlsm
    14 KB · Affichages: 37
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Macro qui évolue selon les feuilles selectionnées

Re,

à Pierro93: ton code ne prend pas en compte le fait que la feuille 2 n'est pas forcément creée. (La macro doit pouvoir se lancer dans le cas où la feuille2 est creée ou pas).

Pas tout compris moi.... si tu veux intervenir sur la feuille active... au cas ou....
Code:
Option Explicit
Sub test()
    With ActiveSheet.Range("A1:F1").Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 65535
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
End Sub
 

opopop

XLDnaute Nouveau
Re : Macro qui évolue selon les feuilles selectionnées

Bonjour,

Dernière question, dans cette macro, je selectionne la feuille 7 pour faire ma mise en forme.
Question: comment remplacer la selection de la feuille 7 par la selection de la page active?

(En gros, je ne veux plus de la ligne shhet("feuil7") mais ActiveSheet à la place.



Sub Macro1()
'
' Macro1 Macro
'

'
Sheets("Source").Select
Range("A1:F1").Select
Selection.Copy
Sheets("Feuil7").Select
Rows("1:1").Select
Selection.Insert Shift:=xlDown
ActiveWindow.Zoom = 90
Columns("C:D").Select
Range("D1").Activate
Selection.EntireColumn.Hidden = True

End Sub


Merci encore!


Opopop
 

opopop

XLDnaute Nouveau
Re : Macro qui évolue selon les feuilles selectionnées

Ce que je veux dire, c'est que la macro est faite pour faire les MAJ sur la feuille7. Mais ce que je veux, c'est avoir une seule macro pouvant ouvrir la feuille1,2 ,85,..... La subtilité est que la feuille à selectionner peut être la feuille 9, ce qui fait que la macro doit pouvoir s'ouvrir sans que la macro se bloque (car il n'y aura pas de feuille 1,2,3,4,5,6,7,8, qui seront déja supprimées).

J'espère avoir été assez précis cette fois!
 

Statistiques des forums

Discussions
312 681
Messages
2 090 881
Membres
104 683
dernier inscrit
stefff