Excel : Supprimer X lignes avec un meme mot

Résolu
jessipop6 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
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 !

7 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    1. pilas31 Messages postés 1878 Statut Contributeur 648
       
      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
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      merci pilas pour l'explication!!!
      Ben il conviendrait peut être de restaurer le doublon "résolu" et supprimer celui-ci. Non???
      0
    3. pilas31 Messages postés 1878 Statut Contributeur 648
       
      Oui, j'ai fait un signalement dans ce sens ..
      0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    > 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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Excuse moi, je ne vois pas ou est la différence...
      0
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     
    merci pour le pinaillage .... c'est quand même mieux une fois pinaillé !!
    0
  7. NurboLibra Messages postés 6 Statut Membre
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
  8. NurboLibra Messages postés 6 Statut Membre
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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