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 :

récupération de données de classeur a classeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Par défaut récupération de données de classeur a classeur
    Bonjour,

    Je débute sur VB et en fait j'automatise des tableaux de statistiques seulement ici j'ai un petit probleme, je vous explique j'ai deux fonctions qui vont ouvrir un autre classeur l'une (searchagent) repere la ligne correspondant au nom demandé et l'autre (searchagent2) repere la colonne correspondant à la date demandée ensuite avec les 2 valeurs je croise pour obtenir le résultat de cette personne à la date demandé mais le systeme me renvoi toujours DIV/0 alors que la même macro appliquer directement dans le fichier source en MsgBox me renvoie bien la valeur pouvez vous m'aider ?

    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
     
    c = searchAgent(ws, nom)
    w = searchAgent2(ws, Dates)
     
     
    If c = 0 Then
    t = 0
    Else
    t = Cells(c, w).Value
     
    xl.Quit
    xl.DisplayAlerts = True
    Set wb = Nothing
    Set ws = Nothing
    Set xl = Nothing
     
     
    If c <> 0 Then ActiveSheet.Cells(i, l) = t

  2. #2
    Membre éprouvé Avatar de Many31
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Par défaut
    Bonjour,

    Tu peux détailler? Qui a t'il dans les fonctions searchAgent et searchAgent2??

    Ca vient surement de là (et peut être de la déclaration du fichier source: "ws" apparemment??)

    Le code que tu as posté ne permet en rien de voir d'où peut venir le pb...

  3. #3
    Membre éprouvé
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Par défaut
    d'accord avec many sans le détail des fonctions on ne peut pas t'aider

    surtout que si ca se trouve le problème vient tout bêtement d'un problème d'adressage de ta recherche dans les classeurs

    Bref va falloir nous montrer ton code

  4. #4
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Par défaut reponse
    désolé de ne pas être assez précis voic le code des fonctions :

    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
    32
    33
    34
    35
    Function searchAgent(ByRef ws As Worksheet, ByVal recherche As String) As Integer
     
    tmp_range = "A1:A" & ws.UsedRange.Rows.Count
     
    With ws.Range(tmp_range)
        Set c = .Find(recherche, LookIn:=xlValues)
        If Not c Is Nothing Then
        firstaddress = c.Address
        Do
                searchAgent = c.Row
                Exit Function
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstaddress
        End If
    End With
     
    End Function
     
     
    Function searchAgent2(ByRef ws As Worksheet, ByVal recherche As String) As Integer
     
    tmp_range = "B11:AZ11" 
    With ws.Range(tmp_range)
        Set w = .Find(recherche, LookIn:=xlValues)
        If Not w Is Nothing Then
        firstaddress = w.Address
        Do
                searchAgent2 = w.Column
                Exit Function
                Set w = .FindNext(w)
            Loop While Not w Is Nothing And w.Address <> firstaddress
        End If
    End With
     
    End Function
    la feuille WS correspond au classeur source est l'adressage fonctionne correctement puisque les fonctions me renvoi bien la ligne et la colonne j'ai juste un probleme avec la valeur cela doit etre dans le dimensionnement.

    donc voila le dimensionnement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim c As Variant
    Dim w As Variant
    Dim t As Variant

Discussions similaires

  1. [XL-2007] Récupération de plage de données d'un autre classeur avec macro d'ouverture et de fermeture
    Par yannick63430 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/11/2012, 11h46
  2. [XL-2010] VBA/ADO : récupération de données dans un classeur fermé.
    Par Anto_NEX dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/07/2012, 09h07
  3. Réponses: 1
    Dernier message: 26/11/2008, 14h53
  4. Données externes entre deux classeurs
    Par hkpsyco dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/10/2007, 13h17
  5. Réponses: 1
    Dernier message: 04/06/2006, 16h08

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