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

Macros et VBA Excel Discussion :

Recherche d'un nom dans une plage puis renvoi


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Recherche d'un nom dans une plage puis renvoi
    Bonjour,
    je suis novice dans ce forum.
    après plusieurs recherches, je ne trouve pas comment faire.
    il s'agit d'un tableau de planification.
    des nompros, des nomsimple, des activités,en fonction d'horaires
    sur une feuille 1, j'ai des nomsimple en ligne (ligne1) ou l'on indique un nompros en fonction des heures (colonne A).
    sur une feuille2, je souhaite qu'apparaisse pour chaque nompros (ligne1), le nomsimple qui a été detecté pour la plage de chaque horaire.
    autrement dit,
    s'il xl detecte en feuille 1 le nompros sur une plage horaire, il reporte sur la feuille 2, le nomsimple correspondant.
    ce qui fait que sur la feuille 1, j'ai le planning des nomsimples et sur la feuille 2, j'aurais le planning des nompros;
    j'ai commencer cela mais n'est qu'un début.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub montexte ()
    Dim plage as range
    Set plage = thisworkbook.worksheets("Feuil1").range("a1:a50")
    Montexte = Feuil2 !A5 'adefinir suivant la recherche
    For each cell in plage
    If cell.value = Montexte then
    Msgbox cell.address & " est l' adresse du nom: " & cell.value
    Cellule.Offset(-3, 0).Select
    End if

    merci pour vos lumières.

    cdlt

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour,

    Est-ce que tes nompros sont uniques ? Si oui, une rechercheV suffirait si j'ai bien compris ton problème.

    Cordialement,
    Kimy

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci Kimy pour ta suggestion,
    mais comme j'ai environ 30 nompros et 50 nomsimple, je n'ai pas réussi avec recherchv.
    Xl doit donc rechercher pour chaque cellule de chaque ligne horaire de la feuille 1, si un nom de la ligne1 de la feuille 2 correspond. et indiquer alors le nomsimple correspondant dans la bonne cellule horaire de la feuille 2, .
    du coup, je ne sais quelle sont les formules les plus adéquat et quel système utilisé (recherche sur toute la plage ou une boucle qui test chaque cellule enincrementation)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .find
    cellule.offset
    Rg.Address
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub bingo()
    Dim Rg As Range, Qui As String, Plage As String
    Qui = Sheets("Pros").Cells(1, 3)
    Plage = Sheets("Patients").Range("C3:Z3")
    Set Rg = Range(Plage).Find(Qui)
    If Not Rg Is Nothing Then ????
    avec ça, je ne sais pas si ça marche et comment aller inclure le trouvé dans la bonne cellule de la feuille2
    je suis largué
    Merci

  4. #4
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut recherche d'un nom dans une plage
    Bonjour,

    Ta ligne 1 n'est pas claire pour moi.

    Peux-tu joindre un fichier purgé des données confidentielles?

    Cordialement,

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut exemple du fichier et re test
    bonjour
    bonne année à tous,

    ci joint le doc exl en construction et ce que j'ai modifié.

    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
    Sub copie_nom()
    Dim colpat As Range
    Dim nomcherche as Range
    Dim nompros as range
    Nompros = sheets (“Pros”).range (“A1:AL1”)
    Colpat = sheets(“Patients”).Range (“C1:C80”)
    Set nomcherche = colpat.find(nompros,lookat:=x1whole)
    If nomcherche is nothing then
    MsgBox “pas trouvé”, “tant pis!”
    Else worksheets(“Patients”).range(nomcherche, nomcherche).copy
    worksheets(“Pros”).range(nomcherche, nomcherche).paste
    msgbox”fait!”
    end if
    set nomcherche=nothing
    endsub
    mais rien ne se passe .

    en plus, je ne fais une recherche que dans la premiere colonne sur tous les noms pros de la 2eme feuille.
    a terme, je dois faire une boucle pour le faire dans chaque colonne (ou chaque cellule en fait).
    merci pour vos idées.

    cordialement
    Fichiers attachés Fichiers attachés

  6. #6
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut recherche d'un nom dans une plage
    Bonjour,

    Désolé, mais le problème est trop compliqué pour moi avec la structure de fichier proposé.

    Je pense que la feuille patient n'est pas bien conçu (ce n'est que mon avis).

    En lieu et place de "patient N° " j'aurais mis "salle N° " et inversement "lieu" deviendrait "patient"

    Ce faisant la feuille "lieu" n'a plus de raison d'être.
    Je te laisse méditer sur ces commentaires.

    Enfin, j'ajoute qu'il serait infiniment plus rentable :
    - d'avoir une feuille "base de donnée" qui recevrait l'ensemble des informations.
    - tirer, à partir de cette base, tous les tableaux croisés dynamiques que tu peux souhaiter.

    Peut-être un autre intervenant pensera-t-il différemment.

    Cordialement,

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Hello nibledispo,
    et merci de t etre penché sur le probleme.

    pour tes dernieres remarques, la difficultés justement c'est que le premier onglet patient est exploiter tel quel. c'est celui la qui sert de base sur lequel tout est inscrit au départ: pro, activité et salle (et cela change chaque semaine).
    la solution d'inverser des colonnes ou d'avoir des données ailleurs rend caduc l'objectif d'une planification globale.

    je pense avec le temps qui passe que je devrais peut etre commencer par poser correctement un algorithme pour voir ou je vais.
    car là, les différentes solutions trouvées correspondent a des etapes de mon probleme, mais sans lien.

    si vous avez quelques conseils a donner sur la preparation d'algorythmes, je suis preneur.

    merci

  8. #8
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut recherche d'un nom dans une plage
    Bonjour,

    Si la feuille patient est la base de tout c'est une raison supplémentaire pour l'optimiser.
    Modifier la structure n’enlève rien à la qualité de l'information dès lors qu'aucune donnée ne disparait.

    Actuellement tu as une feuille qui traine en longueur (de patients) et comportera donc de nombreux vides sauf peut-être si un patient donné passe dans toutes les mains pros, toutes les salles et chaque jour que Dieu fait. Celui là, s'il existe, mérite vraiment d'être appelé patient.

    Par ailleurs, je suppose que patient 1, 2, 3 .... sont des codes qui renvoient à une fiche du patient en question. car si ce sont des noms, il reste à espérer qu'il n'y ait pas deux patronymes identiques.

    Je te souhaite que quelqu'un réponde à ton problème tel qu'il est posé.

    Cordialement,

Discussions similaires

  1. [XL-2010] Recherche cellules non-vides dans une plage
    Par celinepug dans le forum Excel
    Réponses: 7
    Dernier message: 16/02/2015, 13h50
  2. Rechercher plage dans une colonne puis supprimer doublon
    Par vr_brandon dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/10/2011, 11h20
  3. [XL-MAC 2011] Rechercher le nombre d'initiales de noms dans une plage
    Par gcroset dans le forum Excel
    Réponses: 5
    Dernier message: 16/09/2011, 18h28
  4. recherche dans une plage dans des fichiers fermés
    Par kikuyu dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/04/2008, 10h20
  5. [date] Recherche dans une plage de dates
    Par astro84 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/06/2005, 17h13

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