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 :

Ouverture de fichier avec boite de dialogue [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 42
    Points : 35
    Points
    35
    Par défaut Ouverture de fichier avec boite de dialogue
    Bonjour,
    Voici une première macro qui me permet de faire un copier/coller d'un fichier à un autre dont le chemin est indiqué dans la macro.
    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
    Sub chaud1()
     
     
    '
    ' essai Macro
    '
    ' Keyboard Shortcut:
    '
    '
    Dim wkbSource As Workbook
    Dim wkbdestination As Workbook
    Dim NouvelleFeuille As Worksheet
    '
    '
    ' ouverture fichier
    '
    Set wkbSource = Workbooks.Open("G:\Users\pascal\Documents\Comparaison\Fichier S+1.xlsm")
    wkbSource.Worksheets("Charge atelier chaudronnerie").Activate
    '
    'Positionner le pointeur sur la première cellule vide
    '
    Range("B1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Range("B1").Select
    LIGNEFIN = ActiveCell(1, 0).Address()
    FIN = Range(LIGNEFIN).Row
    '
    ' Selectionner la zone
    '
    LIGNEFIN = ActiveCell.Row
    Range("A1" & ":N" & LIGNEFIN).Select
    '
    ' copier
    '
    Selection.Copy
    '
    ' fermer un fichier sans sauvegarde
    '
    ActiveWorkbook.Close False
    '
    ' ouverture fichier destination
    '
    Set wkbdestination = Workbooks.Open("G:\Users\pascal\Documents\Comparaison\Fichier S.xlsx")
    '
    ' Ajouter une nouvelle feuille
    '
    Set NouvelleFeuille = wkbdestination.Sheets.Add
    NouvelleFeuille.Name = "nouvelle"
    wkbdestination.Worksheets("nouvelle").Activate
    Range("A1").Select
    '
    'coller
    '
    ActiveSheet.Paste
     
    End Sub
    Je souhaite maintenant ouvrir une boite de dialogue pour choisir le fichier. Après recherche sur le forum j'ai inséré les lignes de code suivantes mais mon fichier ouvert n'est pas actif??
    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
    Sub chaud()
     
     
    '
    ' essai Macro
    '
    ' Keyboard Shortcut:
    '
    '
    Dim wkbSource As Workbook
    Dim wkbdestination As Workbook
    Dim NouvelleFeuille As Worksheet
    '
    '
    ' ouverture fichier
    '
    Application.Dialogs(xlDialogOpen).Show ("G:\Users\pascal\Documents\Comparaison")
    '
    encore:
    résultatOK = Application.Dialogs(xlDialogOpen).Show
    If Not résultatOK Then
    MsgBox "vous devez choisir un fichier"
    GoTo encore
    End If
    '
    'Positionner le pointeur sur la première cellule vide
    '
    Range("B1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Range("B1").Select
    LIGNEFIN = ActiveCell(1, 0).Address()
    FIN = Range(LIGNEFIN).Row
    '
    ' Selectionner la zone
    '
    LIGNEFIN = ActiveCell.Row
    Range("A1" & ":N" & LIGNEFIN).Select
    '
    'copier
    '
    Selection.Copy
    '
    ' fermer un fichier sans sauvegarde
    ActiveWorkbook.Close False
    '
    ' ouverture fichier destination
    Application.Dialogs(xlDialogOpen).Show ("G:\Users\pascal\Documents\Comparaison")
    '
    encores:
    résultatOK = Application.Dialogs(xlDialogOpen).Show
    If Not résultatOK Then
    MsgBox "vous devez choisir un fichier"
    GoTo encores
    End If
    '
    '
    ' Ajouter une nouvelle feuille
    '
    Set NouvelleFeuille = wkbdestination.Sheets.Add
    NouvelleFeuille.Name = "nouvelle"
    wkbdestination.Worksheets("nouvelle").Activate
    Range("A1").Select
    ActiveSheet.Paste
     
    End Sub
    Merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Tu pourrais essayer ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Dim Fichier As String, Chemin As String
     
        Chemin = "G:\Users\pascal\Documents\Comparaison"
        ChDrive "G"
        ChDir Chemin
        Fichier = Application.GetOpenFilename()  'on pourrait ajouter un filtre pour n'avoir que les types de fichiers voulus
     
        If Fichier = "Faux" Then Exit Sub
        '.....
    MPi²

  3. #3
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonsoir,

    Pour ouvrir un classeur, teste ceci :
    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
     
    Sub OuvrirClasseur()
     
      Dim Fichier As String
     
        With Application.FileDialog(3)
     
            .Show
     
            On Error Resume Next 'si annuler
     
            Fichier = .SelectedItems(1)
     
            If Err.Number <> 0 Then Exit Sub
     
            Workbooks.Open Fichier
     
        End With
     
    End Sub
    Hervé.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 42
    Points : 35
    Points
    35
    Par défaut [RESOLU]
    merci à Theze et parmi,
    avec un mixte des deux ça fonctionne.
    En fait, j'ai pris l'option de parmi pour ouvrir le fichier dans un répertoire choisi et j'ai ajouté l'option de Theze "Workbooks.Open Fichier" pour être dans le fichier actif.
    Voici le résultat:
    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
    Sub chaud()
     
     
    '
    ' essai Macro
    '
    ' Keyboard Shortcut:
    '
    '
    Dim wkbSource As Workbook
    Dim wkbdestination As Workbook
    Dim NouvelleFeuille As Worksheet
    Dim Fichier As String, Chemin As String
    '
    '
    ' ouverture fichier
    '
    Chemin = "G:\Users\pascal\Documents\Comparaison"
        ChDrive "G"
        ChDir Chemin
        Fichier = Application.GetOpenFilename()  'on pourrait ajouter un filtre pour n'avoir que les types de fichiers voulus
     
        If Fichier = "Faux" Then Exit Sub
    Workbooks.Open Fichier
    '
    'Positionner le pointeur sur la première cellule vide
    '
    Range("B1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Range("B1").Select
    LIGNEFIN = ActiveCell(1, 0).Address()
    FIN = Range(LIGNEFIN).Row
    '
    ' Selectionner la zone
    '
    LIGNEFIN = ActiveCell.Row
    Range("A1" & ":N" & LIGNEFIN).Select
    '
    'copier
    '
    Selection.Copy
    '
    ' fermer un fichier sans sauvegarde
    ActiveWorkbook.Close False
    '
    ' ouverture fichier destination
    '
    Chemin = "G:\Users\pascal\Documents\Comparaison"
        ChDrive "G"
        ChDir Chemin
        Fichier = Application.GetOpenFilename()  'on pourrait ajouter un filtre pour n'avoir que les types de fichiers voulus
     
        If Fichier = "Faux" Then Exit Sub
    Workbooks.Open Fichier
    '
    ' Ajouter une nouvelle feuille
    '
    Set wkbdestination = Workbooks.Open(Fichier)
    Set NouvelleFeuille = wkbdestination.Sheets.Add
    NouvelleFeuille.Name = "nouvelle"
    wkbdestination.Worksheets("nouvelle").Activate
    Range("A1").Select
    ActiveSheet.Paste
     
    End Sub

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/08/2014, 17h06
  2. [XL-2010] Ouverture d'un .xls avec boite de dialogue
    Par francoisclb dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/07/2014, 13h57
  3. Probleme ouverture fichier avec boite de dialogue
    Par tomaix dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/01/2013, 09h03
  4. [MFC] DLL avec boite de dialogue
    Par ricky78 dans le forum MFC
    Réponses: 2
    Dernier message: 17/06/2005, 12h06
  5. Aide sur ouverture de fichier avec access
    Par FusionR dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 17/06/2004, 12h02

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