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 :

[E-02] Fonction pour recupérer la valeur d'une cellule d'un classeur fermé


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Points : 34
    Points
    34
    Par défaut [E-02] Fonction pour recupérer la valeur d'une cellule d'un classeur fermé
    bonjour,

    apres avoir lu les tutos sur ADO et excel, j'y perd ma tete.

    bon, je vous explique mon probleme d'un point de vue fichier excel et apres je vous fais la description de ce que je veux obtenir.



    donc je travail avec 3 Fichiers excel.
    - un Fichiers actif qui sera nommé "Principal" avec 1 feuille nommé "1Principal" pour faire simple
    - un Fichier nommé "Sicave"avec 1 feuille nommé "1Sicave"
    - un Fichier nommé "Bristol"avec 1 feuille nommé "1Bristol"

    quand j'ouvre le fichier "principal" et que je suis dans la feuille "1Principal", je veux connaitre la valeur de la cellule "B4" de la feuille "1Sicave" du fichier correspondant mais sans l'ouvrire. Et je veux aussi la valeur de la cellule "B10" de la feuille "bristol" du fichier correspondant et sans non plus l'ouvrire.

    Par la suite je devrais faire des comparaison avec des cellules qui se trouve dans mon fichier "Principal".



    Voila maintenant ce que je cherche a obtenir comme function :

    je cherche donc une fonction qui me renvoi un string (et c'est la que je bloque, ou que je ne comprend pas dans les tutos).
    cette fonction aura les paramettres :
    Path = chemin pour trouver le fichier
    Fichier = nom du fichier
    Feuille = la feuille du fichier "Fichier" ou se trouve les données a recuperer
    Cellule = la cellule dont nous voulons la valeur.

    si vous pouvez m'aider, merci d'avance.
    dit le moi si je ne suis pas assez claire

    Via

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    voila ce que j'ai commencé a faire et ne rouge ce qui merde, je ne sais pas comment sortire un string en partant un recordset :

    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
    36
    37
    38
    39
    40
    41
    42
    Function ExtractionFerme(Fichier As String, Cellule As String, Feuille As String, Feuille_Arrive As String, Position As String) As String
    
        Dim Source As ADODB.Connection
        Dim Rst As ADODB.Recordset
        Dim ADOCommand As ADODB.Command
        'Dim Fichier As String, Cellule As String, Feuille As String
        
        'Adresse de la cellule contenant la donnée à récupérer
        'Cellule = "B4:B4"
          'Pour une plage de cellules, utilisez:
          'Cellule = "A4:C10"
          
        'Feuille = "Feuil1$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
        Feuille = Feuille & "$"
        'Chemin complet du classeur fermé
        'Fichier = "C:\Base.xls"
                    
        Set Source = New ADODB.Connection
        Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
                    
        Set ADOCommand = New ADODB.Command
        With ADOCommand
            .ActiveConnection = Source
            .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
        End With
        'MsgBox Fichier & " " & Feuille & " " & Cellule
        
        
        Set Rst = New ADODB.Recordset
        Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
                      
        Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
        ExtractionVirbancFerme = Rst
    
                
        Rst.Close
        Source.Close
        Set Source = Nothing
        Set Rst = Nothing
        Set ADOCommand = Nothing
    End Function

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Tu dois dire à quel champ (Field) tu te réfères, même s'il n'y en a qu'un.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Bonjour le fil et le Forum,
    ceci également,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function GetValue(Path, File, Sheet, Adresse) 'Adresse sous la forme A1
      GetValue = ExecuteExcel4Macro("'" & Path & "[" & File & "]" & Sheet & "'!" & Range(Adresse) _
        .Range("A1").Address(, , xlR1C1))
    End Function
    Bon courage et à plus
    Denis

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par AlainTech Voir le message
    Tu dois dire à quel champ (Field) tu te réfères, même s'il n'y en a qu'un.
    peux tu me donner un peux plus d'info sur la methode que je dois utiliser parce que j'ai tester ce code et ca ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ExtractionFerme = Rst.Fields(1).Value
    et dans mon explorateur d'objet je n'ai pas l'aide associé GRRR

    merci DenisMada mais je reste sur la premier solution. si ca ne fonctionne pas je testerais ta fonction.

    Merci
    Via

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par viavba Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ExtractionFerme = Rst.Fields(1).Value
    YESSSSSSSS bon j'ai trouvé !!!

    merci beaucoup pour les info.

    je donne la correction dessous mais mon erreur devait etre l'indice de depart du Recordset, ca commence a 0 et pas a 1.
    donc ca, ca fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ExtractionFerme = Rst.Fields(0).Value
    voila maintenant je vais pouvoir m'amuser avec ma fonction !!

    merci a tous
    Via

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fonction pour sélectionner des valeurs dans une matrice
    Par EaudeRoche dans le forum MATLAB
    Réponses: 4
    Dernier message: 09/03/2012, 11h45
  2. Recupérer la valeur d'une cellule - Tableau-
    Par elmat dans le forum Word
    Réponses: 2
    Dernier message: 07/01/2011, 10h45
  3. [XL-2007] récupérer une valeur d'une cellule d'un classeur fermé
    Par baricot dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 27/10/2009, 18h36
  4. Code pour insérer plusieurs valeurs dans une cellule
    Par azerty1956 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/03/2009, 13h09
  5. Réponses: 3
    Dernier message: 08/08/2008, 10h10

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