supprimer les lignes dont les cellules contiennent....

anna111

XLDnaute Junior
bonjour à tous,

je souhaite, si possible, creer un boutton de commande qui permet de supprimer des lignes dont le cellules de la colonne A contiennent un debut de valeur, j'explique :

dans la colonne A j'ai :
A1 = YX12
A2 = YX13
A3 = YX22
A4 = YX25
A5 = YX48

j'aimerai creer un boutton qui soit toujours visible en bas et me permet de supprimer des lignes de cette manniere :
taper dans une zone texte 13 25 48, une fois valider les lignes A2 A4 et A5 sont supprimées et la zone texte s'efface.
Possible ?
merci.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : supprimer les lignes dont les cellules contiennent....

Bonjour le fil, bonjour le forum,

Je trouve toujours excellent quand on offre plusieurs solutions à un problème donné. L'utilisateur choisira celle qui lui convient le mieux et ce ne sera d'ailleurs pas forcément la meilleure (niveau rendement, code, etc...). Mais de là à en faire un compétition... Permettez donc que je me retirasse...

Juste pour info Integer va de -32767 à 32767 mais Jean Marie a raison de préciser qu'en déclarant la variable au départ comme Long on ne risque pas d'avoir de bug sur aucun tableau mais on prend plus de mémoire de stockage (ha j'ai lu le travail de MdF sur les variables... Quel régal !!!).

Ton problème Anna est ailleurs. Quand tu rentres une variable à trois caractères (200 ou 400) CInt(Right(Cells(li, 1), Len(Tableau(I)))) provoque une erreur à la première ligne qu'il rencontre où les numéros n'ont plus que deux caractères. Puisqu'on demande alors de convertir en entier X99 (par exemple).
Hier quand je t'ai proposé mon code je l'ai juste fait tourné un petit peu et il me semblait fiable. Je me rends compte aujhourd'hui qu'il ne l'est absolument pas puisque si tu tapes 10 comme variable, la ligne YX10 sera bien supprimée mais aussi les YX110, YX210, YX310, etc... Donc les porpositions de JPN (qui a eu la gentillesse d'améliorer mon code de base) et la mienne ne sont pas fiables. Je laisse le soin au compétiteurs de de trouver The Solution.
 

JNP

XLDnaute Barbatruc
Re : supprimer les lignes dont les cellules contiennent....

Re :),
@ Robert : non, ne te "retirasse" point :p... De compétition ici-bas le sujet n'est point :D...
Pratiquant depuis longtemps Jean-Marie et Pascal, je puis dire, sans penser me tromper, que Jean-Marie est un perfectionniste jusqu'au bout des ongles, et Pascal ne se sentant pas sûr de ses propositions, se demande si sa réponse est correcte, demande légitime quand on fait une proposition, et qu'on est pas sûr de ce qu'on avance (ce qui pour moi serait un bon point pour lui, car j'ai bien peur qu'on connaissent bien trop de gens sûr d'eux, mais qui ne racontent que des co..., en y croyant dur comme fer :p... Moi le premier concernant les formulistes à mes débuts et proclamant haut et fort "sans VBA, point de salut !" :eek:). Quand à moi, j'avoue que l'esprit de compétition ne m'habite pas, tout au moins pas en dehors de mes activités professionnelles ;)...
@ tous :
Pour revenir à nos moutons, j'avais comme Robert traduit XY par des chiffres, mais il est vrai que le code peut fonctionner avec des lettres, ou une fin en chiffre plus courte que prévue, donc il suffit de modifier
Code:
            If Right(Cells(li, 1), Len(Tableau(I))) = Tableau(I) Then Rows(li).Delete
en enlevant le CInt, ce qui permet de faire une comparaison sur les caractères.
Maintenant, si effectivement, il faut retirer XY30 mais pas XY130, le code est à revoir :rolleyes:...
Bonne fin de journée à tous :)
 

anna111

XLDnaute Junior
Re : supprimer les lignes dont les cellules contiennent....

Maintenant, si effectivement, il faut retirer XY30 mais pas XY130, le code est à revoir :rolleyes:...
Bonne fin de journée à tous :)

Ben je crois que ça va me causer des problémes par la suite, aussi un autre probleme, si j'ai dans cellules de la colonne A, les valeurs "YX210" et "210", les deux lignes vont s'effacer :confused::mad::(
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : supprimer les lignes dont les cellules contiennent....

Bonsoir le fil, bonsoir le forum,

Ce qu'il y a de "pénible" dans ce forum c'est la symphatie des gens qui l'animent qui, avec beaucoup d'humour, trouvent toujours les mots pour relativiser mes coups de gueules... Merci JNP de m'avoir remis en place.

Mais je recidive ! Et voilà un nouveau coup de gueule qui s'adresse cette fois-ci à Miss (?) Anna... Si tu avais daigné mettre un petit fichier exemple en pièce jointe avec quelques données représentatives de ton travail ça nous aurait permis de te répondre avec plus d'efficacité. Isn't it ?
 

JNP

XLDnaute Barbatruc
Re : supprimer les lignes dont les cellules contiennent....

Re :)
aussi un autre probleme, si j'ai dans cellules de la colonne A, les valeurs "YX210" et "210", les deux lignes vont s'effacer :confused::mad::(
Ben, c'était ta demande, supprimer toute ligne qui se termine par 210...
Si tu veux ne supprimer que les lignes 210, pas de problème, mais ce n'était pas le cahier des charges ;).
A + :cool:
 

Paritec

XLDnaute Barbatruc
Re : supprimer les lignes dont les cellules contiennent....

Bonsoir Robert JNP JeanMarie,Anna et tous,
bon bah je vois que le post a pas avancé il a couru,
Pour JNP oui tu sais moi je fais pour aider et c'est vrai que ta remarque est bonne pour les 13 113 etc, J'avais pas pensé !!!!!
Mais l'avantage c'est que d'avoir fait pas bien , du moins pas parfait permet d'avoir des solutions pour la prochaine fois.
Robert faut pas se fâcher on t'aime avec tes coups de grisous, autrement ce ne serait pas toi, ou tu serais malade et personne ne veut cela!!
bonne soirée à tous
Papou :)
 

JNP

XLDnaute Barbatruc
Re : supprimer les lignes dont les cellules contiennent....

Re :),
Merci JNP de m'avoir remis en place.
Que nenni, très cher, loin de moi cette idée ;)... Simplement, je connais Pascal et Jean-Marie et ne m'étonne pas de leur réponses, et je pense (tout au moins j'espère :rolleyes:) qu'ils prennent mon message pour ce qu'il vaut, càd juste une appréciation juste et sincère des "répondeurs" de ce forum.
Pour Anna, effectivement, il serait temps qu'elle nous fournisse un échantillon exact des données à traiter...
Dans notre logique Excelienne, si on veut juste ôter 30 et pas 130, c'est que 30 est en réalité 030, et le code correspond si l'on frappe 030...
Dans la logique d'Anna, ben, comme dit Robert, un échantillon de cette logique serait le bienvenu, car il semble s'éloigner de la nôtre :p...
A + :cool:
 

anna111

XLDnaute Junior
Re : supprimer les lignes dont les cellules contiennent....

Dans notre logique Excelienne, si on veut juste ôter 30 et pas 130, c'est que 30 est en réalité 030, et le code correspond si l'on frappe 030...
Dans la logique d'Anna, ben, comme dit Robert, un échantillon de cette logique serait le bienvenu, car il semble s'éloigner de la nôtre :p...
A + :cool:

le voici, ça résume un peu mon but
 

Pièces jointes

  • exemple.xls
    13.5 KB · Affichages: 44
  • exemple.xls
    13.5 KB · Affichages: 44
  • exemple.xls
    13.5 KB · Affichages: 42

Staple1600

XLDnaute Barbatruc
Re : supprimer les lignes dont les cellules contiennent....

Bonsoir


Pratiquant depuis longtemps Jean-Marie et Pascal

En tout bien tout honneur, il va de soi :p
Nous nous pratiquons certes
pas sur un matelas
mais sur un "tapis" de 65536 cellules (et ca nous fait du bien)

PS: avec une solution par filtre, je pense qu'on aurait moins de problème ;)
Ça devrait aussi être pas mal en utilisant RegExp...
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 219
Messages
2 086 369
Membres
103 197
dernier inscrit
sandrine.lacaussade@orang