AIDE SUR MACRO ENREGISTREE

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre Fauconnier
Le #4669841
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")

Nicoh
Le #4669821
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
Le #4669801
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")



guy
Le #4669271
Bonjour,
Il est fort le Pierre, que l'on voyait plus souvent auparavant.
Guy
"Pierre Fauconnier" 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")







Nicoh
Le #4669131
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")








Pierre Fauconnier
Le #4669051
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")

Publicité
Poster une réponse
Anonyme