macro qui agit sur toutes les feuilles d'un classeur

Le
newoceane2000
Bonsoir,

Je ne vois pas mon message s'afficher donc je recommence en espérant
qu'il n'apparaitra pas en double


J'ai besoin de votre aide : j'ai une macro qui marche très bien sur
une feuille (elle remplace les chiffre de la colonne B en lettre). Le
code est le suivant :

Sub test()
For Each b In Range("b1:b" & Range("b65536").End(xlUp).Row)
Select Case b
Case 30.000001 To 100: Range("B" & b.Row) = "A"
Case 10.000001 To 30: Range("B" & b.Row) = "B"
Case 3.000001 To 10: Range("B" & b.Row) = "C"
Case 1.000001 To 3: Range("B" & b.Row) = "D"
Case 0.300001 To 1: Range("B" & b.Row) = "E"
Case 0.100001 To 0.3: Range("B" & b.Row) = "F"
Case Is <= 0.1: Range("B" & b.Row) = "G"



End Select
Next
End Sub

Je voudrais avoir une macros qui fait la même chose en un clic mais
SUR TOUTES LES FEUILLES d'un fichier excel.

Etant très novice en vba merci de me précicer où copier le code vba si
ce n'est pas dans Feuil1

Merci d'avance
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 #4999121
Bonsoir

En ajoutant une itération sur les feuilles du classeur
Sub Test()
Dim Feuille As Worksheet
For Each Feuille In Worksheets
for each b in feuile.range("b1:b" & feuille.range(...
select case b
case 30.000001 to 100: feuille.range("b" & ...
...
end select
next b
next feuille
end sub


Attention! Ne pas oublier d'ajouter Feuille devant CHAQUE objet Range

ok?



Sub test()
For Each b In Range("b1:b" & Range("b65536").End(xlUp).Row)
Select Case b
Case 30.000001 To 100: Range("B" & b.Row) = "A"
Case 10.000001 To 30: Range("B" & b.Row) = "B"
Case 3.000001 To 10: Range("B" & b.Row) = "C"
Case 1.000001 To 3: Range("B" & b.Row) = "D"
Case 0.300001 To 1: Range("B" & b.Row) = "E"
Case 0.100001 To 0.3: Range("B" & b.Row) = "F"
Case Is <= 0.1: Range("B" & b.Row) = "G"



End Select
Next
End Sub


--
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 #4999101
Correction: pour les lignes Case..., la réponse de est bonne et
plus simple à utiliser que la mienne, mais attention à l'itération sur
worksheets plutôt que sur Sheets

Bon travail

Bonsoir

En ajoutant une itération sur les feuilles du classeur
Sub Test()
Dim Feuille As Worksheet
For Each Feuille In Worksheets
for each b in feuile.range("b1:b" & feuille.range(...
select case b
case 30.000001 to 100: feuille.range("b" & ...
...
end select
next b
next feuille
end sub


Attention! Ne pas oublier d'ajouter Feuille devant CHAQUE objet Range

ok?



Sub test()
For Each b In Range("b1:b" & Range("b65536").End(xlUp).Row)
Select Case b
Case 30.000001 To 100: Range("B" & b.Row) = "A"
Case 10.000001 To 30: Range("B" & b.Row) = "B"
Case 3.000001 To 10: Range("B" & b.Row) = "C"
Case 1.000001 To 3: Range("B" & b.Row) = "D"
Case 0.300001 To 1: Range("B" & b.Row) = "E"
Case 0.100001 To 0.3: Range("B" & b.Row) = "F"
Case Is <= 0.1: Range("B" & b.Row) = "G"



End Select
Next
End Sub



--
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