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 :

Afficher fichier.doc dont nom est en B7 [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Par défaut Afficher fichier.doc dont nom est en B7
    Bonjour à tous,
    Je reviens vers vous car ce code me donne du fil à retordre et je ne m'en sort pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Function IsWordOpen() As Boolean
    Dim objWord As Word.Application
    On Error Resume Next
    ' Je test si Word est déjà ouvert
    Set objWord = GetObject(, "Word.Application")
    IsWordOpen = Not objWord Is Nothing
    ' Je supprime l'objet Word
    Set objWord = Nothing
    End Function

    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
    Sub OuvrirFichier()
    ' Ajouter la référence à Microsoft Word xx.x library au projet
    ' dans le Menu (Outils - Références...).
    Dim objWord As Word.Application
    Dim docWord As Word.Document
    ' Jouvre une session Word
    Set objWord = CreateObject("Word.Application")
    Set docWord = objWord.Documents.Add
    ' L'application Word visible
    objWord.Visible = True
    ' Activation de la feuille Sel
    Sheets("Sel").Activate
    ' Le nom du fichier est récupérer dans B7 de la feuille Sel
    NomDuFichier = Sheets("Sel").Range("B7").Value
    Mon_Fichier = Dir("C:\Cantiques\FichesBibliques\" & NomDuFichier & ".doc")
    ' Je teste si la cellule B7 n'est pas vide
    If NomDuFichier = "" Then
        MsgBox ("Ce fichier n'est pas disponible dans le dossier : FichesBibliques")
    End If
    ' J’ouvre le document Word
    x = Shell("C:\Program Files\Microsoft Office\Office11\WINWORD C:\Cantiques\FichesBibliques\" & NomDuFichier & ".doc", vbNormalFocus)
                  C'est cette ligne qui pose problème...
    
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub QuitterWord()
    ' Quitter et enregistrer
    Application.DisplayAlerts = False
    ActiveDocument.Save
    ' Pour ne pas sauvegarder
    ' ActiveDocument.Saved = True
    Application.DisplayAlerts = True
    ' Pour libérer la mémoire
    Set objWord = Nothing
    End Sub
    Je vous remercie infiniment de bien vouloir me corriger
    ps : je ne sais pas pourquoi, la balise du second code (qui pose problème) ne fonctionne pas.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Pour piloter un document Word à partir d'Excel, ci-joint un début de code qui permet d'ouvrir un document Word
    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
    ' Ajouter la référence à Microsoft Word xx.x library au projet
    ' dans le Menu (Outils - Références...).
     
    Sub OuvrirFichier()
    Dim objWord As Word.Application
    Dim docWord As Word.Document
    Dim Chemin As String, NomDuFichier As String
     
    Chemin = "C:\Users\user\Desktop\"                ' à adapter avec \ en fin du chemin
    NomDuFichier = ThisWorkbook.Worksheets("Sel").Range("B7").Value
     
    If Dir(Chemin & NomDuFichier) <> "" Then
        ' Jouvre une session Word
        Set objWord = New Word.Application
        With objWord
            Set docWord = .Documents.Open(Chemin & NomDuFichier)
            .Visible = True
            'ici le code pour travailler sur le fichier word ouvert (contenu dans la variable docWord
     
            '......
            MsgBox "Document Word ouvert"
     
            'on ferme le document word avec sauvegarde
            docWord.Close True
            Set docWord = Nothing
            'on quitte l'application Word
            .Quit
        End With
        Set objWord = Nothing
    Else
        MsgBox "Ce fichier n'est pas disponible dans le dossier : FichesBibliques"
    End If
    End Sub

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Par défaut
    Bonsoir mercatog,
    Je te remercie de m'avoir consacré de ton temps pour me répondre,
    tout comme je te remercie pour le code joint sur lequel je vais me pencher vendredi ou samedi.
    Je reviendrai si besoin.

  4. #4
    Membre confirmé Avatar de mentat
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Août 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electrotechnicien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 139
    Par défaut
    Je vais peut etre dire une betise mais tu as deux fois c:\

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    x = Shell("C:\Program Files\Microsoft Office\Office11\WINWORD C:\Cantiques\FichesBibliques\" & NomDuFichier & ".doc", vbNormalFocus)
    essaye :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    x = Shell("C:\Program Files\Microsoft Office\Office11\WINWORD\Cantiques\FichesBibliques\" & NomDuFichier & ".doc", vbNormalFocus)
    Bon courrage

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Par défaut
    Bonjour,
    J'ai toujours une erreur à la ligne 14 que je ne comprends pas.

    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
    Sub OuvrirFichier()
    Dim objWord As Word.Application
    Dim docWord As Word.Document
    Dim Chemin As String, NomDuFichier As String
     
    ' à adapter avec \ en fin du chemin
    Chemin = "E:\Utilisateurs\Castor\Documents\Cantiques\FichesBibliques\NomDuFichier.doc\"
    NomDuFichier = ThisWorkbook.Worksheets("Sel").Range("B7").Value
     
    ''If Dir(Chemin & NomDuFichier) <> "" Then
        ' Jouvre une session Word
        Set objWord = New Word.Application
        With objWord
            Set docWord = .Documents.Open(Chemin & NomDuFichier)
            .Visible = True
            'Ici le code pour travailler sur le fichier Word ouvert
            '(contenu dans la variable docWord
     
            '......
            MsgBox "Document Word ouvert"
     
        End With
        Set objWord = Nothing
    ''Else
        MsgBox "Ce fichier n'est pas disponible dans le dossier : FichesBibliques"
    ''End If
    End Sub
    en vous remerciant

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Et pourquoi tu as enlevé la ligne 10?
    C'est cette ligne qui indique que le fichier existe bien dans ton répertoire et dont le nom est inscrit dans la cellule B7 (l'extension existe bien en B7)

    Sinon, à la ligne 8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomDuFichier = ThisWorkbook.Worksheets("Sel").Range("B7").Value & ".doc"

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Par défaut
    en laissant cette ligne, je passe de la ligne 10 à la ligne 24, alors que la cellule B7 de la feuille Sel est bien renseignée.

  8. #8
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    En B7 tu as le nom du fichier avec ou sans l’extension (.doc)?

    Le code passe directement de la ligne 10 à la 24, parce que tu n'as pas de fichier nommé avec la valeur de B7

  9. #9
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Citation Envoyé par mercatog Voir le message
    Et pourquoi tu as enlevé la ligne 10?
    C'est cette ligne qui indique que le fichier existe bien dans ton répertoire et dont le nom est inscrit dans la cellule B7 (l'extension existe bien en B7)

    Sinon, à la ligne 8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomDuFichier = ThisWorkbook.Worksheets("Sel").Range("B7").Value & ".doc"

    EDIT

    les lignes 9 et 10
    à remplacer par celles-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Chemin = "E:\Utilisateurs\Castor\Documents\Cantiques\FichesBiblique\"    'Répertoire
    NomDuFichier = ThisWorkbook.Worksheets("Sel").Range("B7").Value & ".doc"    'Nom du fichier

    Si ton fichier Excel se trouve toujours avec des tes dossiers, tu peux encore améliorer comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Chemin = ThisWorkbook.Path & "\"   'Répertoire
    NomDuFichier = ThisWorkbook.Worksheets("Sel").Range("B7").Value & ".doc"    'Nom du fichier

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Par défaut
    Je l'avais enlevé afin de voir si la suite du code passait.
    Cependant, j'ai une erreur à la ligne 2 qui dit :
    Type défini par l'utilisateur non défini ...?

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/09/2009, 16h24
  2. Réponses: 7
    Dernier message: 12/04/2008, 14h24
  3. [VBA-E]ouvrir un fichier dont le nom est determiné par sa date de création
    Par olivertwist dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/04/2007, 17h29
  4. Réponses: 4
    Dernier message: 18/08/2006, 07h57
  5. Réponses: 5
    Dernier message: 08/05/2006, 00h39

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