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

VBA Access Discussion :

Lire cellule Excel et l'enregistrer dans une variable


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Télécom
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Télécom
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Lire cellule Excel et l'enregistrer dans une variable
    Bonsoir,

    la question vous parait trop simple ?
    a moi aussi ... et pourtant, ça fait 3h que je tourne sur les forums en cherchant a gauche a droite ...

    depuis peux, j'essaye de me facilité la vie dans mon travail, et je boss donc a créer une DB en Access. Ma grande dificulté c'est VBA et tout particulierement a trouver le bon objet et module qui fera ce que je souhaite ...

    voici la situation souhaitée,
    suite a la lecture de la cellule A13 du fichier C:\folder\Excel.xls je veux soit faire l'importation sur Table_1 soit Table_2.
    mais je ne sais pas comment faire pour simplement lire une cellule Excel et la mémorisé dans une variante le temps du traitement.

    une autre solution et a mon avis plus simple,

    avant l'importation, via, Application.FileDialog(msoFileDialogOpen) je récupère le chemin d’accès du fichier.
    si je pouvais l'enregistrer dans une chaque cellule des lignes importées.


    l'idée, c'est que dans mon import A13:AP28, si la cellule A13 et B13 = 0 alors je dois retrouver le fichier sources (donc le nom du fichier qui a été importé).



    merci de m'avoir lu, PAA

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonjour,
    Je n'ai pas compris ta 2ème solution. Mais si tu veux faire de l'automation entre Access et Excel, je te conseille de lire ce tuto :
    http://drq.developpez.com/vb/tutoriels/Excel/
    Si c'est juste pour récupérer la valeur d'une cellule, il suffit d'ouvrir le fichier Excel en mode invisible (xlApp.Visible = False), éventuellement grâce à Application.FileDialog(msoFileDialogOpen)...Bref voici ce dont tu as besoin :
    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
    Public Function recupValeurDansExcel(strPath As String, strFeuille As String, strCell As String)
        On Error GoTo Err_recupValeurDansExcel
        Dim xlApp As Excel.Application, xlBook As Excel.Workbook, xlSheet As Excel.Worksheet
     
        Set xlApp = CreateObject("Excel.Application")
        xlApp.Visible = False
        Set xlBook = xlApp.Workbooks.Open(strPath)
        Set xlSheet = xlBook.Sheets(strFeuille)
     
        recupValeurDansExcel = xlSheet.Range(strCell)
     
    Exit_recupValeurDansExcel:
        xlApp.Quit
        Set xlSheet = Nothing
        Set xlBook = Nothing
        Set xlApp = Nothing
        Exit Function
     
    Err_recupValeurDansExcel:
        MsgBox "Erreur n°" & err.Number & vbCrLf & "Description : " & err.Description & vbCrLf & "Source : " & err.Source, vbCritical, "Erreur"
        Resume Exit_recupValeurDansExcel
    End Function
    A utiliser comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim maVariable as String
    maVariable = recupValeurDansExcel("C:\monFihier.xls","Feuil1","B13")
    Bonne lecture
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  3. #3
    Candidat au Club
    Homme Profil pro
    Télécom
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Télécom
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonjour Bonjour,
    merci d'avoir pris le temps de répondre,

    j'avance petit a petit, mais me voici confronté a un nouveau problème

    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
     
     
    Dim nombreimport As Byte
    Dim cheminExcel As String
    Dim repet As Byte
    Dim Val
     
    With Application.FileDialog(msoFileDialogOpen)
        .Title = "importation des rapports"
        .AllowMultiSelect = True
        .ButtonName = "importer"
        .InitialFileName = "C:\rapport Excel"
        .Filters.Clear
        .Filters.Add "rapport Excel", "*.xls", 1
        .Filters.Add "tout fichier", "*.*", 2
        .Show
        nombreimport = .SelectedItems.Count
    End With
     
    cheminExcel = Application.FileDialog(msoFileDialogOpen).SelectedItems(repet)
     
    Workbooks.Open FileName:="cheminExcel"
    val = Worksheets(1).Range("A13").Value
    MsgBox val
     
    ActiveWorkbook.Close
     
    End Sub
    la ou ca coince c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open FileName:="cheminExcel"
    il m'affiche un message d'erreur "Erreur d'exécution 1004, cheminExcel ...

    merci a tous ce n'est pas "CheminExcel" mais bien CheminExcel

  4. #4
    Candidat au Club
    Homme Profil pro
    Télécom
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Télécom
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    deux dernières question pour ce soir,

    je termine le code par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveWorkbook.Close
    ActiveWindow.Close
    - pourquoi me demande t'il si je veux sauver le fichier ?
    - y a t'il moyen de faire plus simple pour lire une valeur d'Excel et la garder dans ma variable ?


    merci de m'avoir donné de votre temps.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Salut, avec la fonction recupValeurDansExcel citée plus haut, essayes le code suivant :
    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
    Public Sub maSub()
        Dim strPath As String, maValeurDansMaCellule as String
        Dim fd As Office.FileDialog
     
        ' ===== Affichage de la boîte de dialogue PARCOURIR =====
        Set fd = Application.FileDialog(msoFileDialogOpen)
     
        With fd
            .Title = "Sélectionnez votre fichier Excel..."
            .InitialFileName = "C:\rapport Excel"
            ' Ne pas autoriser la sélection multiple
            ' (donc 1 seul fichier est sélectionnable à la fois)
            .AllowMultiSelect = False
            ' Définir les types de fichiers autorisés (uniquement Excel)
            .Filters.Clear
            .Filters.Add "rapport Excel", "*.xls"
            ' Afficher la boîte de dialogue
            If .Show() Then
                ' Récupérer le chemin
                strPath = .SelectedItems(1)
            End If
        End With
        ' Si on clique sur ANNULER, on sort de la fonction
        If strPath = "" Then GoTo Exit_maSub
     
    	maValeurDansMaCellule = recupValeurDansExcel(strPath,"Feuil1","B13")
    	msgbox maValeurDansMaCellule
     
    Exit_maSub:
        ' ===== Libération des variables objet =====
        Set fd = Nothing
    End Sub
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

Discussions similaires

  1. telecharger un fichier excel et l'enregistrer dans une base MYSQL
    Par spartacus10 dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 04/05/2012, 11h33
  2. Réponses: 2
    Dernier message: 22/07/2011, 15h09
  3. [XL-2007] Entrée la valeur d'une cellule d'un autre classeur dans une variable
    Par Coco_O dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/05/2011, 16h25
  4. Réponses: 1
    Dernier message: 27/08/2010, 10h47
  5. Réponses: 3
    Dernier message: 26/07/2010, 14h49

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