Récupération de données excel

Résolu
muzomax Messages postés 3 Statut Membre -  
muzomax Messages postés 3 Statut Membre -
Bonjour,

j'enregistre des données sur un fichier

1er colonne : date (rentré une fois par jour)
2e colonne : heure
3e colonne : résultat

je voudrais récuperer sur un 2 ème fichier les données pour 1 journée

avec RECHERCHEV, je n'arrive à obtenir qu'une seule valeur, celle où il y a la date

comment faire merci par calcul ou si il y a moyen avec une macro

merci
Configuration: Windows XP
Internet Explorer 7.0

8 réponses

  1. LePierre Messages postés 249 Statut Membre 338
     
    bonjour

    j'ai fais un test sur la même feuille avec les données en A13:C22 classées en colonne comme tu l'indiques.
    en E13 j'indique la date à rechercher
    en F13 tu écris la formule : =SI($E$13=A13;RECHERCHEV($E$13;A13:C22;2;FAUX);"")
    et en G13 : =SI($E$13=A13;RECHERCHEV($E$13;A13:C22;3;FAUX);"")
    ensuite tu recopies ces deux cellules vers le bas jusqu'à la ligne 22
    tu obtiens ainsi les réponses pour la journée choisie

    à plus
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Bonjour
      Petite remarque le Pierre.
      la formule fonctionne sans doute mais pour la tirer sur la hauteur , je pense qu'il faut bloquer les limites du champs dans l'item recherche , sinon il se décale à chaque ligne:
      RECHERCHEV($E$13;$A$13:$C$22;2;FAUX);"")
      Il suffira de rentrer cette formule en F13, de la tirer en G13, de remplacer en G13 le ;2 par ;3 et ensuite de tirer sur toute la hauteur
      CRDLMNT
      0
      1. LePierre Messages postés 249 Statut Membre 338 > Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention  
         
        bonjour

        non, il ne faut pas rendre l'adresse du tableau de données absolue.
        C'est ce qui permet d'avoir le résultat en face de la ligne concernée du tableau et de ne pas donner constament la première valeur valide du tableau
        à plus
        0
  2. muzomax
     
    Merci

    Mes données en fin d'année s'étale sur 3600 lignes d'analyses avec à peu près 200 dates différentes.

    sur un autre classeur j'ai une feuille journalière ou j'indique la date, sur cette feuille j'aimerais récupérer uniquement les valeurs pour ce jour.

    j'ai bien essayer d'adapter ta formule mais c'est chaud! je pense qu'il me faudrait une macro mais j'y connais pas grand chose

    merci quand même

    max
    0
  3. muzomax
     
    salut voici mon fichier j'ai tous rassemblé sur le même fichier

    je ne peux pas copier la formule jusqu'en bas en fin d'année j'aurais environ 3000 résultats

    à moins de pouvoir ensuite récupérer juste les 20 lignes au niveau de ma feuil1

    https://www.cjoint.com/?ejklVsblcf
    0
  4. muzomax
     
    salut voici mon fichier j'ai tous rassemblé sur le même fichier

    je ne peux pas copier la formule jusqu'en bas en fin d'année j'aurais environ 3000 résultats

    à moins de pouvoir ensuite récupérer juste les 20 lignes au niveau de ma feuil1

    https://www.cjoint.com/?ejklVsblcf
    0
    1. LePierre Messages postés 249 Statut Membre 338
       
      bonjour

      Voici ton fichier rectifié avec des macros :
      https://www.cjoint.com/?ekj7t64F7W

      Pour l'utiliser il faut indiquer une date et choisir un onglet à analyser (liste déroulante) car je pense que tu auras plusieurs type de produits à suivre
      ensuite appuie sur le bouton Synthèse

      contacte moi si tu souhaites des précisions

      à plus
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. muzomax
     
    Salut

    c'est tout bon sauf que j'aimerais avoir un peu plus d'explication pour pouvoir modifier

    en fait je dois rappatrier sur la feuille journalière les valeurs pour une date de chaque onglet (j'en aurais 7 différents) donc coller ces valeurs à un endroit différent

    En tout cas merci, c'est déjà un TRES grand pas

    max
    0
  7. muzomax Messages postés 3 Statut Membre
     
    ou alors plutot que de choisir l'onglet, faire plusieurs macro pour chaque onglet

    j'ai mis quasi tous les onglets dans le fichier suivant

    https://www.cjoint.com/?ekmScFGIqC

    juste faire une macro pour un onglet après je me débrouillerais,

    je te remercie
    0
    1. LePierre Messages postés 249 Statut Membre 338
       
      bonjour

      voici le code modifié :
      https://www.cjoint.com/?ekoMaoS1ih
      j'ai simplement ajouté une boucle do...loop pour lire la liste des onglets et réaliser la synthèse globale
      j'ai ajouté en colonne D le nom de l'onglet concerné pour chaque valeur (c'est peut être utile ?)
      à plus
      0
  8. muzomax
     
    T'es super cool et super bon en excel

    merci

    mais je te le redemande stp, tu peux pas me faire la macro pour un seul onglet (comme ça je n'aurais qu'à changer le nom de l'onglet dans VB pour changer), en fait chaque onglet est un fichier, j'ai tous mis dans le même fichier pour pouvoir expliquer mon problème.

    En tout cas, tu m'as déjà fait avancer énormément et je te remercie

    max
    0
    1. LePierre Messages postés 249 Statut Membre 338
       
      bonjour

      voici le code à personnaliser pour chaque onglet :
      Sub TriSelonDate2()
          '--------------------------------------------
          'identifier l'onglet
          OngletRecherche = "5 kg Amylacée"
          '--------------------------------------------
          
          Application.ScreenUpdating = False
          LigOng = 9
          ColOng = 12
          LigRes = 9
          ColRes = 1
          
          'Analyse
          Lig = 9
          Col = 2
          DateRecherche = Sheets("Résultats").Cells(3, 5).Value
          Sheets(OngletRecherche).Select
          
          Do
              DatEnCours = Cells(Lig, Col).Value
              If DatEnCours = "" Then Exit Do
              
              If DatEnCours = DateRecherche Then
                  Sheets("Résultats").Cells(LigRes, ColRes).Value = Cells(Lig, Col + 3).Value
                  Sheets("Résultats").Cells(LigRes, ColRes + 1).Value = Cells(Lig, Col + 4).Value
                  Sheets("Résultats").Cells(LigRes, ColRes + 2).Value = Cells(Lig, Col + 5).Value
                  Sheets("Résultats").Cells(LigRes, ColRes + 3).Value = OngletRecherche
                  LigRes = LigRes + 1
              End If
              Lig = Lig + 1
          Loop
          Sheets("Résultats").Select
          Range("a1").Select
          Application.ScreenUpdating = True
      End Sub


      mais pour rendre ton code universel, si dans tous tes classeurs, ton 1er onglet est "Résultats" et le 2ème tes données, tu peux remplacer dans le code : OngletRecherche = "5 kg Amylacée" par :
      OngletRecherche = Sheets(2).Name

      à plus
      0
  9. muzomax Messages postés 3 Statut Membre
     
    merci pour tout LePierre

    max
    0