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 :

[VBA] Code pour ouverture de dossier


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2008
    Messages : 40
    Points : 17
    Points
    17
    Par défaut [VBA] Code pour ouverture de dossier
    Bonjour,
    voici mon code pour l'ouverture de dossiers.


    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
    Private Sub CommandButton1_Click()
     
        Dim OuvrirFichiers As Variant
        'modification du chemin par defaut'
        ChDir ("c:\")
        'affichage de la boite de dialogue Ouvrir
        OuvrirFichiers = Application.GetOpenFilename(filefilter:="classeur Microsoft Excel(*.xls),*.xls,All Files (*.*),*.*,PageWeb(*.htm;*.html),*.htm;*.html", filterindex:=2, Title:="Ouverture des fichiers d'inspections", MultiSelect:=True)
        If OuvrirFichiers = False Then
        MsgBox "aucun fichier n'a été sélectionné. Fin de la procédure", _
                vbOKOnly + vbCritical, "fin de la procédure"
        Exit Sub
        End If
        'si l 'utilisateur a selectionné plusieurs fichiers
        If UBound(OuvrirFichiers) > 1 Then
           Dim rep As Long
           Dim liste As String
           Dim compteur As Byte
           For compteur = 1 To UBound(OuvrirFichiers)
             liste = liste & vbCr & OuvrirFichiers(compteur)
             Next compteur
             'affichage de l'ensemble de la liste des fichiers et proposition d'ouverture
             rep = MsgBox("L'utilisateur a selectionné plusieurs fichiers. En voici la liste." & liste & vbCr & "voulez-vous les ouvrir ?", vbYesNo + vbQuestion, "ouvrir les fichiers ?")
     
             'Ouverture des fichiers en cas de réponse positive
             If rep = vbYes Then
               For compteur = 1 To UBound(OuvrirFichiers)
                 Worbooks.Open Filename:=OuvrirFichiers(compteur)
               Next compteur
             End If
         'si un seul fichier a été selectionné, il est ouvert
         Else
           Workbooks.Open Filename:=OuvrirFichiers(1)
         End If
     
    End Sub

    Mon programme ne marche plus lorsque j'ai ajouté les lignes pour la fermeture de la fenetre.
    Je pense que cela est due au type de OuvrirFichiers mais je n'arrive pas a rectifier le programme.
    Pouvez-vous m'aider

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Points : 855
    Points
    855
    Par défaut
    Si tu nous donnais ce que t'as rajouté, stp.

    Pour l'instant je ne vois pas de problème: variant est supposé être compatible pour tout faire.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 354
    Points : 417
    Points
    417
    Par défaut
    Effectivement ça te retourne une erreur de type car en mettant le multiselect à True, La fonction GetOpenFileName renvoit un tableau de 1 à n fichiers et donc ton test de booléen ne fonctionne plus

    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If OuvrirFichiers = False Then
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If OuvrirFichiers(1) = False Then
    et tu as une erreur là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If rep = vbYes Then
               For compteur = 1 To UBound(OuvrirFichiers)
                 Worbooks.Open Filename:=OuvrirFichiers(compteur)
               Next compteur
             End If
    il manque un "k" à ton Workbooks.

    Cordialement,

    P.S : pense à gérer si le fichier et déjà ouvert dans ta fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Workbooks.Open Filename:=OuvrirFichiers(1)
    pour éviter les erreurs.

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2008
    Messages : 40
    Points : 17
    Points
    17
    Par défaut
    Merci de vos reponses.

    J'ai reussi a simplifier le programme, et de le faire fonctionné.

    Merci encore

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

Discussions similaires

  1. Adaptation de code pour ouverture de formulaire
    Par Homer091 dans le forum IHM
    Réponses: 4
    Dernier message: 25/04/2008, 13h08
  2. Code pour ouverture formulaire
    Par Truelove dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/06/2007, 15h50
  3. Réponses: 8
    Dernier message: 08/03/2007, 17h54
  4. [VBA] code pour recherche automatique de données
    Par lg022 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/02/2007, 11h20
  5. Code pour verouiller un dossier sous Windows XP
    Par PHIL45 dans le forum Delphi
    Réponses: 2
    Dernier message: 26/12/2006, 14h01

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