XL 2013 CTRL H en VBA

gaby66

XLDnaute Occasionnel
Bonjour,

Je cherche a faire une macro qui remplacera un mot par un autre dans une plage données.
Ici en l’occurrence il s'agit de la plage (D13 : AC112), et le mot a remplacer est *SIERREUR par =SIERREUR.
Quand j'enregistre la macro en le faisant en manuel, sa m'écris le code suivant :

Range("D13:AC112").Select
Selection.Replace What:="*SIERREUR", Replacement:="=SIERREUR", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False


Seulement ce code ne fonctionne pas quand je lance la macro (rien ne se passe). sa fonctionne uniquement quand je fais en manuel CTRL H.

Je ne comprends pas pourquoi en manuel ça fonctionne, mais par le biais de la macro non.

Merci pour votre aide
 

cp4

XLDnaute Barbatruc
Bonjour,

un essai à tester.
VB:
Sub test()
   Dim plage As Range
   Set plage = Sheets("feuil2").Range("D13:AC112")
   plage.Replace What:="*SIERREUR", Replacement:="=SIERREUR", LookAt:= _
                 xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                 ReplaceFormat:=False
End Sub
@+
 

gaby66

XLDnaute Occasionnel
Merci pour ton aide, je viens de tester à l'instant, et non toujours pareil, rien ne se passe.
Bien sure, "feuil2" je les remplacé par le bon nom de la feuille, mais rien ne se passe.
J'ai re-tester en manuel et la ça fonctionne bien, je sèche complètement.
 

gaby66

XLDnaute Occasionnel
Je me torture la tête a chercher pourquoi.
j'ai penser à une idée mais sans être sure, du style :
- quand on utilise Ctrl H, à la fin sa te dit le nombre d'éléments qu'il a modifier et il faut mettre OK sur le msgbox qui apparaît. (je me suis dit que ça venait peut être de là, qu'il fallait que je fasse une confirmation), mais ce qui est bizarre c'est que quand j'enregistre la macro, le code que sa m'écris et bien celui que j'ai mis au tout début de mes messages.
 

cp4

XLDnaute Barbatruc
Merci pour ton aide, je viens de tester à l'instant, et non toujours pareil, rien ne se passe.
Bien sure, "feuil2" je les remplacé par le bon nom de la feuille, mais rien ne se passe.
J'ai re-tester en manuel et la ça fonctionne bien, je sèche complètement.
En effet, il fallait remplacer "feuil2" car c'est la feuille qui m'a servi à tester le code sur l'un de mes fichier, car tu n'as pas joint le tien.
Ce que moi je ne comprends pas, c'est ton "en manuel et là ça fonctionne.
Avec un fichier, je crois que tu aurais déjà eu une bonne réponse à ton problème.

@+
 

gaby66

XLDnaute Occasionnel
C'est compliquer de vous fournir le fichier original car il y a tellement de feuille et de liaison entre chaque feuille, de macro et des milliers de formules.
Le fichier original fait 30 mo, je vais supprimer les autres feuilles car il y a des information assez confidentiel.
Je vous donne uniquement la feuille sur lequel j'ai le problème.

Ce que j'appelle manuel c'est en appuyez à l'aide du clavier de l'ordinateur, sur CTRL H et j'ai écris le mot par lequel je souhaite remplacer, la ça fonctionne.
Mais avec une macro ça ne fonctionne pas.

Vous verrez sur le fichier qu'en faite je souhaite mettre en marche des formules qu'en je remplace *SIERREUR par =SIERREUR.
Car il arrive parfois que les formules saute pour différentes raison, je souhaites donc pouvoir les remettre par le biais de la macro qui remplacera le * par =

Merci pour votre aide
 

Pièces jointes

  • TEST.xlsm
    82.7 KB · Affichages: 15

job75

XLDnaute Barbatruc
Re,

Pour pouvoir valider les formules par VBA il faut qu'elles soient écrites dans la syntaxe anglaise donc :

- remplacer le point- virgule par la virgule

- remplacer SI( par IF(

- remplacer *SIERREUR par =IFERROR.

Fichier joint avec la macro :
Code:
Sub VALIDER_FORMULES()
With [D13:AC112]
    .Replace ";", ",", xlPart
    .Replace "SI(", "IF("
    .Replace "*SIERREUR", "=IFERROR"
End With
End Sub
PS : bien sûr j'ai créé les 100 onglets nécessaires pour les références :rolleyes:

A+
 

Pièces jointes

  • TEST(1).xlsm
    167.6 KB · Affichages: 18

gaby66

XLDnaute Occasionnel
Sa fonctionne parfaitement.
Un GRAND MERCI, jamais j'aurais penser a mettre le langage VBA en anglais.
Effectivement les 100 onglets je les supprimer, j'aurais pas dut pour l'exemple.
En tout cas bravo, car j'ai beaucoup beaucoup chercher sur plein de forum sans succès et ça ne parler pas exactement du même problème que je rencontrer.
@+
 

Discussions similaires

Réponses
1
Affichages
221

Statistiques des forums

Discussions
315 166
Messages
2 116 919
Membres
112 911
dernier inscrit
zkazumba