Forum Discussion

Dominique63's avatar
Dominique63
Copper Contributor
Aug 23, 2022

Supprimer des lignes d'un fichier suivant critéres

bonjour

J'ai un fichier de quelques 30 000 lignes, toutes ne m'intéressent pas
Je souhaite savoir comment sélectionner celles qui touche mon secteur d'activité (colonne A: nom du site) et supprimer toutes les autres

Je n'ai pas de connaissance xcel, et tous les tutos me parlent de VBA ou autre, je ne comprends pas
Qui pourrait m'aider en "pas à pas" svp
Je vous remercie par avance
Dominqiue

3 Replies

  • Dominique63 

    Sub nom_de_site()
    
    Dim i As Long
    Dim k As Long
    Dim l As Long
    
    l = Range("A" & Rows.Count).End(xlUp).Row
    
    For i = 2 To l
    If Cells(i, 1).Value = "A" Then
    
    k = Worksheets("nom de site " & Cells(i, 1).Value).Range("A" & Rows.Count).End(xlUp).Row
    Range(Cells(i, 1), Cells(i, 10)).Copy Destination:=Worksheets("nom de site " & Cells(i, 1).Value).Cells(k + 1, 1)
    
    Else
    End If
    
    Next i
    
    End Sub

    Dans le fichier joint, vous pouvez cliquer sur le bouton de la cellule K2 pour exécuter la macro. Dans cet exemple, je présume que votre nom de site est «A». tous les résultats pour le nom de site «A» sont copiés dans la feuille de travail «nom de site A ».

    • Dominique63's avatar
      Dominique63
      Copper Contributor

      OliverScheurich 

       Bonjour

      Super, votre exemple marche super bien
      Je voudrais donc appliquer ce systéme à mon tableau

      Je suppose que l'encadré est un codage pour: une macro?
      Comment je fais à partir de mon tableau , pour obtenir le meme résultat que vous, quel process pour créer cette macro s'il sagit bien de cela...
      Désolée, mais je suis vraiment nulle........ pas formée
      Merci de votre aide

      • OliverScheurich's avatar
        OliverScheurich
        Gold Contributor

        Dominique63 

        Bonjour, il ne devrait pas y avoir de problèmes d’adaptation de la macro à votre fichier. Tout ce que je sais, c’est que votre dossier contient 30 000 lignes. Pouvez-vous joindre une capture d’écran de votre tableur ou un fichier Excel sans données confidentielles pour que je puisse adapter la macro?

        =INDEX(A$2:A$10000;PETITE.VALEUR(SI($A$2:$A$10000="A";LIGNE($1:$9999));LIGNE(1:1)))

        Vous pouvez aussi bien appliquer cette formule. Dans le dossier ci-joint, j’ai entré la formule dans la cellule L2. La formule doit être saisie avec ctrl+shift+enter si vous ne travaillez pas avec Office365 ou 2021. Puis j’ai traîné la formule à travers la gamme L2:T3288.

         

        Avec quelle version Excel travaillez-vous? Avec Office365 ou 2021, vous pouvez utiliser la fonction FILTER.

Resources