Problème cellule "#REF!"
Résolu/Fermé
Pierre
-
28 sept. 2020 à 14:57
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 29 sept. 2020 à 15:19
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 29 sept. 2020 à 15:19
A voir également:
- Problème cellule "#REF!"
- Aller à la ligne dans une cellule excel - Guide
- Verrouiller cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Faites en sorte que la cellule a1 affiche exactement ce qui est montré sur cette image. quel mot apparaît en b1 ? - Forum Excel
- Figer cellule excel - Guide
4 réponses
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 701
28 sept. 2020 à 16:53
28 sept. 2020 à 16:53
Bonjour,
A l'arrache, a mettre apres les declarations variable
et a la fin
A l'arrache, a mettre apres les declarations variable
On Error Resume Next
et a la fin
On Error GoTo 0
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 775
28 sept. 2020 à 17:16
28 sept. 2020 à 17:16
Bonjour,
Simplement :
Simplement :
Sub test() Dim O As Worksheet For Each O In Worksheets O.Name = Replace(O.Name, "month", "mois", 1) O.UsedRange.Replace "month", "mois", 1 Next O End Sub
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 775
Modifié le 29 sept. 2020 à 08:49
Modifié le 29 sept. 2020 à 08:49
Les deux tests suivants sont totalement inutiles et chronophages, l'instruction Replace s'en charge :
C'est le second qui provoque l'erreur 13 en cas de #REF!.
Par contre
c'est une méthode où il faut cibler la cause, surtout pas à mettre en début et fin de procédure !
Dans l'éventualité où il faudrait éviter les erreurs #REF! et uniquement celles-là, utiliser le test suivant :
If InStr(1, xxxx, "month", vbTextCompare) <> 0 Then ....
C'est le second qui provoque l'erreur 13 en cas de #REF!.
Par contre
On Error Resume NextMasque toutes les erreurs :
c'est une méthode où il faut cibler la cause, surtout pas à mettre en début et fin de procédure !
Dans l'éventualité où il faudrait éviter les erreurs #REF! et uniquement celles-là, utiliser le test suivant :
If Not CEL.Value = CVErr(XlCVError.xlErrRef) Then
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
>
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
29 sept. 2020 à 09:49
29 sept. 2020 à 09:49
dans certains cas, je pense qu'il peut être très utile d'éviter d'assigner une valeur à une cellule, et je pense donc qu'il est parfois utile de vérifier la présence de la chaine à remplacer.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 775
>
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
Modifié le 29 sept. 2020 à 15:20
Modifié le 29 sept. 2020 à 15:20
Effectivement, dans les cas où plusieurs alternatives existent ensuite, je dirais même qu'il est indispensable de tester la présence de la chaine à remplacer, mais pas dans le cas actuel où le test positif se traduit uniquement par un remplacement systématique. L'instruction Replace n'effectue le remplacement que si la chaine est présente, il est inutile et chronophage de le doubler par un test préalable.
Et le pire dans ce cas précis, c'est la boucle sur chacune des cellules alors qu'une seule instruction suffit pour toute la plage de cellules.
Et le pire dans ce cas précis, c'est la boucle sur chacune des cellules alors qu'une seule instruction suffit pour toute la plage de cellules.
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
28 sept. 2020 à 17:19
28 sept. 2020 à 17:19
bonjour, suggestion:
If Not IsError(CEL) Then If InStr(1, CEL.Value, "month", vbTextCompare) <> 0 Then CEL.Value = Replace(CEL.Value, "month", "mois", 1) End If End If