• Initiateur de la discussion Initiateur de la discussion mumu
  • 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 !

mumu

XLDnaute Occasionnel
Bonjour,

J'ai un souci avec la reconnaissance de l'intérieur d'une cellule par excel....
J'ai écrit une macro sur excel (dont voici la ligne principale) :

If ActiveCell.Value <> 0.9375 And ActiveCell <> 0.0625 And ActiveCell <> 0.1875 [...] Then ActiveCell.EntireRow.Delete

Quand la macro passe sur les cellules, elle ne reconnait pas les chiffres et me supprime toutes les lignes.
Elle ne reconnait les chiffres que si je fais un double clic sur la cellule et que je relance la macro...... à ce moment là elle garde seulement les lignes sur lesquelles j'ai double cliqué......

Comment puis-je "activer" les cellules sans double cliquer sur chacune, pour qu'elle les reconnaisse ?

D'avance merci !!
 
Re : activation cellule

Bonjour,

ll semblerait que les valeurs soient considérées comme étant du texte et non comme un nombre tant que tu n'as pas double-cliquer dessus pour les activer.

Si tu mets des guillemets (If ActiveCell.Value <> "0.9375" And ActiveCell <> "0.0625" ...) ça devrait fonctionner mais peut être plus pour celles que tu as déjà activées !
Il faut je pense d'abord régler le probleme de format de tes cellules.
Je cherche et je reviens.

Vic
 
Re : activation cellule

Re-moi !

Si tu as des points dans tes cellules (0.975) remplace les par des virgules (0,975).
Sous VBA laisse les points.

Pour moi ça marche.

A+
 
Dernière modification par un modérateur:
Re : activation cellule

Bonjour Mumu, Wilfried, Vic

je suppose que tes données viennent d'un fichier texte ou autre, as tu essayé de convertir la colonne, barre de menu => Données => convertir =>, largeur fixe, format "standard".

Ton séparateur de décimales est bien le ".", sinon possibilité de faire un "remplacer". Peut être qu'avec un bout de fichier ca nous aiderait à t'aider.

bon après midi
@+
 
Re : activation cellule

Je vous remercie pour ces réponses.
La solution de Vic résoud en partie mon problème car j'ai juste une valeur qui passe au travers.
Je mets un bout de mon fichier. Sachant que mes chiffres sont issus des heures (par ex pour 22:30:00 j'ai 0.9375)

Je cherche à extraire de mon fichier les heures ci après
22:30 - 01:30 - 04:30 - 07:30 - 10:30 - 13:30 - 16:30 - 19:30
22:40 - 01:40 - 04:40 - 07:40 - 10:40 - 13:40 - 16:40 - 19:40
j'ai donc fait : format de cellule/standard/ et repris les chiffres correspondants.

ça a bien marché pour les hh:30:00 mais ça plante pour les hh:40:00

avec la solution de VIC j'ai juste 01:40:00 que je n'arrive pas à garder.

J'ai essayé de changer les "." par des "," mais ça change rien......

D'avance merci
 

Pièces jointes

Re : activation cellule

quand je parle de la solution de VIC, c'est quand il propose de faire un boucle avec
ActiveCell.Value = ActiveCell.Value + 1 - 1
ou
ActiveCell.Value = ActiveCell.Value + 0

sur chacune des cellule

Malheureusement le fait de convertir ma colonne ne change rien.....
 
Re : activation cellule

Content que cela ait pu de faire avancé.
J'avais ré-édité mon post pour supprimer cette solution car si les celulles étaient en format texte cela me faisait un message d'erreur .
Pour info cette solution est parfois utile avec les formules (et non en VBA comme ici) pour réutiliser des nombres extraits de texte (par Stxt(...) par exemple).
(ex: A1=A1+1-1)

Vic
 
Re : activation cellule

Encore moi.
Une particularité mathematique des valeurs que tu veux retenir peux t'aider.

Pour les valeurs "22:30 - 01:30 - 04:30 - 07:30 - 10:30 - 13:30 - 16:30 - 19:30", leur valeur au format numérique 0,0625 - 0,1875 - 0,3125… n'ont que 4 chiffres après la virgule.
de meme pour les valeurs "22:40 - 01:40 - 04:40 - 07:40 - 10:40 - 13:40 - 16:40 - 19:40" elles finissen,t toutes par 4444... après la 4eme deceimales
donc tu peux toutes les isoler avec la formules suivantes :
MOD(TaCellule*1000;1)*10000 (ou equivalente en vba)

Soit cette formule renvoie "5000 (pour les valeurs en xxh30)
soit elle renvoir "4444" (pour les valeurs en xxh40)
Toutes les autres tu peux les supprimer.

Ah, mathématique, quand tu nous tiens !

A+
Vic
 
Re : activation cellule

Re Mumu, Vic

je sais pas si ca va pouvoir t'aider, petite macro ci dessous, qui recherche "40" dans tes cellules colonne B et éventuellement peut dileter la ligne. (tu enlèves le "'" et le msgbox).

Code:
Sub test()
Dim maval As String, MaPlage As Range, l As Integer, MesLignes As Integer

Set MaPlage = Range("B1:B" & Range("B65536").End(xlUp).Row)
MesLignes = MaPlage.Count
For l = MesLignes To 1 Step -1

maval = CDate(MaPlage(l, 1).Value)
If InStr(4, maval, "40") Then MsgBox "trouvé" 'MaPlage(l, 1).EntireRow.Delete
Next l
End Sub

@+
 
Re : activation cellule

Merci Pierrot pour le programme mais je voudrais la solution à l'envers. J'aimerais garder les lignes avec "40".
En tout cas cette solution me servira sans doute une autre fois.

Je te remercie également VIC ta solution (que j'ai du mal à saisir même avec "l'aide" d'excel) résoud bien mon "énigme"

Merci à tous de vous être penché sur mon problème
 
Re : activation cellule

Bonsoir Mumu, Pierrot

Une précision pour Pierrot,
Une des difficultés est le fait que Mumu ne souhaite pas retenir toutes les valeurs en 30 ou 40. Elle retient par ex 1:40 et 4:40 mais pas 2:40 et 3:40.

Pourquoi? ça je ne sais pas !!
vic
 
Re : activation cellule

re

je precise
avec une boucle for i = 1 to x il est impossible que cela fonctionne

une destruction de ligne provoque une remontée des ligne en dessous

donc la destruction de la ligne 10 provoque que la ligne 11 devient la ligne 10 et ne sera pas traitée au prochain next qui traitera finalement la ligne 12 qui est devenue la ligne 11

je ne sais pas si le probleme est la mais cela y ressemble
on supprime la 20, la 30 saute, on supprime la 40 , la 50 saute

a vous lire
 
- 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

Discussions similaires

Retour