Rechercher puis récupérer données VBA

Yan -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je possede deux fichiers excel.
Le premier est constitué d'une seule feuille. En colonne se trouve des Noms (durand, Michou etc...) et en ligne des semaines. S01, S02, S03 etc. En données j'ai des heures.
Un simple tableau a 2 entrées. qui se lit comme ceci :ex: Michou à travaillé 2 heures en S01.

Mon deuxieme fichier, lui fonctionne par feuilles (Feuill1 = S01 etc)
Dans ma feuille 1, donc la feuille de la semaine "S01", je retrouve mes noms en colonne, mais sans les heures réalisées.

Je souhaiterais réaliser une macro dans mon 2eme fichier.

Celle ci me demanderait quelle semaine importer. ( textbox dans lequel je rentre S#)
La elle va m'ouvrir mon fichier 1, va me faire la recherche de la colonne S06, puis va mettre les bonnes heures de michou dans le fichier 2.

Je vous remercie d'avance. Car je suis loin d'être un king sous VB.

Yan

3 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    essaies cette macro

    Sub semainier() 
    Dim sem As String 
    Dim dercol As Byte, lig As Byte 
    Dim durees As Range 
    
    sem = InputBox("numéro semaine ") 
    On Error GoTo erreur 
    
    Application.ScreenUpdating 
    ThisWorkbook.Sheets(sem).Activate 
    On Error Resume Next 
    
     Workbooks.Open Filename:="D:\documents\Classeur1.xls" 
     On Error GoTo 0 
     dercol = Range("IV1").End(xlToLeft).Column 
     lig = Columns(1).Find(sem, Range("A1"), xlValues).Row 
     Set durees = Range(Cells(lig, 2), Cells(lig, dercol)) 
      
     With ThisWorkbook.Sheets(sem) 
        With .Range(.Cells(2, 1), .Cells(2, dercol - 1)) 
            .Value = durees.Value 
            .NumberFormat = "[hh]:mm:ss" 
        End With 
    .Activate 
    End With 
    Exit Sub 
    
    erreur: 
    MsgBox "saisie incorrecte", vbCritical 
    
    End Sub 
    


    tit démo
    https://www.cjoint.com/?3comIajdKUg
    Michel
    0
    1. Yan
       
      Tout d'abord, Merci bcp cela m'a fait bien avancer... Même si ma limite de compétence était dépassé à la ligne 2.
      Pourtant je constate que dans ton fichier cela fonctionne.

      Il y a un truc qui différe dans mon fichier.

      Je la fait courte.

      Chez moi dans le fichier 1 comme dans le 2, j'ai mes noms en colonne et pas en ligne.

      donc c'est:
      S01 S02 S03 S04
      zaza1
      zaza2
      zaza3
      zaza4


      Encore merci

      PS: je n'ai pas de zaza dans mon équipe ;-)
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Re,

    J'avais confondu les colonnes et les lignes (excuse facile: c'est lundi)

    https://www.cjoint.com/?3cotjrpOeKA

    tu as maintenant plein de Michou au lieu de plein de zaza: fais attention, les Michel, ça a mauvais caractère !!!

    0
    1. Yan
       
      Salut Michel,

      J'ai constaté avec merveille que sur tes fichiers cela fonctionne.
      Mais avec grande tristesse sur les miens non.

      Mon Michou ne veux pas trouver ces heures. T'avais raison ils ont pas un caractère facile.

      Workbooks.Open Filename:="P:\test.xls"
      On Error GoTo 0
      lig = Range("A460").End(xlUp).Row
      col = Rows(1).Find(sem, Range("A1"), xlValues).Column
      Set durees = Range(Cells(2, col), Cells(lig, col))

      Voilà à la ligne soulignée VBA me dit le message suivant:

      Erreur d'exécution ' 91'

      Variable objet ou variable de bloc With non définie.

      (Pas d'erreur dans le mess j'ai vérifié 2 fois)

      As tu une idée de pourquoi il s'acharne?

      Encore une fois, merci d'avance.

      Yan
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Donc
      version XL ?
      et
      envoie tes 2 fichiers en un seul zip sans données confidentielles en pièce jointe (format XL97-2003) sur
      http://cijoint.fr/
      et coller le lien proposé dans le message de réponse
      0
    3. Yan
       
      voilà mes deux fichiers.
      effectivement j'ai planqué le confidentiel.
      je m'excuse c'est du copier valeur... mais confidentialité oblige.

      je t'ai mis des bulles explicatives. et les champs de couleurs sont les zones ou il faut preter attention.

      voici le lien.
      meme fichier 1 et 2 et toujours tout plein de michou.

      http://www.cijoint.fr/cjlink.php?file=cj201102/cijrfcagGF.zip

      merci beaucoup
      0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    Tu m'étonnes que cela ne marchait pas chez toi !!!! Ta demande n'avait peu à voir avec la réalité de tes fichiers. tu verras que la macro est donc "légérement" plus complexe qu'au départ !!! :-)

    La prochaine fois que tu demandes de l'aide, il est indispensable que tu sois précise dans ta demande et quand cela est compliqué comme aujourd'hui, joins tes fichiers dès le 1° post
    Il serait bon aussi que tu t'inscrives sur CCM

    ci joint la bestiole (délai PJ: 4 jours)
    https://www.cjoint.com/?3cro5cwztOw
    0