résultat de filtre automatique dans nouvel onglet

titlook

XLDnaute Nouveau
Bonjour à tous. :)

Une question existentialiste... :confused: Peut-on reporter automatiquement dans un nouvel onglet une partie de tableau isolée par un filtre automatique. J'essaie de m'exprimer plus clairement. Si je pose un filtre automatique sur mon tableau principal et que , par ce filtre, je demande toutes les valeurs "A" de ma première colonne, le résultat peut-il s'afficher dans un nouvel onglet ?

Merci à vous pour vos réponses ?

Si jamais ce n'est pas très clair, je peux essayer de repréciser ...
 

Staple1600

XLDnaute Barbatruc
Re : résultat de filtre automatique dans nouvel onglet

Bonjour


C'est possible en utilisant VBA (macro)

Si tu as un fichier exemple (zippe-le et postes-le ici, stp)

Tu peux aussi utiliser le moteur de recherche du forum

Tu trouveras des exemples

En voici un:
Code:
Sub Macro1()
With [C1]
    .AutoFilter Field:=3, Criteria1:="15"
    .CurrentRegion.Copy Sheets(2).Range("A1")
End With
Application.CutCopyMode = xlCopy
End Sub
 
Dernière édition:

titlook

XLDnaute Nouveau
Re : résultat de filtre automatique dans nouvel onglet

j'ai jeté un coup d'oeil dans le moteur de recherche avant et après avoir posté, mais j'ai rien trouvé de très clair pour moi. Je laisse un petit fichier en exemple. Merci à tous ceux qui peuvent me donner un petit coup de pouce;)
 

Pièces jointes

  • EXEMPLE1.xls
    13.5 KB · Affichages: 82
  • EXEMPLE1.xls
    13.5 KB · Affichages: 79
  • EXEMPLE1.xls
    13.5 KB · Affichages: 76

titlook

XLDnaute Nouveau
Re : résultat de filtre automatique dans nouvel onglet

oui, c'est vrai que c'est pas très clair. Le filtre concerne la colonne B et malheureusement, je vais garder des célules fusionnées (pas le chois !!!). Le but est que toutes les lignes comportant un A dans la colonne B soient reportées automatiquement dans un tableau identique mais sans un autre onglet appelé A et ainsi de suite..;
J'espère avoir été plus claire (en fait, je suis pas sure...)
Merci pour tes réponses
 

jeanpierre

Nous a quitté
Repose en paix
Re : résultat de filtre automatique dans nouvel onglet

Bonsoir,

"je vais garder des célules fusionnées (pas le chois !!!)."

Si, Si, il y a toujours le choix (cette option est des plus lamentables, simplement faite pour de la présentation, mais pas pour autre chose, ni calcul, ni Vba en tous cas), mais soit tu t'obstines et on ariivera à rien, soit tu reconsidères....
 

Staple1600

XLDnaute Barbatruc
Re : résultat de filtre automatique dans nouvel onglet

Re



1) Peux-tu créer un fichier ?
• a) avec plus de données de A à G par exemple
• b) et un(ou des) onglet(s) avec le résultat escompté

Si oui, zippes ce fichier (Clic-droit-> Envoyer vers -> Dossiers compressés)

Puis édites ton message de [Gérer les pièes jointes

Supprimes le 1e fichier

et upload le fichier zip à sa place.


Merci.


edit: bonsoir jeanpierre

titlook: je partage l'avis de jeanpierre sur les cellules fusionnées
( A éviter)
 

titlook

XLDnaute Nouveau
Re : résultat de filtre automatique dans nouvel onglet

alors là, je suis complètement d'accord avec vous, les cellules fusionnées, c'est l'enfer pour une utilité plus que limitée. Ca complique plus qu'autre chose. Malheureusement, le doc sur lequel je bosse, je suis pas sure que mon boss accepte que j'en change la moindre mise en forme. Ca va être le challenge du jour.
Concernant ta dernière réponse JM, je te laisse le fichier original. Sur ce doc qui va évoluer en cours d'année (on va être ammené à ajouter de nouveaux risques), il faudrait que les zones de risques identifiées (colonne B) puisse être reporté par onglet (un onglet frites, un grill, un restaurant ...). Voilà, je ne sais pas si c'est plus clair, en tout cas, c'est le doc officiel.
Merci pour vos réponses:)
 

Pièces jointes

  • Document unique des risques.zip
    14.3 KB · Affichages: 33

Staple1600

XLDnaute Barbatruc
Re : résultat de filtre automatique dans nouvel onglet

Re

EDITION: macro moins lourdingue
Code:
Sub macro_plus_aboutie()
[COLOR=SeaGreen]'//////Déclarations//////////////////
[COLOR=Black]Dim c As Range                   
Dim z$, i%, j%, k%, q%       
Dim L As Byte, N As Byte     
Dim Colle As New Collection 
Dim t()                          
Dim t_ablo As Variant     [/COLOR]
'/////Fin déclarations////////[/COLOR]

Application.ScreenUpdating = False
[COLOR=SeaGreen]'création d'une chaine[/COLOR]
'contenant les valeurs de la colonne B
For i = 12 To 96
If Not IsEmpty(Cells(i, 2)) Then
z = z & Cells(i, 2).Value & "/"
End If
Next i
[COLOR=SeaGreen]'création d'un array[/COLOR]
t_lo = Split(UCase(Left(z, Len(z) - 1)), "/")
t = Application.Transpose(t_lo)
t_ablo = Application.Transpose(t)
'suppression des valeurs doublonnées
For L = 0 To UBound(t_ablo, 1)
N = Colle.Count
On Error Resume Next
Colle.Add t_ablo(L), CStr(t_ablo(L))
On Error GoTo 0
Next L
[COLOR=SeaGreen]'création des feuilles[/COLOR]
For q = 1 To 21
Sheets.Add.Name = Colle.Item(q)
Next q
Application.ScreenUpdating = True
End Sub




Voici une macro qui crée les onglets selon les valeurs de la colonne B
(sans doublons)

C'est un début

Code:
Sub macro_lourdingue()
Dim i As Long
Dim j As Long
Dim z as String
Dim tab_la() As Variant
Application.ScreenUpdating = False
For i = 12 To 96 ' Step 33
If Not IsEmpty(Cells(i, 2)) Then
z = z & Cells(i, 2).Value & "+"
End If
Next i
Sheets("Document Unique").Range("X1") = _
UCase(Left(z, Len(z) - 1))
Range("X1").TextToColumns Range("X1"), xlDelimited, xlDoubleQuote, False, True, , , , True, "+"
With Range(Cells(1, 24), Cells(1, [IV1].End(xlToLeft).Column))
    .Copy
    Range("W2").PasteSpecial xlAll, xlNone, False, True
End With
Range("W1") = "AFILTRER"
Range("W1:W36").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
        "U1"), Unique:=True
Range("W1:IV36").ClearContents
tab_la = Application.Transpose(Range("U2:U21"))
For j = 1 To 20
Sheets.Add.Name = tab_la(j)
Next j
Range("U1:U21").ClearContents
Application.ScreenUpdating = True
End Sub


 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : résultat de filtre automatique dans nouvel onglet

Re

PS: Si des VBAISTEs passent dans le coin, merci de bien vouloir contribuer à me soulager
de ce casse-tête de cellules fusionnées . Merci ;)


C'est vraiment infernal les cellules fusionnées


Essai en cours:

Copie ces macros dans ton classeur (qui doit contenir uniquement la feuille
"Document Unique")

Puis lance la macro premier_essai.


Et observe le pouvoir néfaste des cellules fusionnées :eek:

Code:
Sub premier_essai()
creation_feuilles
recopie
End Sub
Code:
Sub creation_feuilles()
'//////Déclarations//////////////////
Dim C As Range                  ' //
Dim z$, i%, j%, k%, q%         ' //
Dim L As Byte, N As Byte      ' //
Dim Colle As New Collection  ' //
Dim t()                     ' //
Dim t_ablo As Variant      ' //
'/////Fin déclarations////////

Application.ScreenUpdating = False
'création d'un chaine
'contenant les valeurs de la colonne B
For i = 12 To 96
If Not IsEmpty(Cells(i, 2)) Then
z = z & Cells(i, 2).Value & "/"
End If
Next i
'création d'un array
t_lo = Split(UCase(Left(z, Len(z) - 1)), "/")
t = Application.Transpose(t_lo)
t_ablo = Application.Transpose(t)
'suppression des valeurs doublonnées
For L = 0 To UBound(t_ablo, 1)
N = Colle.Count
On Error Resume Next
Colle.Add t_ablo(L), CStr(t_ablo(L))
On Error GoTo 0
Next L
'création des feuilles
For q = 1 To 21
Sheets.Add.Name = Colle.Item(q)
Next q
Application.ScreenUpdating = True
End Sub
Code:
Sub recopie()
Dim Rng As Range
Dim C As Range
Dim F As Worksheet
Set F = Sheets("Document Unique")
Set Rng = F.Range("B12:B96")
For Each C In Rng
If C.MergeArea.Cells.Resize(1, 1).Address = C.Address Then
C.Resize(C.MergeArea.Cells.Rows.Count, 10).Copy Sheets(UCase(C.Value)).Range("A65536").End(xlUp).Offset(1, 0)
End If
Next C
End Sub
 
Dernière édition:

Discussions similaires

Réponses
16
Affichages
571
Réponses
12
Affichages
399

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz