[VBA-EXCEL] Gestion des erreurs et manipulation du contenu d'une cellule
Allo à tous,
J'ai un classeur dans lequel se trouve plusieurs feuilles remplies de libellés et formules.
Au "repos" (avant que l'utilisateur n'ait entré les données initiales), tous les types d'erreurs peuvent apparaître dans certaines cellules (#DIV/0!, #N/A, etc.).
Lorsque je cherche à lire systématiquement chaque feuille et chaque cellule pour savoir ce qu'elle contient (libellé de type texte ou formule) et y remplacer une chaîne de caractère donnée, si la cellule lue contenait une erreur, le code plante :
ex d'une formule située en D12 qui renvoie #DIV/0! car $D10=0 :
=Source/(2*RACINE($D10*ContactCutané*TC))
Et dans laquelle on souhaite remplacer "TC" par "CA" mais pas le "tC" de "ContactCutané".
(NB: Source, ContactCutané et TC sont des noms de champs)
Comment intercepter ces erreurs et manipuler la chaîne de caractère initialement présente dans la cellule sous forme de formule pour y remplacer l'occurence de "sous"-chaine souhaitée par exemple ?
Code permettant de lire et afficher systématiquement le contenu de chaque cellule :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| Sub IdentifierCellulesAvecChaineDeCaractèresStipulée()
Dim SearchChar, Texte_A_Afficher As String
Dim Feuille As Worksheet
Dim Cell As Range
Dim i As Long
' Pour chacune des feuilles contenues dans un classeur,
' cherche les cellules connant la chaîne de caractères SearchChar
' avec respect de la casse et applique une couleur de fond jaune
' si elle les contient.
SearchChar = "TC"
For Each Feuille In Worksheets
For Each Cell In Worksheets(Feuille.Name).UsedRange.Cells
UserForm1.Show False
Texte_A_Afficher=Cell.Value
UserForm1.Label1 = Texte_A_Afficher
DoEvents
Next Cell
Next Feuille
' Unload UserForm1
End Sub |
Merci d'avance pour votre aide :)