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

Effacer les croix dans une plage de données

10 réponses
Avatar
JP
Bonsoir,


J'ai dans une plage de donn=E9es des 0 et des croix "X".
J'utilise ce code pour supprimer toutes les croix dans la plage de donn=E9e=
s.

For Each c In Range("AA6:BD1006")
If c=3D "X" Then
c.ClearContents
End if
Next


Le temps de traitement est trop long.

Est-ce qu'il existe un moyen plus rapide?

Merci

JP

10 réponses

Avatar
isabelle
bonjour JP,

Range("AA6:BD1006").Replace What:="x", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse

isabelle

Le 2014-04-20 14:31, JP a écrit :
Bonsoir,


J'ai dans une plage de données des 0 et des croix "X".
J'utilise ce code pour supprimer toutes les croix dans la plage de données.

For Each c In Range("AA6:BD1006")
If c= "X" Then
c.ClearContents
End if
Next


Le temps de traitement est trop long.

Est-ce qu'il existe un moyen plus rapide?

Merci

JP

Avatar
JP
Bonsoir Isabelle,

Je n'ai qu'un mot: superbe.

Merci beaucoup

JP
Avatar
JP
Isabelle,

Puis-je abuser sur la question.
Est-ce que le code que tu viens de me proposer peut fonctionner pour les ce llules qui contiennent #N/A à la suite de la copie d'une plage de donné es?

JP
Avatar
isabelle
oui sans probleme,
et tu peut aussi enlever les #N/A de la même facon,

Range("AA6:BD1006").Replace What:="#N/A", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse

isabelle

Le 2014-04-20 15:48, JP a écrit :
Isabelle,

Puis-je abuser sur la question.
Est-ce que le code que tu viens de me proposer peut fonctionner pour les cellules qui contiennent #N/A à la suite de la copie d'une plage de données?

JP

Avatar
JP
Dire que je ne connaissais pas cette fonction!


Je te remercie.

JP
Avatar
JP
Isabelle,

Du coup j'ai fait du ménage dans les macros.
Est-ce code peut être adapté pour supprimer toutes les valeurs numéri ques supérieures à 0?
J'ai fait une boucle for i en mettant i dans What:=i.

Ce n'est pas concluant!

Merci

JP
Avatar
isabelle
essai cette commande

Selection.SpecialCells(xlCellTypeConstants, 1).Select

isabelle

Le 2014-04-20 17:40, JP a écrit :
Isabelle,

Du coup j'ai fait du ménage dans les macros.
Est-ce code peut être adapté pour supprimer toutes les valeurs numériques supérieures à 0?
J'ai fait une boucle for i en mettant i dans What:=i.

Ce n'est pas concluant!

Merci

JP

Avatar
isabelle
oups ça sélectionne aussi les nombres négatif,
je pense que tu n'as pas le choix de faire une boucle pour ce cas.

pour la commande "remplace" regarde au menu, acceuil, édition, recherche et
sélectionner, remplacer.

isabelle

Le 2014-04-20 18:06, isabelle a écrit :
essai cette commande

Selection.SpecialCells(xlCellTypeConstants, 1).Select

isabelle

Le 2014-04-20 17:40, JP a écrit :
Isabelle,

Du coup j'ai fait du ménage dans les macros.
Est-ce code peut être adapté pour supprimer toutes les valeurs numériques
supérieures à 0?
J'ai fait une boucle for i en mettant i dans What:=i.

Ce n'est pas concluant!

Merci

JP

Avatar
GL
Le 20/04/2014 20:31, JP a écrit :
Bonsoir,


J'ai dans une plage de données des 0 et des croix "X".
J'utilise ce code pour supprimer toutes les croix dans la plage de données.

For Each c In Range("AA6:BD1006")
If c= "X" Then
c.ClearContents
End if
Next


Le temps de traitement est trop long.

Est-ce qu'il existe un moyen plus rapide?



A part la belle réponse d'Isabelle ;-)
il faut aussi penser à

Application.ScreenUpdating = False

quand on a une boucle longue. Souvent
ça accélère grandement la macro.

Ne pas oublier dans ce cas :

On Error Goto LabelError
...

LabelError:
Application.ScreenUpdating = True

Cordialement.
Avatar
JP
Oui, je remercie encore Isabelle. Mon programme s'en est trouvé transform é.
Les conseils ont été immédiatement rentabiisés.:-)

JP