Microsoft 365 VBA : Remplacer si

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 !

JulienLebreton

XLDnaute Nouveau
Bonjour à tous,

Je cherche actuellement à remplacer les données d'une plage en fonction de leur valeur :
Si la cellule est égal à "A"ou "D" je remplace le contenu par "S9".
Jusqu'à présent je contourne le problème en relançant une macro similaire pour faire à nouveau le tri.
Y aurait il une façon plus simple de le faire ?

J'avais pensé à :
If MaCell.Value = "A" or "D" Then MaCell.Value = "S9"


Sub ReplaceTravaux()

Dim MaCell As Range
For Each MaCell In Range("D7:AD10000").Cells
If MaCell.Value = "A" Then MaCell.Value = "S9"
Next MaCell

End Sub

Merci de votre aide,

A bientôt,

Julien
 
Solution
Bonjour à tous 🙂
Heu... j'ai raté quelque chose ?
Sur 269 000 cellule la méthode Each c me paraît pour le moins hasardeuse mais je pense que c'est pour cette raison que Staple ne cautionne pas.

Pour accélérer la manœuvre et s'il n'y a pas de formules dans le tas
VB:
Sub ReplaceTravaux_4()
Dim c As Range, i&, j&, T As Variant
Application.ScreenUpdating = False
Set c = [D7:AD10000]
T = c
For i = LBound(T, 1) To UBound(T, 1)
    For j = LBound(T, 2) To UBound(T, 2)
        If T(i, j) = "A" Or T(i, j) = "D" Then T(i, j) = "S9"
    Next j
Next i
c = T
End Sub
Bonjour,

Et un simple CTRL+H (chercher/remplacer) avec l'option 'totalité du contenu de la cellule' et le bouton 'Remplacer tout'.

Faites le éventuellement avec l'enregistreur de macro si vous tenez vraiment à une macro.

1611398236901.png


Cordialement
 
Bonjour Roblochon,

J'utilise actuellement cette macro car je ne souhaite l'appliquer qu'à une plage, j'avais testé avec le CTRL+H mais sans succès sauf si je m'y suis mal pris, je vais retester tout ça de ce pas.

Je voulais surtout limiter le temps de calcul en testant en même temps si la cellule = A et si la cellule = D

Merci de ton retour,

A bientôt,

Julien
 
Bonjour le fil JulienMonVoisin😉 , Roblochon 😉, pierrejean 😉

Je me contente juste de faire ce que demande le titre de la discussion 😉
[Ce qui ne veut pas dire que je cautionne ma proposition]
VB:
Sub ReplaceTravaux()
Dim c As Range
Application.ScreenUpdating = False
For Each c In [D7:AD10000]
Select Case c.Value
Case "A", "D"
c.Value = "S9"
End Select
Next
End Sub
 
Bonjour à tous 🙂
Heu... j'ai raté quelque chose ?
Sur 269 000 cellule la méthode Each c me paraît pour le moins hasardeuse mais je pense que c'est pour cette raison que Staple ne cautionne pas.

Pour accélérer la manœuvre et s'il n'y a pas de formules dans le tas
VB:
Sub ReplaceTravaux_4()
Dim c As Range, i&, j&, T As Variant
Application.ScreenUpdating = False
Set c = [D7:AD10000]
T = c
For i = LBound(T, 1) To UBound(T, 1)
    For j = LBound(T, 2) To UBound(T, 2)
        If T(i, j) = "A" Or T(i, j) = "D" Then T(i, j) = "S9"
    Next j
Next i
c = T
End Sub
 
Re

=>Efgé (Bonjour)
Je ne cautionne pas ma proposition, parce que si j'étais moi, j'aurais une Hache, mais tout en étant dans le controle, sans plus.
😉
Mon propos était juste de faire ceci: VBA: Remplacer si
Ce que j'ai fait 😉
Le reste, vu que c'est sans ma caution, ce n'est plus dans mon prisme existentiel de ce samedi de janvier 2021. 😉
[HFT.T] Et si j'étais moi, je me méfierai...😉[/HFT.T]
 
Bonsoir Pierre Jean, StappleMonVoisin et Efgé,

Merci de votre aide ! J'ai pu intégrer le code dans mon projet et ca m'a permis de gagner pas mal de temps de traitement j'ai l'impression.
Je me complique sans doute trop la vie à vouloir faire ce genre de modifications mineurs, elles n'apportent pas beaucoup de plus value au programme sachant que j'imagine qu'il n'y a que moi qui fera la différence =="

Merci d'autant car vous avez passé du temps à réfléchir à mon problème !

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

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
252
Réponses
4
Affichages
363
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
80
Réponses
8
Affichages
524
Retour