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 :

parcourir fichier Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 175
    Par défaut parcourir fichier Excel
    Bonjour,

    j'ai un fichier Excel que je souhaiterai parcourir en VB.
    L'objectif est de parcourir ligne après ligne ce fichier.
    Pour chaque ligne je veux pouvoir récupérer une colonne précise...

    Je sais que je peux accéder à une Cellule d'une feuille grâce à : xlSheet.Cells(ligne, colonne)

    N'existe-t'il pas un moyen de récupérer toutes les lignes, sachant que ce nombre de ligne peut être variable?

    Merci d'avance

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Bjr,
    la réponse est oui on peux, mais que doit-on récupérer? avec quels critères? quel est la colonne à récupérer? Dans quelle feuilles?

    plus tu seras précis dans ta demande plus l'aide que l'on t'apporteras le sera aussi et on iras droit au but (vive l'om ).

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 175
    Par défaut
    Alors pour le moment voila ce que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       Dim xlApp As Excel.Application
        Dim xlSheet As Excel.Worksheet
        Dim xlBook As Excel.Workbook
     
        Set xlApp = CreateObject("Excel.Application")
        xlApp.Visible = False
        'Selection du fichier
        Set xlBook = xlApp.Workbooks.Open("Mon fichier")
        'Selection de la feuille PROMO
        Set xlSheet = xlBook.Worksheets("Ma feuille")
    - Sur la feuille, je veux récupérer TOUTES les lignes
    - Pour chaque ligne les informations vont de la colonne A à la colonne BH.
    - Il faudrait que j'arrive à récupérer un objet représentant la ligne entière et que je puisse accéder à une colonne particulière un peu comme avec Cells(ligne, Colonne)


    Pour le moment j'ai ce 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 Excel.Application
        Dim xlSheet As Excel.Worksheet
        Dim xlBook As Excel.Workbook
     
        Set xlApp = CreateObject("Excel.Application")
        xlApp.Visible = False
        'Selection du fichier
        Set xlBook = xlApp.Workbooks.Open(fileName)
        'Selection de la feuille PROMO
        Set xlSheet = xlBook.Worksheets("PROMO")
     
        ' Parcours des lignes
        Dim line As Long
        Dim nbLine As Long
     
        line = 8
        nbLine = xlSheet.Range("A65536").End(xlUp).Row
        Do While line <= nbLine
            MsgBox xlSheet.Cells(line, 10) & "  -  " & line
            line = line + 1
        Loop
     
        xlApp.Quit
        Set xlSheet = Nothing
        Set xlBook = Nothing
        Set xlApp = Nothing
    Je pense qu'il est possible de faire qqch de façon beaucoup plus propre

  4. #4
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Re, je sais pas si j'ai compris
    un code qui parcours à partir de la ligne 8 jusque la derniere ligne pleine de la colonne A. Je donne a la variable recup le contenu de la Cellule J & line et l'affiche grace à un message box.

    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
    Dim line As Long
    Dim Derlign As Long
     
        Derlign = xlSheet.Range("A65536").End(xlUp).Row
     
      'Avec la feuille xlsheet
      With xlSheet
        'je parcours chaque ligne à partir de la 8eme jusque la dernière utilisée
        For line = 8 To Derlign
        ' je donne à recup la valeur de la colonne J à la ligne line
        recup = .Range("J" & line)
        'j'affiche le contenu de recup
        MsgBox recup
        Next line
      End With
    j'ai compris que tu souhaites récuperer une colonne en particulier apparemment la 10 eme d'apres ton code donc la colonne J .

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 175
    Par défaut
    Dans mon exemple, j'ai prit l'exemple de la colonne J mais j'ai un certain nombre d'informations à récupérer.
    N'y a t'il pas d'autres moyen pour parcourir toutes les lignes que d'utiliser un compteur? :/

  6. #6
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Tu peux parcourrir chaque cellule d'une plage de cellule ou d'une colonne ou d'une ligne.
    exemple pour parcourir chaque cellule d'une plage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set plage = Range("A8" & ":BH" & (Range("A65536").End(xlUp).Row))
    For Each c In plage
    'ici Ton code...
    Next c

Discussions similaires

  1. [XL-2010] Parcourir fichier excel ligne par ligne et conditions
    Par sojobo38420 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 25/06/2014, 13h40
  2. Parcourir fichier excel ligne par ligne
    Par sojobo38420 dans le forum Excel
    Réponses: 3
    Dernier message: 13/06/2014, 15h34
  3. Parcourir fichiers excel et lire et recuperer onglet par onglet
    Par ikoita dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 26/02/2014, 13h02
  4. parcourir fichier excel en php
    Par Miss kouka dans le forum Langage
    Réponses: 0
    Dernier message: 30/03/2011, 16h50
  5. Importer un fichier EXcel avec option "parcourir"
    Par marie10 dans le forum Access
    Réponses: 1
    Dernier message: 01/02/2006, 10h42

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