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
Bonjour,

J'ai besoin de votre aide de toute urgence !!
Je me trouve avec un tableau excel de 12000 lignes, dans lequels je dois supprimer toutes les lignes contenant par exemple le mot "calcul"
J'ai commencé manuellement mais je n'en peux deja plus, et je dois avoir terminer pour cette apres midi...

Quelqu'un aurait une formule pour supprimer rapidement toutes ces lignes ?

Merci d'avance !

A voir également:

7 réponses

ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
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
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
28 janv. 2011 à 14:59
Bonjour ccm81

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
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
28 janv. 2011 à 15:01
merci pilas pour l'explication!!!
Ben il conviendrait peut être de restaurer le doublon "résolu" et supprimer celui-ci. Non???
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
Modifié par pilas31 le 28/01/2011 à 15:03
Oui, j'ai fait un signalement dans ce sens ..
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
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.
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...
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
28 janv. 2011 à 15:31
> pijaku

ç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
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
28 janv. 2011 à 15:34
Excuse moi, je ne vois pas ou est la différence...
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
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?) !!!
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
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 :
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!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
28 janv. 2011 à 16:17
merci pour le pinaillage .... c'est quand même mieux une fois pinaillé !!
0
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
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:
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
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
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 :
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
0
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
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....


@+
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
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
0