macro à une seule feuille ?

  • Initiateur de la discussion Initiateur de la discussion Syntime
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Syntime

Guest
Bonjour,

J'ai un fichier .xls comprenant 4 feuilles. J'ai créé une macro qui "devrait" s'appliquer à une seule feuille. Le problème est que cette macro s'applique aux 4 feuilles à la fois et fout le "bordel" dans les trois autres ! Comment forcer cette macro à ne s'appliquer qu'à une seule feuille ?

Voici à quoi elle ressemble :

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 21/01/2004 par Syntime
'
' Touche de raccourci du clavier: Ctrl+z
'
Range("P4:Q15").Select
Selection.Copy
Range("D16").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Range("P20").Select
Application.CutCopyMode = False
Range("C4:Q15").Select
Selection.Sort Key1:=Range("P4"), Order1:=xlDescending, Key2:=Range("Q4") _
, Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
True, Orientation:=xlTopToBottom
Range("D3:O17").Select
Selection.Sort Key1:=Range("D16"), Order1:=xlDescending, Key2:=Range( _
"D17"), Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=True, Orientation:=xlLeftToRight
Range("O22").Select
Sheets("Classement(s)").Select
Range("K23").Select
End Sub


D'avance je vous remercie.
 
Bonjour,

il faut dans la macro préciser la feuille sur laquelle elle doit travailler, sinon elle s'appliquera systématiquement sur la feuille ouverte.

sheets("Feuil1").select (Feuil1 ou le nom de la feuille)

avant

Range("P4:Q15").Select

A+
 
Bonjour,

il faut dans la macro préciser la feuille sur laquelle elle doit travailler, sinon elle s'appliquera systématiquement sur la feuille ouverte.

sheets("Feuil1").select (Feuil1 ou le nom de la feuille)

avant

Range("P4:Q15").Select

A+
J'ai essayé ce que vous avez écrit mais dans mon cas, ça ne fonctionne pas. Est-ce parce que ma macro est trop longue ou dois-je l'écrire à plus qu'un endroit?

Sub AbsentPrésent()
'
' AbsentPrésent Macro
'
' Touche de raccourci du clavier: Ctrl+t
'
Sheets("Feuil1").Select (recap)
Range("F5").Select
ActiveCell.FormulaR1C1 = "1"
Range("G5").Select
ActiveCell.FormulaR1C1 = "1"
Range("H5").Select
ActiveCell.FormulaR1C1 = "1"
Range("Z5").Select
ActiveCell.FormulaR1C1 = "1"
Range("AA5").Select
ActiveCell.FormulaR1C1 = "1"
Range("AB5").Select
ActiveCell.FormulaR1C1 = "1"
Range("F5:AB5").Select
Selection.Copy
Range("F7,F9,F11").Select
Range("F11").Activate
ActiveWindow.SmallScroll Down:=15
Range("F7,F9,F11,F22,F24,F26,F28").Select
Range("F28").Activate
ActiveWindow.SmallScroll Down:=21
Range("F7,F9,F11,F22,F24,F26,F28,F39,F41,F43,F45").Select
Range("F45").Activate
ActiveWindow.SmallScroll Down:=12
Range("F7,F9,F11,F22,F24,F26,F28,F39,F41,F43,F45,F56,F58,F60,F62").Select
Range("F62").Activate
ActiveWindow.SmallScroll Down:=21
Range( _
"F7,F9,F11,F22,F24,F26,F28,F39,F41,F43,F45,F56,F58,F60,F62,F73,F75,F77,F79,F90,F92" _
).Select
Range("F92").Activate
ActiveWindow.SmallScroll Down:=21
Range( _
"F7,F9,F11,F22,F24,F26,F28,F39,F41,F43,F45,F56,F58,F60,F62,F73,F75,F77,F79,F90,F92,F94,F96,F107,F109,F111,F113" _
).Select
Range("F113").Activate
ActiveWindow.SmallScroll Down:=6
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=-6
End Sub
Sub RemplirRecap()
'
' RemplirRecap Macro
'
' Touche de raccourci du clavier: Ctrl+u
'
Range("F4,Z4,F21,Z21").Select
Range("Z21").Activate
ActiveWindow.SmallScroll Down:=24
Range("F4,Z4,F21,Z21,F38,Z38,F55,Z55").Select
Range("Z55").Activate
ActiveWindow.SmallScroll Down:=21
Range("F4,Z4,F21,Z21,F38,Z38,F55,Z55,F72,Z72").Select
Range("Z72").Activate
ActiveWindow.SmallScroll Down:=21
Range("F4,Z4,F21,Z21,F38,Z38,F55,Z55,F72,Z72,F89,Z89").Select
Range("Z89").Activate
ActiveWindow.SmallScroll Down:=21
Range("F4,Z4,F21,Z21,F38,Z38,F55,Z55,F72,Z72,F89,Z89,F106,Z106").Select
Range("Z106").Activate
End Sub
Sub OrdreJoueurs()
'
' OrdreJoueurs Macro
'
' Touche de raccourci du clavier: Ctrl+o
'
Range("B5:C9").Select
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Add Key:=Range("C6:C9"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cédule").Sort
.SetRange Range("B5:C9")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B11:C15").Select
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Add Key:=Range("C12:C15") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cédule").Sort
.SetRange Range("B11:C15")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.SmallScroll Down:=9
Range("B17:C21").Select
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Add Key:=Range("C18:C21") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cédule").Sort
.SetRange Range("B17:C21")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.SmallScroll Down:=9
Range("B23:C27").Select
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Add Key:=Range("C24:C27") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cédule").Sort
.SetRange Range("B23:C27")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B29:C33").Select
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Add Key:=Range("C30:C33") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cédule").Sort
.SetRange Range("B29:C33")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.SmallScroll Down:=9
Range("B35:C39").Select
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Add Key:=Range("C36:C39") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cédule").Sort
.SetRange Range("B35:C39")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B41:C45").Select
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Add Key:=Range("C42:C45") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cédule").Sort
.SetRange Range("B41:C45")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B47:C51").Select
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Add Key:=Range("C48:C51") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cédule").Sort
.SetRange Range("B47:C51")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.SmallScroll Down:=21
Range("B53:C57").Select
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Add Key:=Range("C54:C57") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cédule").Sort
.SetRange Range("B53:C57")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B59:C63").Select
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Add Key:=Range("C60:C63") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cédule").Sort
.SetRange Range("B59:C63")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B65:C69").Select
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Add Key:=Range("C66:C69") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cédule").Sort
.SetRange Range("B65:C69")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.SmallScroll Down:=12
Range("B71:C75").Select
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Add Key:=Range("C72:C75") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cédule").Sort
.SetRange Range("B71:C75")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B77:C81").Select
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Add Key:=Range("C78:C81") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cédule").Sort
.SetRange Range("B77:C81")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B83:C87").Select
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Cédule").Sort.SortFields.Add Key:=Range("C84:C87") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cédule").Sort
.SetRange Range("B83:C87")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
 
Bonjour @Elise1

Fouille et .deterrage de post.gif

Ouvre ton propre post c'est un post de plus de 20 ans !!!
Relis la charte § 1.3
Mets le code entre balises car ton code est indigeste
1737390249609.png

Edit :
Fourni le fichier et explique ce que tu cherche à faire car pour 2 macros je ne comprends pas trop ce que tu veux faire
Et ta macro de de tri de 200 lignes peut être fait en 10 lignes 😳

Bonne lecture
 
Dernière édition:
Bonjour @Elise1


Ouvre ton propre post c'est un post de plus de 20 ans !!!
Relis la charte § 1.3
Mets le code entre balises car ton code est indigeste
Regarde la pièce jointe 1211319
Edit :
Fourni le fichier et explique ce que tu cherche à faire car pour 2 macros je ne comprends pas trop ce que tu veux faire
Et ta macro de de tri de 200 lignes peut être fait en 10 lignes 😳

Bonne lecture
Je t'avoue que je n'ai aucune formation dans ce domaine et que je travaille avec mon vieux Office 2007. Est-ce que c'est possible avec mon vieux Office de le faire avec? Et merci d'avoir répondu!
 
@Elise1

As tu lu ET compris ce que j'ai écrit ?

Si oui qu'attends tu pour le faire
Si non relis le et essaye de le comprendre


On a pour habitude de dire qu'avec excel on peut tout faire sauf le café !!!
Merci de ton aide et désolée pour mon code indigeste... je me débrouille avec le peu que je sais. Je n'avais pas compris exactement comment le faire et je ne sais pas comment réduire à 10 lignes la macro. Ce que j'ai fait pour comprendre, j'ai fait une nouvelle macro et la première chose que j'ai fait c'est de clicker sur l'onglet où je voulais que se fasse ma macro. Ça a réglé mon problème et j'ai pu voir exactement comment on doit l'écrire. Merci encore de ta réponse! Bonne soirée!
 
Merci de ton aide et désolée pour mon code indigeste... je me débrouille avec le peu que je sais. Je n'avais pas compris exactement comment le faire et je ne sais pas comment réduire à 10 lignes la macro. Ce que j'ai fait pour comprendre, j'ai fait une nouvelle macro et la première chose que j'ai fait c'est de clicker sur l'onglet où je voulais que se fasse ma macro. Ça a réglé mon problème et j'ai pu voir exactement comment on doit l'écrire. Merci encore de ta réponse! Bonne soirée!
J'oubliais, ce que je cherche à faire dans cette macro, c'est de remettre 1 pour présent dans 6 colonnes spécifiques et dans plusieurs rangées.
 
@Elise1

1) Quel mot tu ne comprends pas dans cette phrase ?

Ouvre ton propre post c'est un post de plus de 20 ans !!!
En clair tu fais l'incruste dans une discussion qui date de 20 ans et qui est au fin fond d'un grenier plein de poussière !

Pourtant c'est simple en haut à droite tu cliques sur le bouton !!!
1737506237973.png

Et tu poses ta question .....


2) Et quel mot tu ne comprends pas dans cette phrase
Relis la charte § 1.3

Pourtant c'est simple tu vas lire la charte et tu lis ce qui est écrit dans au § 1.3

1737506502751.png


Est ce plus clair comme ceci ???
 
@Elise1

1) Quel mot tu ne comprends pas dans cette phrase ?


En clair tu fais l'incruste dans une discussion qui date de 20 ans et qui est au fin fond d'un grenier plein de poussière !

Pourtant c'est simple en haut à droite tu cliques sur le bouton !!!
Regarde la pièce jointe 1211398
Et tu poses ta question .....


2) Et quel mot tu ne comprends pas dans cette phrase


Pourtant c'est simple tu vas lire la charte et tu lis ce qui est écrit dans au § 1.3

Regarde la pièce jointe 1211400

Est ce plus clair comme ceci ???
D'accord, je vais faire de mon mieux... Et bonjour, je m'appelle Elise et j'adore travailler sur Excel mais je manque d'expérience et je n'ai jamais fait partie d'un groupe comme ça. La prochaine fois que j'ai besoin d'aide, je vais faire ça de la bonne façon... Merci!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
774
Réponses
4
Affichages
1 K
Retour