Extraire des données en retirant les lignes contenant

Bonjour tous,

je cherche une macro pour extraire les données de l'onglet RPL en retirant les ligne contenant Σ et les mettre dans l'onglet List. L'onglet RPL peut contenir plus de 2000 lignes.

Merci pour votre aide,

Bonjour,

Avec l'enregistreur de macros (pensez-y) et quelques optimisations, voici ce que l'on peut faire

Sub Macro1()
  Dim dLig As Long
'
    With Sheets("RPL")
      dLig = .Range("I" & Rows.Count).End(xlUp).Row
      If .AutoFilterMode = False Then .Range("A1:V1").AutoFilter
      .Range("$A$1:$V$" & dLig).AutoFilter Field:=8, Criteria1:="<>"
      .Range("$A$2:$V$" & dLig).Copy
    End With
    With Sheets("List")
      .Activate
      .Range("J" & Rows.Count).End(xlUp).Offset(1, 0).Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    End With
End Sub

A+

Bonjour,

j'ai la macro dans mon fichier, j'ai une erreur d'exécution'438', voir fichier joint.

Merci,

Edit modo : doublon

Re,

Désolé, j'ai laissé une coquille, il faut remplacer la ligne en erreur par

If .AutoFilterMode = False Then .Range("A1:V1").AutoFilter

A+

Bonjour à tous !

Le classeur exemple contenant plusieurs requêtes, il semblerait que Power Query ne vous soit pas totalement étranger.

Je vous propose cette requête très très basique :

let
    Source = Excel.CurrentWorkbook(){[Name="tSource"]}[Content],
    Filtre = Table.SelectRows(Source, each ([Reprezentant] <> ""))
in
    Filtre

Un tableau structuré (tSource) a été inséré dans la feuille RPL.

Bonjour,

la macro de BrunoM45 fonctionne, mais dans l'onglet RPL, j'ai maintenant des filtres et des lignes en surbrillance.

1. est il possible de garder l'onglet RPL en l'état?

2. si je modifier les donnes de l'onglet RPL, est il possible dans l'onglet List que les données repartent de 0 et non se cumule ?

Merci pour votre aide

Bonjour JFL,

je ne sais pas utiliser Power Query et je ne sais pas de quoi vous parlez. Désolé mon niveau en Excel est assez limité!

Cordialement,

Bonjour à tous de nouveau !

Bonjour JFL,

je ne sais pas utiliser Power Query et je ne sais pas de quoi vous parlez. Désolé mon niveau en Excel est assez limité!

Pourtant votre classeur contient........12 requêtes :

image

Re,

Bonjour,

la macro de BrunoM45 fonctionne, mais dans l'onglet RPL, j'ai maintenant des filtres et des lignes en surbrillance.

1. est il possible de garder l'onglet RPL en l'état?

2. si je modifier les donnes de l'onglet RPL, est il possible dans l'onglet List que les données repartent de 0 et non se cumule ?

Merci pour votre aide

Va falloir vous mettre un peu à VBA au lieu de dépendre des autres

Voici

Sub Macro1()
  Dim dLig As Long
    ' Créer et appliquer un filtre
    With Sheets("RPL")
      dLig = .Range("I" & Rows.Count).End(xlUp).Row
      If .AutoFilterMode = False Then .Range("A1:V1").AutoFilter
      .Range("$A$1:$V$" & dLig).AutoFilter Field:=8, Criteria1:="<>"
      .Range("$A$2:$V$" & dLig).Copy
    End With
    ' Copier les données filtrées
    With Sheets("List")
      .Activate
      .Range("J" & Rows.Count).End(xlUp).Offset(1, 0).Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    End With
    ' Effacer le filtre
    With Sheets("RPL")
      .ShowAllData
      .Range("A1:V1").AutoFilter
    End With
End Sub

Bonjour BrunoM45,

la macro fonctionne, l'onglet RPL reste dans son état. Pour l'onglet liste les données ne repartent pas de zéro.

Je vous remercie pour votre, et je vais essayer de mieux comprendre comment fonctionne la VBA.

Bonjour à tous,

j'ai cherché et après plusieurs tentatives, j'ai réussi. Je précise que j'ai réussi parce que la base du code fourni par BrunoM45 m'a été d'une grande aide. Un grand merci a vous.

Encore merci pour votre aide, voilà le code :

Sub Macro1()
Dim dLig As Long

' Effacer le contenu de l'onglet "Liste" à partir de la deuxième ligne
Sheets("List").Range("J2:AE" & Sheets("List").Rows.Count).ClearContents

' Créer et appliquer un filtre
With Sheets("RPL")
dLig = .Range("I" & Rows.Count).End(xlUp).Row
If .AutoFilterMode = False Then .Range("A1:AE1").AutoFilter
.Range("$A$1:$AE$" & dLig).AutoFilter Field:=8, Criteria1:="<>"
.Range("$A$2:$AE$" & dLig).Copy
End With

' Copier les données filtrées
With Sheets("List")
.Activate
.Range("J" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End With

' Effacer le filtre
With Sheets("RPL")
.ShowAllData
.Range("A1:AE1").AutoFilter
End With

' Effacer le presse-papiers après la copie
Application.CutCopyMode = False
End Sub
Rechercher des sujets similaires à "extraire donnees retirant lignes contenant"