• Initiateur de la discussion Initiateur de la discussion Nicole05
  • Date de début Date de début

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 !

N

Nicole05

Guest
Bonsoir à tous!

Je débute en VBA et je suis bloquée sur une boucle For each.
Voici ce que j'aimerais réaliser:
Pour chaque cellule, j'aimerais analyser leur contenu.
Si ce contenu contient une erreur du genre NA# ou DIV# j'aimerais remplacer
ce contenu par un espace.

Voilà mon code:

Sub test()

Dim cellule As Range

For Each cellule In Active.Worksheets
If (IsError(cellule) = True) Or (Application.WorksheetFunction.IsNA(cellule) = True) Then
Selection.Value = ""
End If
Next

End Sub


Merci d'avance pour votre aide!
 
Re : VBA - For Each

Bonsoir Nicole05

Une autre façon de faire



Code:
Sub Macro1()
With ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas, 20)
.Value = Chr(32)
End With
End Sub
ou si tu veux effacer les erreurs
Code:
Sub efface_erreurs()
ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas, 20).ClearContents
End Sub
EDITION: bonsoir Efgé
 
Dernière édition:
Re : VBA - For Each

Bonjour Nicole05 et bienvenue surr le forum,
Une proposition macro :
Code:
Sub test()
Dim cells As Range
For Each cells In Range("A1:B30")
    If (IsError(cells) = True) Then
        cells.Value = ""
    End If
Next cells
End Sub
Cette solution, conforme à la demande, écrase les formules.
En formules pures vous pouvez utiliser,sous 2003, la fonction ESTERREUR:
SI(ESTERREUR(La_Formule);"";La_Formule)
Cordialement
EDIT : Bonsoir Staple1600 🙂 ; Suis arrivé trop tard....
 
Dernière édition:
Re : VBA - For Each

Merci également pour cette dernière réponse.

Concernant la réponse de Staple1600, je n'arrive pas à trouver à quoi correspondent exactement les chiffres 32 et 20 (désignent-ils un type d'erreur, plusieurs types d'erreurs, lesquels?), j'ai essayé de les chercher sur l'aide Excel et sur Internet, mais je n'ai rien trouvé! Comment et où trouve-t-on ces chiffres?

Merci d'avance
 
Re : VBA - For Each

Bonsoir



Pourtant tu les trouveras dans l'aide de VBA

(ALT+F11 puis F1)

recherche SpecialCells

Sinon tu peux aussi utiliser cet astuce
Dans VBE affiche la fenêtre Exécution
puis saisi par exemple
?xlCellTypeConstants (puis appuyer sur ENTREE)

Que lis-tu à l'écran ?

et avec:
?xlTextValues
 
Dernière édition:
Re : VBA - For Each

Bonjour à tous

ci-dessous liste des constantes "XlSpecialCellsValue" et "XlCellType" et leurs valeurs associées, pour les retrouver, dans l'aide vba => table des matières => référence visual basic Microsoft Excel => Enumérations => Constantes Microsoft Excel, et ce au moins sous les versions 2002 et 2003...


XlSpecialCellsValue

Constante Valeur
xlErrors 16
xlLogical 4
xlNumbers 1
xlTextValues 2

XlCellType

Constante Valeur
xlCellTypeAllFormatConditions -4172
xlCellTypeAllValidation -4174
xlCellTypeBlanks 4
xlCellTypeComments -4144
xlCellTypeConstants 2
xlCellTypeFormulas -4123
xlCellTypeLastCell 11
xlCellTypeSameFormatConditions -4173
xlCellTypeSameValidation -4175
xlCellTypeVisible 12

bonne journée
@+
 
Re : VBA - For Each

Bonjour,

Ok je crois enfin avoir compris...
Le 20 résulte de l'addition des valeurs de constantes 16 et 4.
Si mon but consiste à remplacer des erreurs de type #N/A, #DIV/0, etc... par un espace, la valeur de constante 4, qui représente les valeurs logiques, est-elle vraiment nécessaire ?
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
449
Réponses
2
Affichages
528
Réponses
15
Affichages
786
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
588
Retour