XL 2016 Changer les formules d'un classeur

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 !

FabFlam

XLDnaute Nouveau
Bonjour,

J'ai un classeur avec des tas de cellules qui contiennent =RECHERCHEV(nom; plage; ncol; 0)
Ca marche bien, sauf que lorsque la cellule source est vide, la cellule qui contient la formule affiche 0 et ça ne me va pas.
Je voudrais donc remplacer ces formules par =SI(ESTVIDE(RECHERCHEV(nom; plage; ncol; 0));"";RECHERCHEV(nom; plage; ncol;0))

Sauf que j'ai des milliers de cellules et que plage et ncol changent tout le temps alors je ne veux pas faire ça à la main. J'ai cherché à utiliser rechercher/remplacer mais je n'y arrive pas.

Une idée ? Avec une macro en VBA peut-être ? J'ai essayé mais je ne vois pas comment m'y prendre.

Merci de votre aide,
FabFlam
 
Bonjour J'ai pondu le code VBA suivant mais il me manque quelque chose, ça ne marche pas ..
VB:
Sub MacroTest()
Dim oldformule As String
Dim newformule As String
Dim tmp
Dim i
Dim j
i = 1
j = 1
While j <= 4
While i <= 10
Cells(i, j).Activate
' Recherche de la fonction RECHERCHEV dans la formule de la cellule active
If InStr(ActiveCell.FormulaLocal, "RECHERCHEV") Then
' Stocker l'ancienne formule de la cellule dans oldformule
oldformule = "" & ActiveCell.FormulaLocal
' Enlever le signe = pour pouvoir réutiliser la chaîne de caractères sans ce signe
tmp = Split(oldformule, "=")
' Concatener pour stocker dans newformule la chaîne de caractères correspondant à la formule souhaitée
newformule = "=SI(ESTVIDE(" & tmp(1) & ");"""";" & tmp(1) & "))"
' Vérifier que la chaîne de caractère est correcte
MsgBox newformule
' Mettre la nouvelle chîne de caractère dans la cellule active en tant que nouvelle formule
' C'EST LA QUE JE COINCE !! Ca ne marche pas
ActiveCell = newformule
End If
oldformule = ""
newformule = ""
i = i + 1
Wend
i = 1
j = j + 1
Wend
End Sub
J'ai ajouté un petit fichier de test de ce code tout va bien sauf l'affectation de la nouvelle formule à la cellule active, j'obtiens erreur 1004

Merci de votre aide,
FabFlam
 

Pièces jointes

Dernière édition:
- 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

Réponses
9
Affichages
383
Réponses
1
Affichages
295
Réponses
8
Affichages
422
Retour