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 :

Ouvrir fichier Excel


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
    Ingénieur qualité méthodes
    Inscrit en
    Mai 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 29
    Par défaut Ouvrir fichier Excel
    Bonjour à tous,

    voilà j'ai une macro affectée à un bouton qui me permets d'ouvrir la fenêtre parcourir sur mon PC et de sélectionner un fichier Excel avec l'extension xls, ensuite ce fichier est copier directement sur ma feuille.
    Ma demande je souhaite élargir le choix d'extension et de rajouter ". xlsx", j'ai essayé de rajouter cette extension mais ça ne marche pas.
    Voici le code, si quelqu'un pourrait m'aider à rajouter la prise en compte de l'extension .xlsx.

    par avance merci.
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    Sub MAJ_Histo()
    Call nettoyage_Histo
        Dim a As Variant, Nom As String
     
     
        Nom = ActiveWorkbook.Name
        ChDrive "C:"    ' Choix du lecteur
        ChDir "C:\"    'Choix du répertoire
       a = Application.GetOpenFilename("fichier excel (*.xls), *.xls", _
                                        , "Sélection de vos fichiers excel", , True)
     
     
        Select Case TypeName(a)
        Case Is = "Boolean"
            Exit Sub
        Case Else
            For b = LBound(a) To UBound(a)
                Workbooks.Open a(b)
            Next
        End Select
        Nom2 = ActiveWorkbook.Name
        Cells.Select
        Selection.Copy
     
        'Windows(Nom).Activate
     
        Workbooks("Outil de pilotage VJ1.xlsm").Sheets("Histo").Activate
        With Range("A1")
        .PasteSpecial Paste:=xlPasteValues
        .PasteSpecial Paste:=xlPasteColumnWidths
        .PasteSpecial Paste:=xlPasteFormats
        .Application.CutCopyMode = False
    End With
     
        Application.DisplayAlerts = False
        Windows(Nom2).Close
        Application.DisplayAlerts = True
    'Sheets("Accueil").Select
    End Sub
     
    Sub MAJ_Convocations()
    Call nettoyage_Convocations
        Dim a As Variant, Nom As String
     
        Nom = ActiveWorkbook.Name
        ChDrive "C:"    ' Choix du lecteur
        ChDir "C:\"    'Choix du répertoire
        a = Application.GetOpenFilename("fichier excel (*.xls), *.xls", _
                                        , "Sélection de vos fichiers excel", , True)
     
        Select Case TypeName(a)
        Case Is = "Boolean"
            Exit Sub
        Case Else
            For b = LBound(a) To UBound(a)
                Workbooks.Open a(b)
            Next
        End Select
        Nom2 = ActiveWorkbook.Name
        Cells.Select
        Selection.Copy
     
        'Windows(Nom).Activate
     
        Workbooks("Outil de pilotage VJ1.xlsm").Sheets("Convocations").Activate
        With Range("A1")
        .PasteSpecial Paste:=xlPasteValues
        .PasteSpecial Paste:=xlPasteColumnWidths
        .PasteSpecial Paste:=xlPasteFormats
        .Application.CutCopyMode = False
    End With
     
        Application.DisplayAlerts = False
        Windows(Nom2).Close
        Application.DisplayAlerts = True

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.GetOpenFilename("Feuilles de calcul (*.xlsx;*.xlsm;*.xlsb;*.xls), *.xls", , , , True)

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mai 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 29
    Par défaut
    Merci pour votre réponse, j'ai mis cette ligne de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = Application.GetOpenFilename("Feuilles de calcul (*.xlsx;*.xlsm;*.xlsb;*.xls), *.xls, *.xlsx", , , True)
    mais j'ai l'erreur : GetOpenFilename de l'objet_ a échoué.

    Salutations.

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Entre tes deux extensions *.xls et *.xlsx, c'est un point virgule et pas une virgule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = Application.GetOpenFilename("Feuilles de calcul (*.xlsx;*.xlsm;*.xlsb;*.xls), *.xls; *.xlsx", , , True)
    et temps qu'à faire, utilises plutôt ça pour ne pas avoir les Xlsm et Xlsb

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = Application.GetOpenFilename("Feuilles de calcul (*.xlsx;*.xls), *.xls; *.xlsx", , , True)

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mai 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 29
    Par défaut
    Merci joe.levrai,

    Maintenant ça marche les fichiers avec l’extension .xlsx s'affichent sauf quand je le sélectionne il m'affiche une erreur 13 incompatibilité de type sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     For b = LBound(a) To UBound(a)
    ça

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Outre le fait que tu as supprimé un argument à ton GetOpenFilename, qui fait que ton argument Multiselect n'existe plus (ce qui ne me semble pas bloquant en soit) ...


    je n'ai aucun souci avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub ioi()
    a = Application.GetOpenFilename("Feuilles de calcul (*.xlsx;*.xls), *.xls; *.xlsx", , , , True)
     
    Select Case TypeName(a)
        Case Is = "Boolean"
            Exit Sub
        Case Else
            For b = LBound(a) To UBound(a)
                MsgBox b
            Next
    End Select
     
    End Sub
    j'ai bien dans chaque MsgBox l'index de sélection de chaque fichier

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

Discussions similaires

  1. Ouvrir fichier excel en php
    Par jedi186 dans le forum Langage
    Réponses: 3
    Dernier message: 18/01/2011, 10h47
  2. Réponses: 2
    Dernier message: 19/03/2008, 20h34
  3. Ouvrir fichier Excel avec macro
    Par zephirsoul dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/11/2007, 18h48
  4. Réponses: 15
    Dernier message: 20/09/2007, 18h26
  5. [VBA-E]ouvrir fichier excel + boite dialogue VBA
    Par dananounette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/05/2006, 16h13

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