Excel : Supprimer X lignes avec un meme mot
Résolu/Fermé
jessipop6
Messages postés
1
Date d'inscription
vendredi 28 janvier 2011
Statut
Membre
Dernière intervention
28 janvier 2011
-
28 janv. 2011 à 12:04
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 1 mars 2011 à 10:38
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 1 mars 2011 à 10:38
A voir également:
- Excel : Supprimer X lignes avec un meme mot
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
- Déplacer une colonne excel - Guide
7 réponses
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 428
28 janv. 2011 à 14:49
28 janv. 2011 à 14:49
bonjour
une precision : le mot qui doit declencher la suppression de la ligne est il
- isole dans une cellule
- toujours dans la même colonne (tout seul ou non dans une cellule)
bonne suite
une precision : le mot qui doit declencher la suppression de la ligne est il
- isole dans une cellule
- toujours dans la même colonne (tout seul ou non dans une cellule)
bonne suite
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
28 janv. 2011 à 14:59
28 janv. 2011 à 14:59
Bonjour, ou plutot re-,
Il faut éviter les doublons ici, sous peine de suppression. J'me demandais ou étais passé ton sujet, je comprends mieux maintenant...
Bon reprenons. Mon code fonctionne bien chez moi.
J'aimerais donc comprendre ce qui ne fonctionne pas chez toi.
Si ccm81, de passage pouvait y jeter un oeil, on n'est jamais trop de deux...
Il faut éviter les doublons ici, sous peine de suppression. J'me demandais ou étais passé ton sujet, je comprends mieux maintenant...
Bon reprenons. Mon code fonctionne bien chez moi.
J'aimerais donc comprendre ce qui ne fonctionne pas chez toi.
Sub couper_coller() Dim NomFeuil As String Dim Ligne As Long, DernLigne As Long Dim result As String NomFeuil = ActiveSheet.Name Sheets.Add ActiveSheet.Name = "recup donnees" Application.ScreenUpdating = False With Sheets(NomFeuil) DernLigne = .Range("A65536").End(xlUp).Row For Ligne = DernLigne To 2 Step -1 If .Cells(Ligne, 8).Value Like "toto" Then .Cells(Ligne, 8).EntireRow.Cut Sheets("recup donnees").Range("A" & Range("A65536").End(xlUp).Row + 1) .Cells(Ligne, 8).EntireRow.Delete End If Next End With Sheets(NomFeuil).Activate Application.ScreenUpdating = True End Sub
Si ccm81, de passage pouvait y jeter un oeil, on n'est jamais trop de deux...
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 428
28 janv. 2011 à 15:31
28 janv. 2011 à 15:31
> pijaku
ça marche
un petit détail pour ne pas retrouver les sauvegardes après les 12000 lignes
bonne journée
ça marche
un petit détail pour ne pas retrouver les sauvegardes après les 12000 lignes
.Cells(Ligne, 8).EntireRow.Cut Sheets("recup donnees").Range("A" & Sheets("recup donnees").Range("A65536").End(xlUp).Row + 1)
bonne journée
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
28 janv. 2011 à 15:34
28 janv. 2011 à 15:34
Excuse moi, je ne vois pas ou est la différence...
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 428
28 janv. 2011 à 15:41
28 janv. 2011 à 15:41
je n'ai rien dit ...
le Sheets("recup donnees"). de ton coller avait disparu quand j'ai fait mon copier .... coller (un comble non?) !!!
le Sheets("recup donnees"). de ton coller avait disparu quand j'ai fait mon copier .... coller (un comble non?) !!!
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 28/01/2011 à 15:51
Modifié par pijaku le 28/01/2011 à 15:51
Oui, un comble! Mais ça arrive plus souvent qu'on ne le croit...
Par contre une almélioration notable :
Cette macro remplit une feuille "recup donnees" à partir de ta feuille d'origine, en commençant par la fin. Résultat, "recup donnees" commence par les dernières valeurs de ta feuille d'origine. l'ordre est inversé. Pour rétablir l'ordre il convient de :
EDIT : je dis ça sur un sujet déserté par son auteur, et juste à titre de discussion et divers pinaillage!!!
Par contre une almélioration notable :
Cette macro remplit une feuille "recup donnees" à partir de ta feuille d'origine, en commençant par la fin. Résultat, "recup donnees" commence par les dernières valeurs de ta feuille d'origine. l'ordre est inversé. Pour rétablir l'ordre il convient de :
If result = vbYes Then .Cells(Ligne, 3).EntireRow.Cut Sheets("recup donnees").Range("A2").Insert Shift:=xlDown .Cells(Ligne, 3).EntireRow.Delete End If
EDIT : je dis ça sur un sujet déserté par son auteur, et juste à titre de discussion et divers pinaillage!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 428
28 janv. 2011 à 16:17
28 janv. 2011 à 16:17
merci pour le pinaillage .... c'est quand même mieux une fois pinaillé !!
NurboLibra
Messages postés
6
Date d'inscription
samedi 6 février 2010
Statut
Membre
Dernière intervention
1 mars 2011
28 févr. 2011 à 16:52
28 févr. 2011 à 16:52
Salut,
J'ai besoin de faire la même chose mais en créant une boucle de recherche, en reprenant dans l'exemple, toto, toto1, toto2, toto3...
exemple:
J'ai adapté votre réponse à mon cas en changeant les noms de feuilles et cela fonctionne, mais je n'arrive pas à créer plusieurs recherche...
Je vous cache pas que je ne maitrise pas VBA mais j'adore chercher, cependant je n'y arrive pas...
Je vous remercie.
Nurbo
J'ai besoin de faire la même chose mais en créant une boucle de recherche, en reprenant dans l'exemple, toto, toto1, toto2, toto3...
exemple:
If .Cells(Ligne, 2).Value Like "toto1" Then .Cells(Ligne, 2).EntireRow.Copy Sheets("pax_GBI").Range("A" & Range("A65536").End(xlUp).Row + 1) If .Cells(Ligne, 2).Value Like "toto2" Then .Cells(Ligne, 2).EntireRow.Copy Sheets("pax_GBI").Range("A" & Range("A65536").End(xlUp).Row + 1) If .Cells(Ligne, 2).Value Like "toto3" Then .Cells(Ligne, 2).EntireRow.Copy Sheets("pax_GBI").Range("A" & Range("A65536").End(xlUp).Row + 1) .........etc
J'ai adapté votre réponse à mon cas en changeant les noms de feuilles et cela fonctionne, mais je n'arrive pas à créer plusieurs recherche...
Je vous cache pas que je ne maitrise pas VBA mais j'adore chercher, cependant je n'y arrive pas...
Je vous remercie.
Nurbo
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 1/03/2011 à 08:27
Modifié par pijaku le 1/03/2011 à 08:27
Salut,
Combien de toto différent as tu?
S'il y en a peu, tu peux utiliser un array, comme ceci :
Combien de toto différent as tu?
S'il y en a peu, tu peux utiliser un array, comme ceci :
Dim Element As Variant Dim Lign As Integer For Lign = 1 To 20 For Each Element In Array("toto1", "toto2", "toto3", "toto4") If Cells(Lign, 2) = Element Then MsgBox Element End If Next Element Next Lign
NurboLibra
Messages postés
6
Date d'inscription
samedi 6 février 2010
Statut
Membre
Dernière intervention
1 mars 2011
1 mars 2011 à 10:36
1 mars 2011 à 10:36
Salut et merci pour ta réponse.
Des toto il y en a 44 mais il me faudrait la possibilité d'en rajouter selon le besoin jusqu'à 100 environ.
Mais... puisque je débute je suis parti sur autre chose. Je suis passé en mode enregistrement de macro, puis j'ai crée une table de référence de mes toto dans un classeur B et sur le classeur A j'ai fait une condition avec recherchev qui me met 1 si le toto se trouve dans la table de référence, puis une somme de ces 1.
Le tout me renvoi un nombre et c'est ce nombre qui m'importait plus que les lignes en elles mêmes.
Encore merci, mais je crois vraiment que je vais devoir passer au bouquin pour y comprendre un peu plus....
@+
Des toto il y en a 44 mais il me faudrait la possibilité d'en rajouter selon le besoin jusqu'à 100 environ.
Mais... puisque je débute je suis parti sur autre chose. Je suis passé en mode enregistrement de macro, puis j'ai crée une table de référence de mes toto dans un classeur B et sur le classeur A j'ai fait une condition avec recherchev qui me met 1 si le toto se trouve dans la table de référence, puis une somme de ces 1.
Le tout me renvoi un nombre et c'est ce nombre qui m'importait plus que les lignes en elles mêmes.
Encore merci, mais je crois vraiment que je vais devoir passer au bouquin pour y comprendre un peu plus....
@+
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
1 mars 2011 à 10:38
1 mars 2011 à 10:38
De rien.
La prochaine fois, pose la bonne question, celle qui t'intéresse réellement, ce sera beaucoup mieux pour toi.
A bientôt
La prochaine fois, pose la bonne question, celle qui t'intéresse réellement, ce sera beaucoup mieux pour toi.
A bientôt
28 janv. 2011 à 14:59
Jessipop6 avait ouvert 3 discussions sur le même thème et cette question a déjà été résolue par Pijaku et moi-même dans une autre discussion qui a malencontreusement été supprimée comme doublon. Donc je pense que Jessipop6 a déjà eu sa réponse.
Merci et A+ sur le Forum
28 janv. 2011 à 15:01
Ben il conviendrait peut être de restaurer le doublon "résolu" et supprimer celui-ci. Non???
Modifié par pilas31 le 28/01/2011 à 15:03