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

AIDE SUR MACRO ENREGISTREE

6 réponses
Avatar
Nicoh
Bonjour à tous,

J'ai enregistrée une macro (voir ci-dessous) qui consiste à sélectionner des
cellules pour ensuite les mettre en blanc.
Comment est-il possible de "l'épurer" ou de la simplifier ?
Je m'explique : la macro enregistrée ne reprend que quelques cellules ; or,
je dois sélectionner 1040 cellules au total. Je pense donc qu'il est possible
de faire quelque chose du genre for k=1 to 10 step 2 ... Malheureusement, je
n'y arrive toujours pas après plusieurs tentatives.

Si vous pouvez répondre à ma demande, les plages concernées sont :
AJ93:AJ130;AJ133:AJ173
AN94:AN130;AN134:AN173
AT94:AT130;AT134:AT173

La macro enregistrée est la suivante :
Sub cachertarifs()

' Macro enregistrée le 24/08/2007 par nico

Union(Range( _

"AZ104,AZ106,AZ108,AZ110,BF94,BF96,BF98,BF100,BF102,BF104,BF106,BF108,BF110,AJ93,AJ95,AJ97,AJ999,AJ101,AJ103,AJ105,AJ107,AJ109" _
), Range( _

"AT96,AT98,AT100,AT102,AT104,AT106,AT108,AT110,AZ94,AZ96,AZ98,AZ100,AZ102" _
)).Select
Range("BF110").Activate
Selection.Font.ColorIndex = 2
End Sub

D'avance je vous remercie pour votre aide,

Bonne jouréne à tous,

Nicoh

6 réponses

Avatar
Pierre Fauconnier
Bonjour

Il faut savoir que, en VBA, pour sélectionner deux plages de cellules,
on doit remplacer le ; par une ,

Dès lors, tu peux utiliser
Range("AJ93:AJ130,AJ133:AJ173,AN94:AN130,AN134:AN173,AT94:AT130,AT134:AT173").Font.ColorIndex
= 2

La ligne commence à Range... et se termine après =2

Ainsi, tu n'as même pas besoin de sélectionner les cellules avant, et
c'est plus transparent pour l'utilisateur

Ok?

Bonjour à tous,

J'ai enregistrée une macro (voir ci-dessous) qui consiste à sélectionner des
cellules pour ensuite les mettre en blanc.
Comment est-il possible de "l'épurer" ou de la simplifier ?
Je m'explique : la macro enregistrée ne reprend que quelques cellules ; or,
je dois sélectionner 1040 cellules au total. Je pense donc qu'il est possible
de faire quelque chose du genre for k=1 to 10 step 2 ... Malheureusement, je
n'y arrive toujours pas après plusieurs tentatives.

Si vous pouvez répondre à ma demande, les plages concernées sont :
AJ93:AJ130;AJ133:AJ173
AN94:AN130;AN134:AN173
AT94:AT130;AT134:AT173

La macro enregistrée est la suivante :
Sub cachertarifs()

' Macro enregistrée le 24/08/2007 par nico

Union(Range( _

"AZ104,AZ106,AZ108,AZ110,BF94,BF96,BF98,BF100,BF102,BF104,BF106,BF108,BF110,AJ93,AJ95,AJ97,AJ999,AJ101,AJ103,AJ105,AJ107,AJ109"
_ ), Range( _

"AT96,AT98,AT100,AT102,AT104,AT106,AT108,AT110,AZ94,AZ96,AZ98,AZ100,AZ102" _
)).Select
Range("BF110").Activate
Selection.Font.ColorIndex = 2
End Sub

D'avance je vous remercie pour votre aide,

Bonne jouréne à tous,

Nicoh


--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")

Avatar
Nicoh
Merci pour ta réponse,

J'ai oublié une précision capitale : dans chaque plage concernée, on
sélectionne une cellule sur deux.
Ce que tu me propose me va très bien, sauf que je vais devoir écrire les
1040 cellules !
comment donc ajouter la notion d'une cellule sur deux dans ta proposition ?

Merci


Bonjour

Il faut savoir que, en VBA, pour sélectionner deux plages de cellules,
on doit remplacer le ; par une ,

Dès lors, tu peux utiliser
Range("AJ93:AJ130,AJ133:AJ173,AN94:AN130,AN134:AN173,AT94:AT130,AT134:AT173").Font.ColorIndex
= 2

La ligne commence à Range... et se termine après =2

Ainsi, tu n'as même pas besoin de sélectionner les cellules avant, et
c'est plus transparent pour l'utilisateur

Ok?

Bonjour à tous,

J'ai enregistrée une macro (voir ci-dessous) qui consiste à sélectionner des
cellules pour ensuite les mettre en blanc.
Comment est-il possible de "l'épurer" ou de la simplifier ?
Je m'explique : la macro enregistrée ne reprend que quelques cellules ; or,
je dois sélectionner 1040 cellules au total. Je pense donc qu'il est possible
de faire quelque chose du genre for k=1 to 10 step 2 ... Malheureusement, je
n'y arrive toujours pas après plusieurs tentatives.

Si vous pouvez répondre à ma demande, les plages concernées sont :
AJ93:AJ130;AJ133:AJ173
AN94:AN130;AN134:AN173
AT94:AT130;AT134:AT173

La macro enregistrée est la suivante :
Sub cachertarifs()

' Macro enregistrée le 24/08/2007 par nico

Union(Range( _

"AZ104,AZ106,AZ108,AZ110,BF94,BF96,BF98,BF100,BF102,BF104,BF106,BF108,BF110,AJ93,AJ95,AJ97,AJ999,AJ101,AJ103,AJ105,AJ107,AJ109"
_ ), Range( _

"AT96,AT98,AT100,AT102,AT104,AT106,AT108,AT110,AZ94,AZ96,AZ98,AZ100,AZ102" _
)).Select
Range("BF110").Activate
Selection.Font.ColorIndex = 2
End Sub

D'avance je vous remercie pour votre aide,

Bonne jouréne à tous,

Nicoh


--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")






Avatar
Pierre Fauconnier
Alors, je propose une procédure qui travaille sur une plage de cellules
à la fois. Cette plage ne doit pas contenir des cellules non contiguës.

Sub MaMacro()
AlternerCellulesPlages Range("AJ93:AJ130")
AlternerCellulesPlages Range("AJ133:AJ173")
AlternerCellulesPlages Range("AN94:AN130")
...
End Sub

Sub AlternerCellulesPlages(Plage As Range)
Dim i As Long
For i = 1 To Plage.Cells.Count Step 2
Plage.Cells(i).font.colorindex = 2
Next i
End Sub

Ok?

Merci pour ta réponse,

J'ai oublié une précision capitale : dans chaque plage concernée, on
sélectionne une cellule sur deux.
Ce que tu me propose me va très bien, sauf que je vais devoir écrire les
1040 cellules !
comment donc ajouter la notion d'une cellule sur deux dans ta proposition ?

Merci


Bonjour

Il faut savoir que, en VBA, pour sélectionner deux plages de cellules,
on doit remplacer le ; par une ,

Dès lors, tu peux utiliser
Range("AJ93:AJ130,AJ133:AJ173,AN94:AN130,AN134:AN173,AT94:AT130,AT134:AT173").Font.ColorIndex
= 2

La ligne commence à Range... et se termine après =2

Ainsi, tu n'as même pas besoin de sélectionner les cellules avant, et
c'est plus transparent pour l'utilisateur

Ok?

Bonjour à tous,

J'ai enregistrée une macro (voir ci-dessous) qui consiste à sélectionner
des cellules pour ensuite les mettre en blanc.
Comment est-il possible de "l'épurer" ou de la simplifier ?
Je m'explique : la macro enregistrée ne reprend que quelques cellules ; or,
je dois sélectionner 1040 cellules au total. Je pense donc qu'il est
possible de faire quelque chose du genre for k=1 to 10 step 2 ...
Malheureusement, je n'y arrive toujours pas après plusieurs tentatives.

Si vous pouvez répondre à ma demande, les plages concernées sont :
AJ93:AJ130;AJ133:AJ173
AN94:AN130;AN134:AN173
AT94:AT130;AT134:AT173

La macro enregistrée est la suivante :
Sub cachertarifs()

' Macro enregistrée le 24/08/2007 par nico

Union(Range( _

"AZ104,AZ106,AZ108,AZ110,BF94,BF96,BF98,BF100,BF102,BF104,BF106,BF108,BF110,AJ93,AJ95,AJ97,AJ999,AJ101,AJ103,AJ105,AJ107,AJ109"
_ ), Range( _

"AT96,AT98,AT100,AT102,AT104,AT106,AT108,AT110,AZ94,AZ96,AZ98,AZ100,AZ102"
_ )).Select
Range("BF110").Activate
Selection.Font.ColorIndex = 2
End Sub

D'avance je vous remercie pour votre aide,

Bonne jouréne à tous,

Nicoh


--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")






--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")



Avatar
guy
Bonjour,
Il est fort le Pierre, que l'on voyait plus souvent auparavant.
Guy
"Pierre Fauconnier" a écrit dans le
message de news:
Alors, je propose une procédure qui travaille sur une plage de cellules
à la fois. Cette plage ne doit pas contenir des cellules non contiguës.

Sub MaMacro()
AlternerCellulesPlages Range("AJ93:AJ130")
AlternerCellulesPlages Range("AJ133:AJ173")
AlternerCellulesPlages Range("AN94:AN130")
...
End Sub

Sub AlternerCellulesPlages(Plage As Range)
Dim i As Long
For i = 1 To Plage.Cells.Count Step 2
Plage.Cells(i).font.colorindex = 2
Next i
End Sub

Ok?

Merci pour ta réponse,

J'ai oublié une précision capitale : dans chaque plage concernée, on
sélectionne une cellule sur deux.
Ce que tu me propose me va très bien, sauf que je vais devoir écrire les
1040 cellules !
comment donc ajouter la notion d'une cellule sur deux dans ta
proposition ?



Merci


Bonjour

Il faut savoir que, en VBA, pour sélectionner deux plages de cellules,
on doit remplacer le ; par une ,

Dès lors, tu peux utiliser

Range("AJ93:AJ130,AJ133:AJ173,AN94:AN130,AN134:AN173,AT94:AT130,AT134:AT173"



).Font.ColorIndex
= 2

La ligne commence à Range... et se termine après =2

Ainsi, tu n'as même pas besoin de sélectionner les cellules avant, et
c'est plus transparent pour l'utilisateur

Ok?

Bonjour à tous,

J'ai enregistrée une macro (voir ci-dessous) qui consiste à
sélectionner




des cellules pour ensuite les mettre en blanc.
Comment est-il possible de "l'épurer" ou de la simplifier ?
Je m'explique : la macro enregistrée ne reprend que quelques cellules
; or,




je dois sélectionner 1040 cellules au total. Je pense donc qu'il est
possible de faire quelque chose du genre for k=1 to 10 step 2 ...
Malheureusement, je n'y arrive toujours pas après plusieurs
tentatives.





Si vous pouvez répondre à ma demande, les plages concernées sont :
AJ93:AJ130;AJ133:AJ173
AN94:AN130;AN134:AN173
AT94:AT130;AT134:AT173

La macro enregistrée est la suivante :
Sub cachertarifs()

' Macro enregistrée le 24/08/2007 par nico

Union(Range( _


"AZ104,AZ106,AZ108,AZ110,BF94,BF96,BF98,BF100,BF102,BF104,BF106,BF108,BF110,




AJ93,AJ95,AJ97,AJ999,AJ101,AJ103,AJ105,AJ107,AJ109"
_ ), Range( _


"AT96,AT98,AT100,AT102,AT104,AT106,AT108,AT110,AZ94,AZ96,AZ98,AZ100,AZ102"




_ )).Select
Range("BF110").Activate
Selection.Font.ColorIndex = 2
End Sub

D'avance je vous remercie pour votre aide,

Bonne jouréne à tous,

Nicoh


--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")






--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")







Avatar
Nicoh
C'est parfait, merci beaucoup pour ton aide précieuse.

nicoh


Alors, je propose une procédure qui travaille sur une plage de cellules
à la fois. Cette plage ne doit pas contenir des cellules non contiguës.

Sub MaMacro()
AlternerCellulesPlages Range("AJ93:AJ130")
AlternerCellulesPlages Range("AJ133:AJ173")
AlternerCellulesPlages Range("AN94:AN130")
...
End Sub

Sub AlternerCellulesPlages(Plage As Range)
Dim i As Long
For i = 1 To Plage.Cells.Count Step 2
Plage.Cells(i).font.colorindex = 2
Next i
End Sub

Ok?

Merci pour ta réponse,

J'ai oublié une précision capitale : dans chaque plage concernée, on
sélectionne une cellule sur deux.
Ce que tu me propose me va très bien, sauf que je vais devoir écrire les
1040 cellules !
comment donc ajouter la notion d'une cellule sur deux dans ta proposition ?

Merci


Bonjour

Il faut savoir que, en VBA, pour sélectionner deux plages de cellules,
on doit remplacer le ; par une ,

Dès lors, tu peux utiliser
Range("AJ93:AJ130,AJ133:AJ173,AN94:AN130,AN134:AN173,AT94:AT130,AT134:AT173").Font.ColorIndex
= 2

La ligne commence à Range... et se termine après =2

Ainsi, tu n'as même pas besoin de sélectionner les cellules avant, et
c'est plus transparent pour l'utilisateur

Ok?

Bonjour à tous,

J'ai enregistrée une macro (voir ci-dessous) qui consiste à sélectionner
des cellules pour ensuite les mettre en blanc.
Comment est-il possible de "l'épurer" ou de la simplifier ?
Je m'explique : la macro enregistrée ne reprend que quelques cellules ; or,
je dois sélectionner 1040 cellules au total. Je pense donc qu'il est
possible de faire quelque chose du genre for k=1 to 10 step 2 ...
Malheureusement, je n'y arrive toujours pas après plusieurs tentatives.

Si vous pouvez répondre à ma demande, les plages concernées sont :
AJ93:AJ130;AJ133:AJ173
AN94:AN130;AN134:AN173
AT94:AT130;AT134:AT173

La macro enregistrée est la suivante :
Sub cachertarifs()

' Macro enregistrée le 24/08/2007 par nico

Union(Range( _

"AZ104,AZ106,AZ108,AZ110,BF94,BF96,BF98,BF100,BF102,BF104,BF106,BF108,BF110,AJ93,AJ95,AJ97,AJ999,AJ101,AJ103,AJ105,AJ107,AJ109"
_ ), Range( _

"AT96,AT98,AT100,AT102,AT104,AT106,AT108,AT110,AZ94,AZ96,AZ98,AZ100,AZ102"
_ )).Select
Range("BF110").Activate
Selection.Font.ColorIndex = 2
End Sub

D'avance je vous remercie pour votre aide,

Bonne jouréne à tous,

Nicoh


--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")






--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")








Avatar
Pierre Fauconnier
Bonsoir Guy,

Je vais revenir plus souvent. Je commence, enfin!!, à savoir un peu
mieux organiser mon temps...

A très bientôt donc, et dans l'attente d'une petite visite chez toi ou
chez moi un de ses quatreµ. Ce serait, pour ma part, avec un réel
plaisir...


Bonjour,
Il est fort le Pierre, que l'on voyait plus souvent auparavant.
Guy


--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")