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 :
Merci d'avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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![]()
Partager