Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

SpecialCells Exit Sub

4 réponses
Avatar
rmill...
Bonjour,

Lors de l'exécution du code ci-dessous curieusement au point 2 ... ça sort du Sub et ça va Í  la prochaine macro malgré le On Error Resume Next

Auriez-vous déjÍ  expérimenté une telle situation ou pourriez-vous avoir une idée du pourquoi et de la façon de pouvoir corriger la situation?

Merci Í  l'avance.

'******************************************************************************
On Error Resume Next
1.Workbooks(Var_NomXLCase).Sheets(Var_Sheet).Range("CN_RegulInRange").Cells.SpecialCells(xlCellTypeFormulas).ClearContents

2.Workbooks(Var_NomXLCase).Sheets(Var_Sheet).Range("CN_RegulInRange").Cells.SpecialCells(xlCellTypeFormulas, xlErrors).ClearContents
3.Workbooks(Var_NomXLCase).Sheets(Var_Sheet).Range("CN_RegulInRange").Cells.SpecialCells(xlCellTypeConstants, xlErrors).ClearContents

4 réponses

Avatar
MichD
2.Workbooks(Var_NomXLCase).Sheets(Var_Sheet).Range("CN_RegulInRange").Cells.SpecialCells(xlCellTypeFormulas, xlErrors).ClearContents

Bonjour,
Avec la méthode SpecialCells, tu as ceci : le type et la valeur
Le type = xlCellTypeFormulas -> OK
Mais pour ce qui est de Valeur, dans le tableau ci-dessous, voici toutes
les valeurs possibles selon le contenu. Afin de n'avoir qu'une ligne de
code, tu peux additionner les valeurs selon ce que tu veux faire.
Pour tout supprimer, tu écris par exemple:
On error resume next
Range("K1:K2").SpecialCells(xlCellTypeFormulas, 23).ClearContents
23 = la somme des valeurs selon les différents contenus de la cellule
Nom Valeur Description
xlErrors 16 Cellules contenant des erreurs.
xlLogical 4 Cellules contenant des valeurs logiques.
xlNumbers 1 Cellules contenant des valeurs numériques.
xlTextValues 2 Cellules contenant du texte.
MichD
Avatar
rmill...
Bonjour Í  nouveau.
Ça fonctionne. Je ne connaissais pas cette méthode. Je vais l'utiliser. Merci.
Curieusement cependant cela fait plusieurs années que j'utilise la façon dont je vous ai décrite auparavant et Í  plusieurs autres endroits. Mais sur 2 fichiers provenant du même endroit Í a ne fonctionne pas mais votre méthode ... oui.
Avatar
rmill...
Bonjour,
Je viens de constater qu'en utilisant Workbooks(Var_NomXLCase).Sheets(Var_Sheet).Range("CN_NonReportInRange").Cells.SpecialCells(xlCellTypeFormulas, xlErrors).ClearContents ou dans le format Workbooks(Var_NomXLCase).Sheets(Var_Sheet).Range("CN_NonReportInRange").Cells.SpecialCells(xl-4123, 16).ClearContents
l'erreur n'est pas gérée car le type d'erreur est un #REF dans une cellule avec formule. Une ligne délimitant une zone avait été supprimée.
J'aurais cru que cela aurait été le cas. Est-moi qui ne procède pas de la bonne façon ou auriez-vous une suggestion pour gérer ceci? Merci Í  l'avance.
Avatar
MichD
Le 25/11/21 Í  12:45, a écrit :
Bonjour,
Je viens de constater qu'en utilisant Workbooks(Var_NomXLCase).Sheets(Var_Sheet).Range("CN_NonReportInRange").Cells.SpecialCells(xlCellTypeFormulas, xlErrors).ClearContents ou dans le format Workbooks(Var_NomXLCase).Sheets(Var_Sheet).Range("CN_NonReportInRange").Cells.SpecialCells(xl-4123, 16).ClearContents
l'erreur n'est pas gérée car le type d'erreur est un #REF dans une cellule avec formule. Une ligne délimitant une zone avait été supprimée.
J'aurais cru que cela aurait été le cas. Est-moi qui ne procède pas de la bonne façon ou auriez-vous une suggestion pour gérer ceci? Merci Í  l'avance.

Bonjour,
Je n'ai pas vraiment compris ta question.
L'erreur "#REF!" est obtenue par exemple, si tu supprimes une cellule
ayant un "NOM" (plage nommée") présente dans une formule. Un autre
exemple si tu supprimes la cellule "A1" dans une formule du type
Decaler(A1....), tu as une erreur de type #ref!
Cette ligne de code va supprimer le contenu de la cellule.
Workbooks(Var_NomXLCase).Sheets(Var_Sheet).Range("CN_NonReportInRange").Cells.SpecialCells(xlCellTypeFormulas,
xlErrors).ClearContents
La méthode "SpecialCells" génère une erreur seulement si dans la plage
de cellules désignées, il n'y a pas au moins une occurrence du type de
cellules que la ligne de code désigne.
On emploie "specialcells" comme ceci :
On error resume next
Range("A1:H200").specialCells(.....)
On error goto0
Afin d'éviter l'arrêt de l'exécution du code de la procédure.
MichD