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 dans un classeur excel


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut Lire dans un classeur excel
    Bonjour à tous,

    Alors voilà mon soucis. J'ai réussi à ouvrir un classeur excel et à en récupérer son nom.
    Par contre je ne vois pas du tout comment le parcourir.

    En gros je voudrais parcourir de A2 a A endxlup et récupérer les valeurs contenue.
    Je ne parviens pas à le faire sur access alors que sur excel je n'avais pas eu le soucis.

    Comment y parvenir SVP?
    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
    Private Sub btnCreerMED_Click()
        '
        'Ce code va permettre le chargement d'une bande stock
        '
     
        Dim xlApp As Object
        Set xlApp = CreateObject("Excel.Application")
        xlApp.Visible = True
     
        Dim nameFile As String
        nameFile = ap_OpenFile()
        Dim nomClasseur As String
        nomClasseur = Replace(nameFile, ".xls", "")
        'ouverture du fichier excel a l'aide du bouton parcourir
        xlApp.workbooks.Open (nameFile)
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Cet exemple peut-il t'aider ?

    Dans "Classeur1.xls" logé dans le répertoire de la BdD , j'ai 3 prénoms en A2 => A4.

    Je peux les lister avec 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
    Public Sub tst()
      Dim xlApp As Excel.Application
      Dim xlSheet As Excel.Worksheet
      Dim xlBook As Excel.Workbook
      Dim i As Integer
      Dim DernLigne As Long
      ' Accéder à la feuille
      Set xlApp = CreateObject("Excel.Application")
      Set xlBook = xlApp.Workbooks.Open(CurrentProject.Path & "\Classeur1.xls")
      xlApp.Sheets("Feuil1").Select
      DernLigne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
      For i = 2 To DernLigne
       Debug.Print xlApp.ActiveSheet.Range("A" & i)
      Next i
      xlApp.Quit
      Set xlSheet = Nothing
      Set xlBook = Nothing
      Set xlApp = Nothing
     
     
     
    End Sub
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    Salut,
    Alors merci pour ton aide mais je suis parvenu un. Peu différemment peut être que access 2003 ne prend pas en compte excel.application.

    Cependant je rencontre un autre soucis avec end(xlUp) ou il me dit: erreur d'exécution 1004 erreur définie par l'application ou par l'objet

    Voici mon code
    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
        Dim xlApp As Object
        Set xlApp = CreateObject("Excel.Application")
        xlApp.Visible = True
     
        Dim nameFile As String
        nameFile = ap_OpenFile()
     
        Dim nomClasseur As String
        nomClasseur = Replace(nameFile, ".xls", "")
     
        'ouverture du fichier excel a l'aide du bouton parcourir
        xlApp.workbooks.Open (nameFile)
        Dim aWk As Object
        Set aWk = xlApp.activeworkbook
     
        Dim sh As Object
        Set sh = aWk.sheets(1)
     
        Dim lastLine As Long
        Dim firstLine As Long
        firstLine = 2
        lastLine = sh.Range("A1000").End(xlUp).Row
     
        MsgBox ("la derligne est " & lastLine)
     
        xlApp.workbooks.Close (nameFile)

    Citation Envoyé par ClaudeLELOUP Voir le message
    Bonjour,

    Cet exemple peut-il t'aider ?

    Dans "Classeur1.xls" logé dans le répertoire de la BdD , j'ai 3 prénoms en A2 => A4.

    Je peux les lister avec 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
    Public Sub tst()
      Dim xlApp As Excel.Application
      Dim xlSheet As Excel.Worksheet
      Dim xlBook As Excel.Workbook
      Dim i As Integer
      Dim DernLigne As Long
      ' Accéder à la feuille
      Set xlApp = CreateObject("Excel.Application")
      Set xlBook = xlApp.Workbooks.Open(CurrentProject.Path & "\Classeur1.xls")
      xlApp.Sheets("Feuil1").Select
      DernLigne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
      For i = 2 To DernLigne
       Debug.Print xlApp.ActiveSheet.Range("A" & i)
      Next i
      xlApp.Quit
      Set xlSheet = Nothing
      Set xlBook = Nothing
      Set xlApp = Nothing
     
     
     
    End Sub

  4. #4
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,

    Si la derniere ligne est <1000, il se peut qu'il y ait erreur
    pourquoi ne pas mettre A1 tout simplement soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lastLine = sh.Range("A1").End(xlUp).Row
    Helas

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut Pp
    Alors petite explication.
    En fait les fichiers excès contiennent des lignes vides et je voulais utiliser cette méthode pour connaître le numéro de la dernière ligne renseignée . Si je pars du haut il va s'arrêter a la première ligne vide rencontrée non ?

Discussions similaires

  1. [XL-2007] Lire et écrire dans les classeurs Excel fermés
    Par jijie dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/03/2013, 14h28
  2. Lire / Ecrire dans un classeur excel en VBnet
    Par aracnard dans le forum VB.NET
    Réponses: 13
    Dernier message: 25/10/2012, 17h02
  3. Lire dans un classeur Excel fermé
    Par forestlaw2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/07/2012, 12h15
  4. [XL-2007] Lire dans les classeurs Excel fermés (ADODB)
    Par Korleone dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/04/2011, 08h52
  5. [XL-2003] Lire et écrire dans les classeurs Excel fermés
    Par skan_one dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/07/2009, 14h34

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