Faire un tri d'après sélection et le coller dans autre feuillet

Résolu
Greenisthenewblue Messages postés 6 Statut Membre -  
 Greenisthenewblue -
Bonjour à tous,

Je m'arrache les cheveux sur plusieurs posts où malgré mes recherches, je n'arrive pas à trouver la réponse.

Je souhaite faire avec VBA un tri dans une liste, et puis qu'il me copie-colle ces résultats dans le feuillet à côté. Les valeurs que je cherche sont dans la colonne I, et je voudrais qu'il repère ceux qui s'appellent ,Cst et ,Cst2.

Le problème c'est que chaque mois la liste varie et son nombre de lignes aussi, et que quand j'ai voulu faire une macro-type, il est resté sur le nombre de lignes original. Alors j'ai voulu lui donner un nombre bidon que je ne risque pas de dépasser (30 000). Mais là, comment dire, cela ne marche plus du tout !!
Y aurait-il une bonne âme pour m'aider, sachant que je développe depuis... Hier !

Merci d'avance pour votre aide...

Sub Macro2()
'
' Macro2 Macro
'

'
Selection.AutoFilter
ActiveSheet.Range("$A$1:$M$30000").AutoFilter Field:=9, Criteria1:= _
"=,CST", Operator:=xlOr, Criteria2:="=,CST2"
Range("A1:M30000").Select
Selection.Copy
Sheets.Add After:=ActiveSheet
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Feuil1").Select
Sheets("Feuil1").Name = "Cstetcst2"
End Sub

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Sub Macro2()
        Selection.AutoFilter
        adr = ActiveSheet.UsedRange.Address
        ActiveSheet.Range(adr).AutoFilter Field:=9, Criteria1:="=,CST", Operator:=xlOr, Criteria2:="=,CST2"
        ActiveSheet.UsedRange.Select
        Selection.Copy
        Sheets.Add After:=ActiveSheet
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Sheets("Feuil1").Select
        Sheets("Feuil1").Name = "Cstetcst2"
    End Sub


    Je pense que vous ne renommez pas le bon onglet, mais c'est vous qui voyez
    0
    1. Greenisthenewblue
       
      Super fort ! Ça marche d'enfer, merci beaucoup !!
      Si j'avais su j'aurais posté plus tôt !
      Je vais de ce pas me documenter sur ce adr = ActiveSheet.UsedRange.Address qui résout le problème en un rien de temps.
      Merci merci merci

      (et effectivement, le tableau sur lequel je travaille est une extraction d'un logiciel, du coup l'onglet est déjà nommé et m'ouvre ensuite Feuil1).
      0