Macro Filtre et copie dans nouvel onglet

  • Initiateur de la discussion Initiateur de la discussion jehafa
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jehafa

XLDnaute Nouveau
Bonjour à tous ,

débutant en VBA, j'ai fait un Inputbox, la valeur de l'inputbox sert à faire un filtre, j'aimerai ensuite que les lignes visibles soient copiées dans un onglet créé avec le même nom que l'inputbox. Et ce pour l'onglet de 2 à .... (très variable).

Voici le code réalisé :

Code:
Sub filtre()

Dim rngSelect As Range
Dim I As Integer

typedaction = InputBox("Choix du type d'action", "Filtre des actions")

Worksheets("Trame").Select
Worksheets("Trame").Copy After:=Sheets(1)
Worksheets("Trame").Select
Worksheets("Trame (2)").Select
Worksheets("Trame (2)").Name = typedaction

For I = 2 To Worksheets.Count

Sheets(I).Select
Range("A1").Select

' filtrage
Selection.AutoFilter Field:=16, Criteria1:=typedaction
' rngSelect = toutes les cellules visibles (non masquées par le filtre)
' contigües à la cellule active
Set rngSelect = ActiveCell.CurrentRegion.SpecialCells(xlCellTypeVisible)

' copy de la zone sélectionnée
Worksheets("typedaction").Select
Cells(65535, 1).End(xlUp)(2, 0).Range.Select
rngSelect.Paste
Set rngSelect = Nothing

Next I

End Sub

Le nouvel onglet avec le nom de l'inputbox est bien crée mais après ça me donne erreur 400

Si vous avez une solution je suis preneur

Merci
 
Re : Macro Filtre et copie dans nouvel onglet

Bonjour,

Pas facile de faire une proposition sans voir ton fichier mais peut être ceci ... 😕

Code:
Sub filtre()
Dim rngSelect As Range
Dim I As Integer, typedaction As Integer
typedaction = InputBox("Choix du type d'action", "Filtre des actions")
Worksheets("Trame").Copy After:=Sheets(1)
On Error Resume Next
ActiveSheet.Name = typedaction
On Error GoTo 0
For I = 2 To Worksheets.Count
Sheets(I).Select
Range("A1").AutoFilter Field:=16, Criteria1:=typedaction
Set rngSelect = ActiveCell.CurrentRegion.SpecialCells(xlCellTypeVisible)
rngSelect.Copy Worksheets(CStr(typedaction)).Range("A" & Range("A65536").End(xlUp).Row + 1)
 
Next I
End sub

Amicalement
 
Re : Macro Filtre et copie dans nouvel onglet

Bonjour, à tous
à force d'acharnement j'en suis arrivé là :
un userform avec liste de choix, tous fonctionne comme je veut.

Seul bémol, lorsque j'exécute mon filtre pour tous les types d'actions, je voudrait que la boucle passe l'onglet si le nom est : Achats, Autres, Consignes, Formations ou Travaux mais là je bloque !!!

une idée ??
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 colorer une plage
Réponses
2
Affichages
905
Réponses
4
Affichages
939
Retour