Rechercher plusieurs valeurs

Bonjour,

J'ai besoin de votre aide sachant que je suis novice sur excel...

J'ai un fichier excel avec des noms, des nombres d'appels, des minutes, des couts et des centres de frais par colonne.

Mon but est de faire une recherche par centre de frais afin que je puisse directement avoir accès aux personnes se trouvant dans une société avec toutes les infos les concernant qui suivent.

Aujourd'hui je fais un filtre, je prend le centre de frais avec les gens dedans et je supprime les autres lignes (c'est assez long).

Auriez vous un moyen pour gagner du temps?

Je vous mets un fichier pour l'exemple.

J'espère avoir été clair.

D'avance Merci!

60classeur1.xlsx (12.61 Ko)

Bonjour,

Je pense que pour avoir ce genre de données vous pouvez recourir soit au Filtre Avancé, soit au Tableau Croisé Dynamique.

Le filtre avancé permet de faire un Filtre (il vient de loin celui là) selon plusieurs critères.

L'aide Microsoft présente plusieurs exemples concret, cela vous permettra de voir le fonctionnement :

https://support.office.com/fr-ca/article/Filtrer-%c3%a0-l-aide-de-crit%c3%a8res-%c3%a9labor%c3%a9s-4c9222fe-8529-4cd7-a898-3f16abdff32b?CorrelationId=107328b4-c531-4d1b-a6d2-08c8bab078d5&ui=fr-FR&rs=fr-CA&ad=CA

Le tableau croisé dynamique permet de faire à peu près ce que l'on veut avec un tableau de données (je l'utilise très peu, je ne peux pas trop vous conseiller dessus ^^).

Bonjour,

Pour le tableau croisé dynamique, j'y avais déjà pensé mais je ne gagne pas plus de temps c'est le problème...

Pour le filtre avancé je ne comprend pas tout malgré les infos de miscrosoft.

En mettant le tout sous forme de tableau ou en ajoutant un filtre en ayant sélectionner les en-tête, cela ne convient pas ?

121filtremultiple.xlsm (12.78 Ko)

Quel besoin de supprimer les infos après l'application du filtre ? Ou autrement dit, pourquoi copier les données dans une nouvelle feuille ? Cela doit correspondre à une utilisation particulière, non ?

A + Daniel

Timothe URVOY a écrit :

En mettant le tout sous forme de tableau ou en ajoutant un filtre en ayant sélectionner les en-tête, cela ne convient pas ?

C'est exactement ce que je fais aujourd'hui (mon "vrai" tableau fait 3000 lignes avec x niveaux), je décoche le niveau que je souhaite garder et supprime le reste, je fais enregistrer sous, ré ouvre le tableau avec tout les niveaux (3000 lignes) et refait la même chose à chaque fois.

En tous je dois créer 60 fichiers niveaux par niveaux...

Mmm je ne sais pas s'il y a une méthode plus rapide "Manuelle", le filtre avancé, tu tappes dans une cellule le nom de la société puis tu lance la recherche (enregistrer la procédure sous une macro puis la lier à un bouton), ce n'est pas forcément le plus rapide et tu n'est pas à l'abri d'une erreur de frappe. Je ne sais pas non plus si faire une macro qui fais un filtre différent sur 60 feuilles est vraiment utile (3000 lignes sur 60 feuilles, la macro risque de prendre un moment).

Même en faisant une comparaison sur la colonne et à chaque fois qu'il trouve une valeur différente, il fait une copie du tableau original, le colle et Filtre par rapport à la nouvelle. Le fichier risque d'être lourd et il sera difficile de navifuer correctement dessus ...

Dan42153 a écrit :

Quel besoin de supprimer les infos après l'application du filtre ? Ou autrement dit, pourquoi copier les données dans une nouvelle feuille ? Cela doit correspondre à une utilisation particulière, non ?

A + Daniel

En fait, un niveau correspond à un service, je dois découper ce fichiers de 3000 lignes et envoyer chaque communications à chaque service. Ils n'ont pas à savoir la consommation du voisin...


C'est peine perdu alors?

Ben, tu peux toujours essayer le filtre avancé, assisté par une macro, avec des données de validation sur les critères pour limiter les risques d'erreurs de frappe...

C'est pas la pire des solutions ni à mettre en place, ni à exécuter, et en tout cas tu ne risques rien d'essayer...

Bonsoir le forum

berty42, pour ne pas faire une bétise, place ton fichier dans un dossier à part.

Dans un module standard, cette macro :

Je me suis appuyé sur la colonne 7, pour détecter les doublons et donc nommer chaque classeur.

car la colonne 6 contient des slashs caractère non accepté pour nommer un classeur, cela beuguerait.

Sub Creation_classeurs()
Dim rng As Range, i As Long, e, wb As Workbook
    Application.ScreenUpdating = False
    Set rng = Sheets("Feuil1").Range("a4").CurrentRegion
    With CreateObject("Scripting.Dictionary")
        .CompareMode = 1
        For i = 2 To rng.Rows.Count
            If Not .exists(rng.Cells(i, 7).Value) Then
                Set .Item(rng.Cells(i, 7).Value) = _
                Union(rng.Rows(1), rng.Rows(i))
            Else
                Set .Item(rng.Cells(i, 7).Value) = _
                Union(.Item(rng.Cells(i, 7).Value), rng.Rows(i))
            End If
        Next
        For Each e In .keys
            Set wb = Workbooks.Add
            .Item(e).Copy wb.Sheets(1).Cells(1)
            wb.SaveAs ThisWorkbook.Path & "\" & e & ".xlsx"
            wb.Close False
        Next
    End With
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub

Précision : pas de cellules vides dans la colonne 7, sinon rajouter une condition dans le code

klin89

Bonjour,

Merci Klin89 pour ta macro, mais comme je le disais dans mon premier post, je suis novice du coup je ne sais pas ou copier ta macro... tu vois a quel point je débute???

Bonjour,

J'ai "essayé" de faire un schéma

La première diapo c'est si tu n'a pas l'onglet développeur dans ton ruban, les deux autre pour placer et utiliser une macro. (elles sont à l'envers, je sais pas pourquoi, la dernière est la première, la première la dernière ...)

tutomacro1 tutomacro2 tutomacro3

Merci Thimothe.

Du coup j'ai suivi ton tuto et j'ai ces deux messages...

sans titre sans titre1

J'ai utilisé la macro, normalement la ligne qui bug chez toi, c'est celle qui enregistre les fichiers (triés) au même endroit que ton classeur qui a lancé la macro.

Par exemple : (j'ai téléchargé ton fichier) mon chemin est C:\Users\urvoyt\Downloads

Sur ce dossier il y a les fichiers enregistrés avec le numéro du centre (255, 7199609, 9699093, 43961654).

As tu remplis la cellule vide colonne 7 comme le disait Klin89 ? (c'est peut être que tu essaies de sauvegarder avec un nom vide ?)

Je pense que c'est ça, la même ligne qui bug si la cellule G2 reste vide

et le code a fait le tri et s'arrète avant de sauvegarder

bonjour

un essai pour les privés de vba et pour moins de 1000 lignes

37berty33.xlsx (15.87 Ko)

cordialement

Re à tous

Effectivement que renvoie la variable e, fait aussi attention aux caractères invalides

Le code réajusté en s'appuyant sur la colonne 6 :

Sub Creation_classeurs1()
Dim rng As Range, i As Long, e, wb As Workbook
    Application.ScreenUpdating = False
    Set rng = Sheets("Feuil1").Range("a4").CurrentRegion
    With CreateObject("Scripting.Dictionary")
        .CompareMode = 1
        For i = 2 To rng.Rows.Count
            If Not .exists(rng.Cells(i, 6).Value) Then
                Set .Item(rng.Cells(i, 6).Value) = _
                Union(rng.Rows(1), rng.Rows(i))
            Else
                Set .Item(rng.Cells(i, 6).Value) = _
                Union(.Item(rng.Cells(i, 6).Value), rng.Rows(i))
            End If
        Next
        For Each e In .keys
            Set wb = Workbooks.Add
            .Item(e).Copy wb.Sheets(1).Cells(1)
            wb.SaveAs ThisWorkbook.Path & "\" & Replace(e, "/", "-") & ".xlsx"
            wb.Close False
        Next
    End With
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub

klin89

Bonjour,

Klin89 je suis désolé mais je n'y arrive pas, je fais tout comme tu m'as dit mais une fois la macro recopier je n'ai rien de plus dans mon fichier...

Tulipe_4 c'es une macro que tu as fait car ton système fonctionne très bien mais pour le reproduire à plus grande échelle je suis bloqué.

Je suis novice dsl...

bonjour

tout depend de la taille de l'echelle car apres ça rame

En general l'utilisation de formules tient la route jusqu'a environ 1000lignes pas plus

le mieux c'est quand meme par VBA

1) pour faire la liste

regarde dans (Données >validation ( apres avoir selectionné la cel de choix ) >>>il y aura = un nom "nivo"

2)ce nom tu va le retrouver dans gestionnaire de nom (nivo;bdd;.....)

3)les noms donnés( grace a definir un nom) sont utilisés dans la formule matricielle dupliquée

la formule est basée sur le principe de tri de n° de ligne qui correspondent au critere :si ok >>>le n° ,sinon rien

cordialement

la formule est matricielle => valider en faisant Ctrl Maj Entrée les 3touches en meme temp ; les {} se mettent automatiquement (sinon cela ne marcche plus)

cordialement

Merci pour ta réponse.

J'ai regardé et cherché ce que tu m'as dit, mais j'avoue ne pas comprendre et trouver les choses.

Je crois que ce n'est pas pour moi les macros, ça me saoule...

re

dans mes reponses il n'y a pas de macro

cliques sur une cellule du tablo et tu verras la formule

cordialement

en parlant de" soulé" qui s'ecrit "saoulé" jette un oeil sur le sulet de ROSA

Rechercher des sujets similaires à "rechercher valeurs"