[excel] Aide recherche

Résolu
perrus53 Messages postés 1024 Statut Membre -  
perrus53 Messages postés 1024 Statut Membre -
Bonjour,
Pour poursuivre sur un topic qui a été verouillé, j'ai besoin d'un coup de main pour excel.
Le fichier qui pose probleme est ici: http://www.cijoint.fr/cjlink.php?file=cj200806/cij8j1VDiR.zip
Je souhaite que quand je selectionne une option dans la cellule F5 de la feuille "vehicules", les cellules G5 et H5 se remplissent en fonction des données situés dans les colonnes B,G et H de la feuille "Hommes"; qui biensur oblige a faire une recherche, j'ai esayé mais pas reussi.
Ensuite je souhaite utiliser les données correspondant a la colonne A de la feuille vehicule pour les remettre dans la bonne ligne dans la feuille hommes, colonne I
En esperant avoie été clair...
--
Acquerrir un savoir c'est bien, le partager c'est mieux.
Ne pas oublier de mettre en resolu une fois le probleme resolu, pour aider les autres!!!
Configuration: Windows XP
Internet Explorer 7.0

13 réponses

  1. Raymond PENTIER Messages postés 58219 Date d'inscription   Statut Contributeur Dernière intervention   17 485
     
    Salut.

    Ta formule en J11 comporte 3 erreurs :
    1) la matrice de recherche est mal choisie ; tu as choisi J1:K9 de l'onglet Vehicules, alors que les données sont stockées dans l'onglet Hommes ; il faut y ajouter le nom "Pompier" pour la zone B4:H53
    2) tu fais appel à la colonne 11, alors que pour la cellule G5 (spé.1) il faut appeler la sixième colonne de la matrice "Pompier", et la septième pour la cellule H5 (spé.2)
    3) il vaut mieux mettre FAUX au lieu de VRAI, car tu n'es jamais sûr que ta liste de référence en première colonne (colonne B) est bien triée

    En G5 la bonne formule est =RECHERCHEV(F5;Pompier;6;0)
    En H5 la bonne formule est =RECHERCHEV(F5;Pompier;7;0)

    Attention : Si la liste des pompiers est complétée, s'assurer que la matrice "Pompier" englobe tout le monde !
    0
  2. Raymond PENTIER Messages postés 58219 Date d'inscription   Statut Contributeur Dernière intervention   17 485
     
    "Ensuite je souhaite utiliser les données correspondant a la colonne A de la feuille vehicule pour les remettre dans la bonne ligne dans la feuille hommes, colonne I "

    Là, je n'ai pas compris ce que tu cherches à faire ...
    0
  3. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310
     
    Bonjour Perrus, merci pour ce cas pratique sur des camions de pompiers !
    Bonjour Raymond, comment vont les Antilles ?
    il me semble que la seconde question consiste à rapatrier dans Hommes!I4 le véhicule de chaque pompier.
    Cette formule devrait faire l'affaire :
    I4 =INDEX(Vehicules!A:A;EQUIV(B4;Vehicules!F:F;0))
    pour éviter les #N/A :
    I4 =SI(ESTNA(EQUIV(B4;Vehicules!F:F;0));"-";INDEX(Vehicules!A:A;EQUIV(B4;Vehicules!F:F;0)))
    I.
    0
  4. perrus53 Messages postés 1024 Statut Membre 223
     
    Deja, merci de votre aide!!
    Pour raymond, merci, mais sa met met #NOM? dans la cellule G5, et pareil en H5
    Pour Ivan, meme probleme :S (si je place le pompier dans un vehicule, sinon "-")
    Pour info, cliquez sur la banniere ou c'est ecrit "Secteur 18", vous n'allez pas etre decu!!
    0
    1. Raymond PENTIER Messages postés 58219 Date d'inscription   Statut Contributeur Dernière intervention   17 485
       
      Tu as certainement mal sélectionné ta matrice pour la nommer.
      Fais-moi voir la version actuelle de ton fichier.
      0
      1. perrus53 Messages postés 1024 Statut Membre 223 > Raymond PENTIER Messages postés 58219 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Voila: http://www.cijoint.fr/cjlink.php?file=cj200806/cijm7ulika.zip.
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. perrus53 Messages postés 1024 Statut Membre 223
     
    Sinon j'ai une macro qui ne fonctionne pas
    voici le bout de code qui ne marche pas:
    Cette macro est sur la feuille Budget, et cette partie doit agir sur la feuille "hommes"

    Sheets("Hommes").Select
    Dim lmax As Long, lmax1 As Long
    Dim cel As Range
    ' recherche dernière ligne
    lmax = [C65536].End(xlUp).Row
    lmax1 = [D65536].End(xlUp).Row
    If lmax1 > lmax Then lmax = lmax1
    lmax1 = [E65536].End(xlUp).Row
    If lmax1 > lmax Then lmax = lmax1
    If lmax = 1 Then Exit Sub
    ' decrémenter cellules
    'moral
    For Each cel In Range("C4:C" & lmax)
    If IsNumeric(cel) And cel > 0 Then cel.Value = cel.Value - 0.02
    Next cel
    'santé'
    For Each cel In Range("D4:D" & lmax)
    If IsNumeric(cel) And cel > 0 Then cel.Value = cel.Value - 0.03
    Next cel


    Merci
    0
  7. de passage
     
    Attention : Si la liste des pompiers est complétée, s'assurer que la matrice "Pompier" englobe tout le monde !

    Faut peut-être lire de temps en temps ce qui est écrit...
    0
  8. perrus53 Messages postés 1024 Statut Membre 223
     
    Ok, maintenant j'ai #N/A dans G5 et H5 de la feuilles "vehicules"
    Toujours un probleme avec la formule d'ivan
    Et pour la macro?
    0
  9. perrus53 Messages postés 1024 Statut Membre 223
     
    Personne pour m'aider?
    0
  10. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310
     
    Bonjour Perrus,
    1°) pour les formules en Véhicules!G5 et Véhicules!H5
    je te promets que la formule donnée par Raymond est la bonne, mais il faut bien définir la zone Pompier (B4:H53)
    Pour ne pas avoir à la modifier quand tu rajoutes des pompiers, définis-la comme Hommes!B:H
    Sinon, modifie les formules comme suit :
    Véhicules!G5 = RECHERCHEV($F5;Hommes!$B:$H;6;FAUX)
    Véhicules!H5 = RECHERCHEV($F5;Hommes!$B:$H;7;FAUX)

    2°) pour la formule en Hommes!I4 qui rappelle le véhicule de chaque pompier, reprend celle donnée dans le post 3.
    Attention : quand on fait un copier/coller à partir de CCM, parfois, il y a des caractères indésirables qu apparaissent. C'est sans doute ce qui s'est passé.
    Vérifie bien la dernière partie de ta formule : à la fin tu as -F:(F) au lieu de F:F

    3°) quant à ton bout de code, il marche très bien chez moi : il m'a baissé le moral de tous mes pompiers de 2 points, et leur santé de 3 points.
    Peux-tu préciser le problème que tu as avec ce code ?

    4°) ton site Secteur 18 a l'air super ! Mais je n'ai pas trouvé comment participer au bal des pompiers ;-)
    A suivre...
    0
  11. Raymond PENTIER Messages postés 58219 Date d'inscription   Statut Contributeur Dernière intervention   17 485
     
    Bonjour, perrus53.
    Dans mon post 1 je t'indique :
    " 1) la matrice de recherche est mal choisie ; tu as choisi J1:K9 de l'onglet Vehicules, alors que les données sont stockées dans l'onglet Hommes ; il faut y ajouter le nom "Pompier" pour la zone B4:H53 "
    Or, pour une raison qui m'échappe, c'est à la colonne H:H que tu donnes ce nom !
    La matrice est un tableau dans lequel en colonne 1 on a le critère de recherche, et dans les autres colonnes sont stockées les données à récupérer.
    Comment veux-tu qu'Excel trouve la colonne 6 d'un tableau qui n'a qu'une colonne, ou retrouve ton critère de recherche "Audrey" dans une colonne H:H qui ne contient que tes formules de RECHERCHEV ?
    0
  12. perrus53 Messages postés 1024 Statut Membre 223
     
    ok merci beaucoup de m'avoir aidé; je n'avais pas compris le systeme de matrice, et je lisai mal; desolé
    Pour la recherche sa fonctionne (pour les deux), mais la macro est placée dans la feuille budget (bouton changement de jour), mais elle agit sur cette feuille alors qu'elle devrait agir dans pompiers
    Un enorme merci pour votre patience!!
    0
  13. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310
     
    Salut Perrus,
    pour ta macro qui agit sur Budget au lieu de Hommes, essaie donc avec les modifications suivantes (en faisant systématiquement référence à la feuille Hommes avec With Sheets("Hommes") ... End With) . N'oublie pas le point rajouté avant chaque Range.

    Private Sub CommandButton2_Click()
    'argent'
    [c8] = [c9].Value
    'date'
    Range("G12").Formula = "=NOW()"
    'moral+santé'
    With Sheets("Hommes")
        .Select
     Dim lmax As Long, lmax1 As Long
     Dim cel As Range
        ' recherche dernière ligne
        lmax = .[C65536].End(xlUp).Row
        lmax1 = .[D65536].End(xlUp).Row
        If lmax1 > lmax Then lmax = lmax1
        lmax1 = .[E65536].End(xlUp).Row
        If lmax1 > lmax Then lmax = lmax1
        If lmax = 1 Then Exit Sub
        ' decrémenter cellules
            'moral
        For Each cel In .Range("C4:C" & lmax)
            If IsNumeric(cel) And cel > 0 Then cel.Value = cel.Value - 0.02
        Next cel
        'santé'
        For Each cel In .Range("D4:D" & lmax)
            If IsNumeric(cel) And cel > 0 Then cel.Value = cel.Value - 0.03
        Next cel
    End With
    
    End Sub
    0
    1. perrus53 Messages postés 1024 Statut Membre 223
       
      Ok merci pour les deux (l'explication et la solution!!)
      C'est mieu, comme sa je comprends ce que je tape, et c'est mieu pour reutiliser ensuite.
      J'essaie ce soir, en attendant je met en resolu!!
      0
  14. perrus53 Messages postés 1024 Statut Membre 223
     
    Sa fonctionne impecable!!
    Merci beaucoup!!
    Rendez vous sur http://secteur18.com !!
    0