• Publicité

Recherche Excel

Dans ce forum, vous pouvez poser toutes vos questions concernant l'utilisation de logiciels de bureautique (Microsoft Office, Open Office, etc.)

Modérateurs: Sebastien, Stéphane, Christophe

Recherche Excel

Messagepar Emilie388 » 29 Jan 2016 15:26

Bonjour,

J'ai un classeur avec plusieurs feuilles dont plusieurs que j'aimerais "lier" !
Sur la feuil 1 j'ai des noms, prénoms, statuts et une colonne (la 5)avec des croix.
Je souhaiterais retrouver dans la feuille 2 uniquement les noms des personnes qui ont une croix en colonne 5.

Mais (pour compliquer la chose) que si je rajoute des personnes (avec une croix dans la colonne 5) elles se mettent à la suite...

J'espère avoir été clair et que vous avez pleins de solutions à me proposer (si possible autre que macro !!!!)

Merci,
Emilie388
No0b
No0b
 
Messages: 3
Enregistré le: 29 Jan 2016 15:20

Re: Recherche Excel

Messagepar Sebastien » 29 Jan 2016 21:22

Bonjour,

Emilie388 a écrit:Mais (pour compliquer la chose) que si je rajoute des personnes (avec une croix dans la colonne 5) elles se mettent à la suite...

Le fait d'ajouter les données "à la suite" est assez complexe. Cela signifie que si vous mettez une croix sur une ligne, elle doit être ajoutée à la fin de votre exportation, peu importe sa place dans le tableau d'origine.

Une solution qui pourrait être envisagée, ça serait de créer une macro événementielle qui exporterait votre liste via un filtre élaboré.
Qu'est-ce qu'un filtre élaboré ? : voir http://philippetulliez.developpez.com/tutoriels/advancedfilter/

L'idée serait de créer une macro qui, dès que vous afficheriez la page d'export, lancerait la création du filtre avec votre croix. Par contre, les données seraient triées comme un filtre classique.

Avant que je me lance dans le codage de la macro, cette solution pourrait-elle convenir ?

Pourriez-vous également nous fournir un fichier exemple reprenant la structure de votre tableau, mais sans données confidentielles ou personnelles. Vous pouvez utiliser le site http://www.cjoint.com/ pour fournir un fichier Excel.

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5506
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Recherche Excel

Messagepar Emilie388 » 02 Fév 2016 13:28

Voilà le tableau (le 1er jet !)
http://www.cjoint.com/c/FBclaP1g33W

Donc de 01 à T1 je suis amené à mettre des croix, et je souhaiterais que les noms se mettent dans les feuilles du même nom.

Pour les macros pas de soucis, j'essayais de trouver une formule mais à priori trop complexe...
Emilie388
No0b
No0b
 
Messages: 3
Enregistré le: 29 Jan 2016 15:20

Re: Recherche Excel

Messagepar Sebastien » 03 Fév 2016 19:42

Bonjour,

J'ai regardé votre tableau et la solution que je proposais avec les filtres élaborés ne fonctionnera pas. En effet, avec un filtre élaboré, nous devrions conserver la même structure entre chaque onglet (ce qui n'est pas le cas de votre fichier) et en plus, le contenu des onglets serait réinitialisé à chaque ouverture (ce qui fait que vous ne pourriez pas saisir quoi que ce soit dans les onglets d’exportation).

Je vais tenter de trouver une autre solution mais ça sera à mon avis beaucoup plus complexe.

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5506
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Recherche Excel

Messagepar Sebastien » 04 Fév 2016 20:56

Bonjour,

Dans votre fichier, avez-vous la possibilité d'ajouter une colonne contenant un élément permettant d'identifier de façon unique une personne ? Par exemple un matricule ?
Le but serait de simplifier la recherche que la macro ferait pour reporter une personne sauf si elle est déjà présente dans l'un des onglets.

Par exemple, si vous cochez "COM", la macro doit vérifier si la personne n’est pas déjà dans le fichier (sinon il va y avoir des doublons).

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5506
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Recherche Excel

Messagepar Emilie388 » 05 Fév 2016 16:30

Bonjour,

Oui je peux tout à fait renseigner leur matricule.

merci encore,
Emilie388
No0b
No0b
 
Messages: 3
Enregistré le: 29 Jan 2016 15:20

Re: Recherche Excel

Messagepar Sebastien » 05 Fév 2016 17:51

Bonjour,
Emilie388 a écrit:Oui je peux tout à fait renseigner leur matricule.

OK, ça va simplifier les choses. Je vais partir sur cette voie là.

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5506
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Recherche Excel

Messagepar Sebastien » 07 Fév 2016 15:49

Bonjour,

Ci-dessous une macro qui va enregistrer dans l'onglet "COM" les matricules, noms et prénoms des agents listés dans la feuille "AGENTS" et ayant une croix (X) dans la colonne "COM".
L'enregistrement se fait sauf si l'agent a déjà été enregistré dans la feuille "COM".

Regardez déjà si ça peut convenir. On verra pour l'adapter au autres cas et onglets.

J'ai documenté le code de la macro pour expliquer son fonctionnement :
Code: Tout sélectionner
Sub Macro_COM()
'
'Macro de transfert vers l'onglet "COM"
'
Dim nom, prenom, matricule, IS_COM, TEST_COM As String
Dim baseCOM As Range

'Sélection de la feuille "AGENTS" et de la première cellule à vérifier
Sheets("AGENTS").Select
Range("A2").Select

'Boucle : Traitement de toutes les lignes présentes
Do While ActiveCell.Value <> ""

'Enregistrement des variables
matricule = ActiveCell.Value
nom = ActiveCell.Offset(0, 1).Value
prenom = ActiveCell.Offset(0, 2).Value
IS_COM = ActiveCell.Offset(0, 15).Value

'Vérification de IS_COM
'Si IS_COM contient un "X"
If IS_COM = "X" Then

    'On vérifie si des noms sont déja présents dans la feuille COM
    'Si la Feuille "COM" n'a pas encore de nom dans la liste (A6 est vide)
    If Worksheets("COM").Range("A6").Value = "" Then
        'On enregistre le matricule, nom et prénom
        Worksheets("COM").Range("A6").Value = matricule
        Worksheets("COM").Range("B6").Value = nom
        Worksheets("COM").Range("C6").Value = prenom
    'Si des noms sont déjà enregistrés dans la Feuille "COM"
    Else
        'On repère les matricules déjà présents dans la feuille "COM"
        Set baseCOM = Worksheets("COM").Range("A6", Worksheets("COM").Range("A10000").End(xlUp).Offset(1, 0))
        'On vérifie si le matricule est déjà présent dans la liste
        If Not IsError(Application.Match(matricule, baseCOM, 0)) Then
        'Le matricule est déjà présent, on ne l'enregistre pas
        Else
        'Le matricule n'est pas présent, on enregistre les informations
            Worksheets("COM").Range("A65536").End(xlUp).Offset(1, 0).Value = matricule
            Worksheets("COM").Range("A65536").End(xlUp).Offset(0, 1).Value = nom
            Worksheets("COM").Range("A65536").End(xlUp).Offset(0, 2).Value = prenom
        End If
    End If


'SI IS_COM ne contient pas de croix, on ne fait rien
Else

End If

'On passe à la ligne suivante
ActiveCell.Offset(1, 0).Select

'On relance la boucle
Loop
 
End Sub


Le fichier Excel avec la macro :
https://www.astucesinternet.com/data/images_forum/Suivi-agents-test-v0.zip

Pour faire fonctionner la macro : lancez la macro nommée "Macro_COM".

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5506
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Recherche Excel

Messagepar anonymous9 » 09 Mar 2016 17:46

Bonjour,

À mon avis un simple tableau croisé dynamique suffit.
anonymous9
No0b
No0b
 
Messages: 3
Enregistré le: 09 Mar 2016 15:57


Retourner vers Forum d'entraide : Bureautique

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités

  • Publicité