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

macro qui agit sur toutes les feuilles d'un classeur

2 réponses
Avatar
newoceane2000
Bonsoir,

Je ne vois pas mon message s'afficher donc je recommence en esp=E9rant
qu'il n'apparaitra pas en double...


J'ai besoin de votre aide : j'ai une macro qui marche tr=E8s 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) =3D "A"
Case 10.000001 To 30: Range("B" & b.Row) =3D "B"
Case 3.000001 To 10: Range("B" & b.Row) =3D "C"
Case 1.000001 To 3: Range("B" & b.Row) =3D "D"
Case 0.300001 To 1: Range("B" & b.Row) =3D "E"
Case 0.100001 To 0.3: Range("B" & b.Row) =3D "F"
Case Is <=3D 0.1: Range("B" & b.Row) =3D "G"



End Select
Next
End Sub

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

Etant tr=E8s novice en vba merci de me pr=E9cicer o=F9 copier le code vba si
ce n'est pas dans Feuil1...

Merci d'avance

2 réponses

Avatar
Pierre Fauconnier
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")

Avatar
Pierre Fauconnier
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")