IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Rapprochement entre 1 offre d'emploi et des demandeurs d'emploi via un code métier


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Rapprochement entre 1 offre d'emploi et des demandeurs d'emploi via un code métier
    Bonjour,

    Je découvre ce site qui est plein de ressources.

    Merci à tous les contributeurs pour toutes les solutions qui sont proposées ici.

    J'ai pu avancer un petit peu sur le problème que je dois résoudre.

    Voilà le problème que je dois résoudre :

    feuille 1
    monteur 11259
    serveur 12586
    mécanicien 14589
    jardinier 13259
    maçon 12601


    feuille 2
    12586 paul
    14589 marie
    13259 philippe
    11259 luc
    11259 rené


    Résultats attendus dans la feuille 1


    monteur 11259 luc (col.c) rene (col.e)
    serveur 12586 paul
    mécanicien 14589 marie
    jardinier 13259 philippe
    maçon 12601

    Explication : il s'agit d'un rapprochement entre des demandes d'emploi et des offres d'emploi, j'aimerais

    obtenir en face de chaque offre d'emploi de la feuille 1 la liste des prénoms des demandeurs d'emploi de la

    feuille 2 en faisant un rapprochement entre l'offre et le demandeur via le code métier.

    J'ai trouvé cette formule :
    (colonne C) =RECHERCHEV(B1;profil;2;FAUX) où profil est le nom de la liste de la feuille 2

    Le hic c'est que pour le code 11259, j'amerais obtenir TOUS les prénoms des demandeurs et pas seulement le 1er

    prénom identifié par la formule dans la feuille 2.

    Idéalement, j'aimerais que tous les prénom des demandeurs soient dans la feuille 1 sur la même ligne que

    l'offre qui concerne leur code métier, avec une colonne de séparation entre chaque prénom pour insérer un

    commentaire.

    Je ne sais pas si c'est possible...

    D'avance; merci pour votre aide.

  2. #2
    Membre actif
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Points : 283
    Points
    283
    Par défaut
    Je pense que c'est tout à fait possible, je pense que c'est plus simple de le faire en Vba, ça dépend de ce que tu veux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub Tri()
    Dim DerligF1 As Long, DerligF2 As Long, ColDroite As Long
    Dim F1 As Worksheet, F2 As Worksheet
    Dim Numero As Variant
    Dim Plage As Range, Trouve As Range
    Dim Prénom As String
     
    Set F1 = ThisWorkbook.Worksheets("Feuil1")
    Set F2 = ThisWorkbook.Worksheets("Feuil2")
     
    DerligF2 = F2.Range("A65536").End(xlUp).Row
    DerligF1 = F1.Range("A65536").End(xlUp).Row
    Set Plage = F1.Range("B1", "B" & DerligF1)
     
    For i = 1 To DerligF2
     
    Numero = F2.Cells(i, 1).Value
    Prénom = F2.Cells(i, 2).Value
     
    Set Trouve = Plage.Find(Numero, LookIn:=xlValues, SearchOrder:=xlByColumns)
    'MsgBox (Trouve.Address)
    If Not Trouve Is Nothing Then
     
    ColDroite = F1.Cells(Trouve.Row, 100).End(xlToLeft).Column + 2
    F1.Cells(Trouve.Row, ColDroite).Value = Prénom
     
    End If
     
    Next i
     
    End Sub

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    hello diude54,

    Merci pour ton aide. J'ai essayé d'utiliser le code en le copiant dans le module 1 de mon classeur. Ca n'a pas fonctionné.

    J'ai mis une PJ une archive avec une copie d'écran et le fichier excel.

    Je travaille avec une version anglaise d'Excel 7, peut-être que l'erreur de script vient de là?

    Merci pour ton aide.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre actif
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Points : 283
    Points
    283
    Par défaut
    Bonjour,
    J'ai téléchargé le fichier que tu donnes, j'ai copié la macro dans un module et ça fonctionne.
    Je suis sous excel 2007, mais ce code devrait fonctionner sous 97-2003 toute langues confondues.
    Pourrais tu indiquer quelle ligne du code plante (si tu lance la macro et que ça plante, clic sur debogage et regarde quelle ligne s'affiche en jaune).

    En regardant l'image que tu donnes, je me rend compte que tu n'a pas mis le code dans un module de exemple2 mais dans un module de Perso.
    Du coup si dans Perso tes feuilles sont nommées differement c'est normal que ça ne fonctionne pas. J'annote le code pour que tu puisse adapter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub Tri()
    Dim DerligF1 As Long, DerligF2 As Long, ColDroite As Long
    Dim F1 As Worksheet, F2 As Worksheet
    Dim Numero As Variant
    Dim Plage As Range, Trouve As Range
    Dim Prénom As String
     
    Set F1 = ThisWorkbook.Worksheets("Feuil1") 'Défini la feuille ou l'on va remplir les noms, dans ce cas elle s'appelle Feuil1(à changer si ce n'est pas le cas)
    Set F2 = ThisWorkbook.Worksheets("Feuil2") 'défini la feuille ou il y a les noms et les numeros, dans ce cas elle s'appelle  Feuil2 (à changer si ce n'est pas le cas)
     
    DerligF2 = F2.Range("A65536").End(xlUp).Row 'Recherche la dernière ligne de la colonne A de F2
    DerligF1 = F1.Range("A65536").End(xlUp).Row 'Recherche la dernière ligne de la colonne A de F2
    Set Plage = F1.Range("B1", "B" & DerligF1) 'Défini la plage ou figurent les numéros dans F1
     
    For i = 1 To DerligF2 'Boucle qui part de 1 jusqu'a la dernière ligne de F2
     
    Numero = F2.Cells(i, 1).Value 'Le le numéro situé dans la cellule ligne i, colonne 1
    Prénom = F2.Cells(i, 2).Value 'Le Prénom figurant dans la cellule ligne i et colonne 2
     
    Set Trouve = Plage.Find(Numero, LookIn:=xlValues, SearchOrder:=xlByColumns) 'Recherche le Numéro correspondant dans F1
    If Not Trouve Is Nothing Then 'Si il trouve le numéro alors
     
    ColDroite = F1.Cells(Trouve.Row, 100).End(xlToLeft).Column + 2 'recherche la colonne la plus à droite, et se décale de 2 (pour laisser un espace commentaires)
    F1.Cells(Trouve.Row, ColDroite).Value = Prénom Inscrit le prénom
     
    End If
     
    Next i 'Passe à la ligne suivante
     
    End Sub
    Si tu ne parviens pas à adapter et que tu ne veux pas donner ton fichier original, donne moi les noms des feuilles, et dans ces feuilles sur quelles colonnes se trouvent les infos.
    Bon courage


    EDIT:

    Une autre solution pour nommer les feuilles est de donner leur indice:
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets(1)
    Worksheets(2)
    Pour avoir les indices de tes feuilles regarde dans l'éditeur VBA , dans la partie gauche figurent tes feuilles:

    Ici l'indice de la feuille est 1 et le nom est Feuil2

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup, ça fonctionne très bien en créant le module dans le bon calques ;-)

    C'est très sympathique d'avoir mis l'explication du code après les guillemets. du coup je me suis pris au jeu pour comprendre la logique du script (je n'ai jamais fait de VBA)

    Je vais mettre en pratique ce script lundi. Je te tiens au courant pour te dire si ça marche bien.

    Encore merci.

  6. #6
    Membre actif
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Points : 283
    Points
    283
    Par défaut
    De rien
    Pense à mettre ton sujet en résolu en cliquant sur la balise

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. La rubrique emploi contient des offres sans rapport
    Par rmaker dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 0
    Dernier message: 02/10/2013, 12h30
  2. Auto perecption des demandeurs d'emploi, étude
    Par julienne dans le forum Interviews
    Réponses: 2
    Dernier message: 08/08/2011, 13h35
  3. [AC-2000] Rapprochement entre des montants et leur somme
    Par busymante dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 19/02/2010, 17h35
  4. [Emploi] salaire des employés Hotline ?
    Par Agité dans le forum Salaires
    Réponses: 18
    Dernier message: 14/06/2006, 22h00
  5. rapprochement entre deux tables
    Par nassu dans le forum Access
    Réponses: 14
    Dernier message: 09/04/2006, 09h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo