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

VBA Word Discussion :

Ouvrir un fichier excel depuis word grâce à une boîte de dialogue


Sujet :

VBA Word

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Développement personnel
    Inscrit en
    Février 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développement personnel

    Informations forums :
    Inscription : Février 2017
    Messages : 3
    Par défaut Ouvrir un fichier excel depuis word grâce à une boîte de dialogue
    Bonjour
    Je cherche à ouvrir un fichier excel dans n'importe quel dossier sur l'ordinateur à partir d'une boîte de dialogue.
    Je vous met les lignes de programme déjà réalisé, ainsi que les lignes qui me paraissai normal pour réaliser cela.

    Actuellement c est la ligne du programme qui fonctionne :
    xlApp.Workbooks.Open "D:\Mes documents\Envoie GED\Fichier envoie\fichier_liste"

    Mais je voudrai ouvrir une boîte de dialogue pour choisir le dossier.

    10 Dialogs(wdDialogFileOpen).Show
    20 NonFichierImport1 = ActiveDocument.Name ' fichier excel
    30 vChemin = ActiveDocument.Path '& Application.PathSeparator
    40 xlApp.Workbooks.Open vChemin & NonFichierImport1

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

    Essayez ce code :

    Nb : FichierAOuvrir contient le chemin et le nom du fichier.

    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
     
    Option Explicit
     
    Public FichierAOuvrir As Variant
     
    Sub OuvrirUnFichierExcel()
     
        ' Boite de dialogue Ouvrir un fichier
        With Application.FileDialog(msoFileDialogOpen)
             .Filters.Add "Fichiers ", "*.xls*", 1
             FichierAOuvrir = .Show
        End With
     
        If FichierAOuvrir <> 0 Then
           FichierAOuvrir = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
           ' MsgBox FichierAOuvrir
        Else
           MsgBox "Aucun fichier sélectionné, fin de programme !", vbCritical
        End If
     
    End Sub

  3. #3
    Candidat au Club
    Homme Profil pro
    Développement personnel
    Inscrit en
    Février 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développement personnel

    Informations forums :
    Inscription : Février 2017
    Messages : 3
    Par défaut Ouvrir un fichier excel depuis word grâce à une boîte de dialogue
    Merci Eric pour la réponse rapide.

    cela ne fonctionne pas comme je voudrai. en effet le fichier doit bien s'ouvrir mais je ne peux récupérer les informations dont j'ai besoin.

    dans ma macro je doit récupérée sur le fichier Excel des donnée dans certaine cellules mais n'ayant pas le nom du classeur il marque une erreur.

    je joins les lignes suivante

    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
    Private Sub CommandButton4_Click()
     
    Dim xlApp As New Excel.Application
    Dim NonFichierImport1
    Dim vChemin
    Dim a, b, y, x
     
     
        ' Boite de dialogue Ouvrir un fichier
        With Application.FileDialog(msoFileDialogOpen)
             .Filters.Add "Fichiers ", "*.xls*", 1
             FichierAOuvrir = .Show
        End With
     
        If FichierAOuvrir <> 0 Then
           FichierAOuvrir = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
           ' MsgBox FichierAOuvrir
        Else
           MsgBox "Aucun fichier sélectionné, fin de programme !", vbCritical
        End If
     
     
     
    Label6 = "Code Raf: " & Workbooks("fichier_liste").Sheets("Liste Agent").Cells(2, 10)
    Label7 = "Code Sessions: " & Workbooks("fichier_liste").Sheets("Liste Agent").Cells(2, 12)
     
     For a = 2 To 20
        If Workbooks("fichier_liste").Sheets("Liste Agent").Cells(a, 21) = "" Then GoTo suite1
          NCP.AddItem Workbooks("fichier_liste").Sheets("Liste Agent").Cells(a, 21)
       Next a
     
    suite1:
     
         'NonFichierImport1 = ActiveWorkbook.Name & ".xlsx"
         vChemin = ActiveWorkbook.Path
    'Application.Dialogs(xlDialogSaveAs).Show
    'ActiveWorkbook.SaveAs FileName:= _
            vChemin & "\" & NonFichierImport1, _
            FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
            NonFichierImport1 = ActiveWorkbook.Name
     
    End Sub
     
    Private Sub NCP_Change()
     
    For a = 2 To 20
        If Workbooks("fichier_liste").Sheets("Liste Agent").Cells(a, 21) = "" Then GoTo fin
        If Workbooks("fichier_liste").Sheets("Liste Agent").Cells(a, 21) = NCP Then Nom = Workbooks("fichier_liste").Sheets("Liste Agent").Cells(a, 18): _
            Prenom = Workbooks("fichier_liste").Sheets("Liste Agent").Cells(a, 19)
    Next a
    fin:
    End Sub

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

    Pouvez-vous mettre votre code entre balises # ?

  5. #5
    Candidat au Club
    Homme Profil pro
    Développement personnel
    Inscrit en
    Février 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développement personnel

    Informations forums :
    Inscription : Février 2017
    Messages : 3
    Par défaut Ouvrir un fichier excel depuis word grâce à une boîte de dialogue
    Merci Eric pour la réponse rapide.

    cela ne fonctionne pas comme je voudrai. en effet le fichier doit bien s'ouvrir mais je ne peux récupérer les informations dont j'ai besoin.

    dans ma macro je doit récupérée sur le fichier Excel des donnée dans certaine cellules mais n'ayant pas le nom du classeur il marque une erreur.

    je vous joins les lignes suivante

    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
    1   Private Sub CommandButton4_Click()
    2
    3   Dim xlApp As New Excel.Application
    4   Dim NonFichierImport1
    5   Dim vChemin
    6   Dim a, b, y, x
    7
    8 
    9    ' Boite de dialogue Ouvrir un fichier
    10    With Application.FileDialog(msoFileDialogOpen)
    11         .Filters.Add "Fichiers ", "*.xls*", 1
    12         FichierAOuvrir = .Show
    13    End With
    14 
    15    If FichierAOuvrir <> 0 Then
    16       FichierAOuvrir = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
    17       ' MsgBox FichierAOuvrir
    18    Else
    19       MsgBox "Aucun fichier sélectionné, fin de programme !", vbCritical
    20    End If
    21 
    22
    23 ' recherche dans la feuille du classeur Excel la cellule concernée (fichier_liste = nom du classeur, Liste Agent = feuille du classeur)
    24   Label6 = "Code Raf: " & Workbooks("fichier_liste").Sheets("Liste Agent").Cells(2, 10) 
    25   Label7 = "Code Sessions: " & Workbooks("fichier_liste").Sheets("Liste Agent").Cells(2, 12)
    26
    27  For a = 2 To 20
    28    If Workbooks("fichier_liste").Sheets("Liste Agent").Cells(a, 21) = "" Then GoTo suite1
    29      NCP.AddItem Workbooks("fichier_liste").Sheets("Liste Agent").Cells(a, 21)
    30   Next a
    31  
    32  suite1:
    33
    34  End Sub

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Cbarbaut Voir le message
    Pour mettre le code entre balises #, vous sélectionnez votre code et vous cliquez sur le bouton # dans le menu du message.

    Vous devez obtenir le même aspect que mon code dans mon premier message. Inutile de renvoyer un nouveau message, il suffit de modifier votre message.

    Cordialement.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Cbarbaut Voir le message
    Ci-joint, un code placé dans un module standard qui ouvre un Userform

    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
     
    Option Explicit
     
    Public Nom As String, Prenom As String
    Public I As Long
    Public FichierAOuvrir As Variant
     
    Public xlApp As Object
    Public FichierExcel As Object
    Public ShListe As Object
     
     
    Sub OuvrirUnFichierExcel()
     
     
        ' Boite de dialogue Ouvrir un fichier
        With Application.FileDialog(msoFileDialogOpen)
             .Filters.Add "Fichiers ", "*.xls*", 1
             FichierAOuvrir = .Show
        End With
     
        If FichierAOuvrir <> 0 Then
           FichierAOuvrir = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
           Set xlApp = CreateObject("Excel.Application")
     
           With xlApp
              Set FichierExcel = .workbooks.Open(FichierAOuvrir)
              Set ShListe = FichierExcel.sheets("Liste Agent")
              With UserForm1
                    .Label6 = "Code Raf: " & ShListe.Cells(2, 10)
                    .Label7 = "Code Sessions: " & ShListe.Cells(2, 12)
                    For I = 2 To 20
                        .Ncp.AddItem ShListe.Cells(I, 21)
                    Next I
                    .Show
              End With
     
          End With
     
          FichierExcel.Close savechanges:=False
          Set FichierExcel = Nothing
          xlApp.Quit
     
          Set xlApp = Nothing
        Else
           MsgBox "Aucun fichier sélectionné, fin de programme !", vbCritical
        End If
     
    End Sub
    Dans le Userform
    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
     
    Option Explicit
     
    Private Sub NCP_Change()
     
    Dim CtrI As Long
     
            With ShListe
                For CtrI = 2 To 20
                    If .Cells(CtrI, 21) = Ncp Then
                        Nom = .Cells(CtrI, 18)
                        Prenom = .Cells(CtrI, 19)
                    End If
                Next CtrI
            End With
            MsgBox Ncp
     
    fin:
    End Sub

    Pièce jointe 242698

    Nb : Il faut mettre la dernière balise [/Code] à la ligne pour avoir la présentation souhaitée.

Discussions similaires

  1. Ouvrir un fichier Excel depuis un Userform Word
    Par formabox dans le forum VBA Word
    Réponses: 2
    Dernier message: 12/10/2016, 19h05
  2. [ascendant='nul'] VBS ouvrir un fichier excel depuis IE7
    Par escteban dans le forum VBScript
    Réponses: 2
    Dernier message: 26/04/2007, 16h04
  3. Réponses: 1
    Dernier message: 21/03/2007, 20h32
  4. Ouvrir un fichier excel sous word
    Par xenografter dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/12/2006, 11h30
  5. Ouvrir un fichier excel depuis access
    Par ptitegrenouille dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 03/05/2005, 12h47

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