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 2ème fichier [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 36
    Par défaut Parcourir 2ème fichier
    Bonjour à tous,

    J'essaye de développer un programme permettant à l'utilisateur de sélectionner un fichier Excel à ouvrir à travers ce bout de programme (intégration dans un userform) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Browse_Click()
        With Application.FileDialog(msoFileDialogFilePicker)
            .AllowMultiSelect = False
            .Show
            UserForm5.TextBox1.text = .SelectedItems(1)
        End With
    End Sub
    puis une fois sélectionné, lors de la validation par appui sur un bouton du userform, je souhaiterais parcourir le fichier ouvert pour par exemple compter le nombre de lignes utilisées, ou y récupérer des données. Pour le moment j'en suis là (pas très loin ^^) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Validate_Click()
        Dim wb As Workbook
        Dim ws As Worksheet
        Set wb = Workbooks.Open(TextBox1.Value)
        Set ws = wb.Worksheets(1)
        Unload UserForm5
        ws.Range("A1").Select
    End Sub
    J'ai simplement essayé de sélectionner une case dans le fichier ouvert (dernière ligne de code) mais ça ne marche pas, sauriez vous comment je peux procéder ?

    Merci d'avance pour votre aide

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox(wb.ws.Range("A1"))
    Il faut dire quel classeur tu veux, sinon il va te prendre ton classeur actuel..

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 36
    Par défaut
    j'avais essayé en premier avec seulement le Workbook mais ça ne marchait pas, avec seulement le WorkSheet ca ne marchait pas non plus, et avec les deux.... idem !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Validate_Click()
        Dim wb As Workbook
        Dim ws As Worksheet
        Set wb = Workbooks.Open(TextBox1.Value)
        Set ws = wb.Worksheets(1)
        Unload UserForm5
        MsgBox wb.ws.Range("D33")
    End Sub
    j'ai "Propriété ou méthode non gérée par cet objet"

    D'ailleurs quel est l'intérêt du WorkSheet, car en mettant en commentaire la 2ème et 4ème ligne du programme, j'obtiens exactement le même résultat...

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2013
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 20
    Par défaut
    Bonjour,

    le message d'erreur vient parce qu'il me semble qu'il faut décomposer les étapes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    wb.activate
    ws(1).activate
    Range("A1").select

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Gont64 Voir le message
    Bonjour,

    le message d'erreur vient parce qu'il me semble qu'il faut décomposer les étapes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    wb.activate
    ws(1).activate
    Range("A1").select
    Surtout pas !

    j'ai "Propriété ou méthode non gérée par cet objet"
    A quelle ligne ?

    Le code suivant est fonctionnel:
    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
    Private Sub Validate_Click()
     
      Dim wb As Workbook
      Dim ws As Worksheet
     
      With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Show
        Me.TextBox1.Text = .SelectedItems(1)
      End With
     
      Set wb = Workbooks.Open(Me.TextBox1)
      Set ws = wb.Worksheets(1)
     
      Unload Me
     
      With ws
        MsgBox .[A1]
      End With
     
    End Sub

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Gont64 dans ce cas précis n'a pas tort car on ne peut sélectionner une cellule que dans la feuille active …

    Par contre là où tu as totalement raison Vincent c'est quand on peut se passer de sélectionner des objets
    pour travailler directement dessus, c'est bien plus efficace et sûr ! Comme ton code le démontre si bien …
    Respect de la règle TBTO

  7. #7
    Invité
    Invité(e)
    Par défaut
    puis une fois sélectionné, lors de la validation par appui sur un bouton du userform, je souhaiterais parcourir le fichier ouvert pour par exemple compter le nombre de lignes utilisées, ou y récupérer des données. Pour le moment j'en suis là (pas très loin ^^) :
    Toutes ces manipulations ne nécessitent pas la sélection d'une cellule. Du coup je maintiens mon 'Surtout pas !'.

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

Discussions similaires

  1. Comment parcourir un fichier texte avec une boucle ?
    Par kikica dans le forum Langage
    Réponses: 2
    Dernier message: 15/11/2005, 17h13
  2. Parcourir un fichier HTML
    Par obelix dans le forum Entrée/Sortie
    Réponses: 16
    Dernier message: 14/11/2005, 20h24
  3. [débutant]Parcourir un fichier XML
    Par Wis dans le forum ASP
    Réponses: 2
    Dernier message: 26/09/2005, 10h04
  4. Parcourir un fichier
    Par sepsep dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/07/2005, 08h25
  5. Réponses: 6
    Dernier message: 23/12/2003, 15h30

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