Macro Excel (Chercher et effacer)

D

Dzign

Guest
bonjour,

Je suis en stage dans une entreprise pour mon bts et je dois realiser une macro excel, dans celle ci j'ai une fonction qui doit supprimer toutes les ligne dont la valeur est superieur a 0.9 (dans la colonne J dans mon cas)

Voici mon code qui ne fonctionne pas il efface n'importe quoi :
_________________________________________
Dim cel As Range, colrech
Set colrech = Range('J1:J250')
For Each cel In colrech
If cel.Value >= 0.9 Then
cel.EntireRow.Delete
End If
Next cel
__________________________________________
Si quelqu'un avait une petite idée, ca me rendrait un grand service, je vous remercie d'avance pour votre aide;
 
D

Dzign

Guest
Merci jmps pour votre reponse si rapdide, oui c'est vrai que d'utiliser une variable intermediaire n'a pas d'interet mais j'ai tellement retouché le code et essayer tellement de chose que je suis completement perdu.
J'ai essayé le code sans la variable intermediaire et il se produit exactement le meme resultat. Ca supprime aleatoirement jusqu'a tout supprimer au bouton de 5 clicks sur mon boutons.
Encore merci pour votre aide
 

Dzign

XLDnaute Nouveau
merci encore pour votre aide jmps,

voici un extrait mais je pense que vous avez vu juste a la base il s'agit bien d'un fichier texte. je l'ouvre avec excel mais peut ensuite comme vous l'avez dit cela provoque un
mauvais format de cellules.

Message édité par: Dzign, à: 22/02/2006 11:56
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

essaies comme ceci peut-être

Dim cel As Range
For Each cel In Range('J1:J250')
If val(cel.Value) >= 0.9 Then
cel.EntireRow.Delete
End If
Next cel

ou

Dim cel As Range
For Each cel In Range('J1:J250')
If cdbl(cel.Value) >= 0.9 Then
cel.EntireRow.Delete
End If
Next cel

Bon courage
 

PascalXLD

XLDnaute Barbatruc
Modérateur
RE

2 petites choses

1 - Tu peux nous tutoyer c'est plus sympa ;)

2 - il serait peut-être utile de remettre tes cellules de la colonne j en numerique en même temps si tu as besoin de faire des calculs

du genre

Dim cel As Range
For Each cel In Range('J1:J250')
If val(cel.Value) >= 0.9 Then
cel.EntireRow.Delete
else
cel.value=val(cel.Value)
End If
Next cel
 
D

Dzign

Guest
En tout cas merci encore pour vos conseils, et merci pour votre acceuil si sympatique; je prend note de vos conseil.
A vrai dire pour le Vba, ca fait 1 semaine que je suis sur ma macro, c'est pas au programme bizarement, ils doivent considerer qu'une fois le vb acqui, c'est bon pour le vba :eek:
 

Discussions similaires

Réponses
7
Affichages
356
Réponses
2
Affichages
328

Statistiques des forums

Discussions
312 473
Messages
2 088 716
Membres
103 932
dernier inscrit
clotilde26