MaCro effacement d'erreur / petit problème dans code

pardon, bonsoir à tous avant toutes choses ...

j'essaye de faire un truc tout simple et j'arrive pas à comprendre porquoi ça fonctionne pas ... je veux remplacer toutes les erreurs de ma feuille par -10000

voici ce que j'ai fait

Sub EraseError()

Dim vCellule As Object

Cells.Select

For Each vCellule In Selection

If IsError(vCellule) = True Then

vCellule.Value = -10000

End If

Next vCellule

Range("A1").Select

End Sub

et ça rate parce qu'à la première erreur que la macro rencontre, elle la remplace et puis s'arrete ...

que changer ?

Bonjour qwertz

j'ai essayé ton code et il fonctionne bien chez moi, le problème est peut-être ailleur.

une petite suggestion, au lieu d'utiliser Cells.Select qui sélectionne toutes les feuilles de ton classeur, tu pourrais utiliser ActiveSheet.UsedRange.Select qui sélectionne uniquement la zone de ta feuille où il y a des données, le traitement de ta macro va être plus rapide.

au plaisir

je n'ai pas testé, mon Excel rame depuis ce matin et ça plante à chaque lancement d'une macro...

mais essaie ceci peut être:

For Each vCellule In Selection
If IsError(vCellule) = True Then
ActiveCell.Value = -10000
Else
ActiveCell.Offset(1, 0).Activate
End If
Next vCellule

Math, ma macro telle quelle marche chez toi ?

bonne idée pour acceler la macro, merci

Souris j'ai rajouté ta partie de code mais ça fait toujours la même chose

je pensais que ça venait du End If et que par conséquent je devrais ptet changer le For pour autre chose mais je ne sais pas quoi

J'ai essayé ta macro tel quel et elle fonctionnait, mais elle était très longue à exécuter, alors j'ai fait les changements que je t'ai dit ( UsedRange) et sa fonctionne très bien. Ça ne changera probablement rien mais quand j'utilise un objet pour tester des cellules je le déclare " as Range" , c'est plus précis que Object.

Est-ce que l'erreur peut venir d'ailleur? J'utilise Excel 2000

J'oubliais...

J'ai testé ta macro avec les erreurs #nombre, #N/A et #Div/0!

Encore moi,

tu pourrais peut-être passer par la fonction Excel esterreur

Sub EraseError()

Dim vCellule As Range

ActiveSheet.UsedRange.Select
For Each vCellule In Selection
    If Application.WorksheetFunction.IsErr(vCellule) Then vCellule = -10000
Next vCellule

Range("A1").Select

End Sub

vais essayer tout ça demain et essayer de comprendre pourquoi ça marche pas chez moi ... bonne nuit à vous tous

bon, je comprends pas mais ça marche aujourd'hui

par contre j'ai essayé d'intégrer une nouvelle méthode dans le programme qui me remplisse toutes les cellules vides d'une certaine colonne avec des -10000

J'ai donc fait ça :

Columns("AH:AH").Select

For Each vCellule In Selection

If IsEmpty(vCellule) = True Then

ActiveCell.Value = -10000

End If

Next vCellule

et ça par contre ça bug en me donnant une erreur de "run time" (erreur 1004)

de plus dans l'idéal je voudrais le faire entre les lignes 1 et 10000 seulement au lieu de toute la colonne

quelqu'un a une idée ?

Bounjour qwertz

essaie ceci

Sub Macro1()
    Range("AH1").Select
    Do While ActiveCell.Row <= 10000
        If IsEmpty(ActiveCell) Then
            ActiveCell.Value = -10000
        End If
        ActiveCell.Offset(1, 0).Select
    Loop
End Sub

ça devrait remplacer toutes les cellules vides par -10000

Rechercher des sujets similaires à "macro effacement erreur petit probleme code"