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 :

[VBA - W] Inserer le nom d'un fichier


Sujet :

VBA Word

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut [VBA - W] Inserer le nom d'un fichier
    Bonjour
    je souhaiterais connaître la commande qui permet, à l'aide d'une macro, d'inserer le nom du document dans celui-ci.

  2. #2
    Membre habitué
    Inscrit en
    Juillet 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 141
    Points : 148
    Points
    148
    Par défaut
    bonjour,
    c'est à dire?
    que veux-tu récupérer le nom du document ouvert sur lequel tu travailles?
    va voir ici peut etre
    rémi

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    C'est pour pouvoir inclure dans une macro plus complexe la fonction de récupération du nom du document afin qu'il apparaisse parmi les différentes tâches de ma macro

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par Gruget
    bonjour,
    c'est à dire?
    que veux-tu récupérer le nom du document ouvert sur lequel tu travailles?
    +1
    Quel document ? Où se trouve-t-il ? Est-il ouvert ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    Le document se trouve sur le disque dur. Il est bien ouvert et c'est bien son nom que je cherche à récupérer.

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Pourquoi une macro !
    un champ le fait aussi bien.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    C'est pour pouvoir inclure cette fonction de récupération de nom dans une macro un peu plus complexe, une sorte d'étape quoi.

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub chemin()
    Dim stTemp As String
     
    stTemp = ActiveDocument.Path
    stTemp = stTemp & "\" & ActiveDocument.Name
     
    Debug.Print stTemp
     
    End Sub
    Te donne le nom et le chemin du fichier.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    C'est pour deux choses:
    la première serait simplement l'entrée du nom du document dans n'importe quel emplacement du document ouvert
    la deuxième serait de pouvoir completer une macro que ce forum m'a déjà bien aidé à écrire. Il s'agit d'une macro de récupération de lignes d'un tableau vers un autre document word et je souhaiterais que le nom du document d'où viennent les lignes récupérées apparaissent si possible dans le nouveau tableau.
    Voilà le code déjà réalisé:

    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 recapitulatif()
    Dim objTable As Table
    Dim i As Integer
    Dim a As String
    Set objTable = ThisDocument.Tables(1)
     
    For i = 1 To objTable.Rows.Count
        a = Left(objTable.Cell(i, 2).Range.Text, InStr(objTable.Cell(i,2).Range.Text, vbCr) - 1)
        If a = "D" Then
            objTable.Rows(i).Select
            Selection.Copy
      Documents.Open FileName:="C:\docs word\récap.doc", _
        ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
        PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
        WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
        wdOpenFormatAuto, XMLTransform:="", DocumentDirection:=wdLeftToRight
      Selection.PasteAndFormat (wdPasteDefault)
        End If
    Next i
    End Sub

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    ThisDocument.name donne le nom du document contenant les macros,
    ActiveDocument.name donne le nom du doc actif.
    Pour placer l'un ou l'autre, tu te places là où tu veux qu'ils soient et tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.TypeText Text:=ActiveDocument.name
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.TypeText Text:=ThisDocument.name
    Si tu veux le chemin, Heureux-oli t'a donné le code
    Tu dis

  11. #11
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    Merci c'est sympa de m'aider encore une fois.
    Grâce à vos conseils j'ai presque réussi à faire ce que je voulais et voici le code, qui ne doit pas être le plus simple mais qui marche quand même:

    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 recapitulatif()
    Dim objTable As Table
    Dim i As Integer
    Dim a As String
    Set objTable = ThisDocument.Tables(1)
    Dim stTemp As String
    Dim nbr As Integer
    nbr = 0
    stTemp = ActiveDocument.Name
    For i = 1 To objTable.Rows.Count
        a = Left(objTable.Cell(i, 2).Range.Text, InStr(objTable.Cell(i, 2).Range.Text, vbCr) - 1)
        If a = "D" Then
            objTable.Rows(i).Select
            Selection.Copy
      Documents.Open FileName:="C:\Documents and Settings\fdufour\Bureau\Essai récapitulatif b.doc", _
        ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
        PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
        WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
        wdOpenFormatAuto, XMLTransform:="", DocumentDirection:=wdLeftToRight
      Selection.PasteAndFormat (wdPasteDefault)
      nbr = nbr + 1
        End If
    Next i
      Selection.MoveUp Unit:=wdLine, Count:=nbr
      Selection.InsertRowsAbove 1
      Selection.TypeText Text:=stTemp
    End Sub
    Comme ça j'ai le nom de chaque document dont je tire les lignes de tableau sur le récapitulatif. Le seul hic, c'est que le nom du document est suivi de l'extension .doc. Ne peut-on pas éviter ce dernier point?

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Déjà, simplifie cette ligne
    Documents.Open FileName:="C:\Documents and Settings\fdufour\Bureau\Essai récapitulatif b.doc", _
    ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
    PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
    WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
    wdOpenFormatAuto, XMLTransform:="", DocumentDirection:=wdLeftToRight
    Tu peux supprimer tous les paramètres par défaut. la syntaxe suivante donne le même résultat (!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Documents.Open FileName:="C:\Documents and Settings\fdufour\Bureau\Essai récapitulatif b.doc"
    Pour ta question, je ne comprends pas. Pour ouvrir ton doc, tu as besoin de l'extension...
    Explique
    A+

  13. #13
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    Je vois. Je parlais du résultat final. Le nom de fichier obtenu grâce à la commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      Selection.MoveUp Unit:=wdLine, Count:=nbr
      Selection.InsertRowsAbove 1
      Selection.TypeText Text:=stTemp
    me renvoie le nom_du_document.doc et c'est cette extension que je souhaite ne pas faire apparaître.

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.TypeText Text:=left(stTemp,instr(stTemp,".doc")-1)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.TypeText Text:=Left(stTemp,Len(stTemp)-4)
    Pour des explications, F1 sur left, instr et len

  15. #15
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 29
    Points
    29
    Par défaut
    Ok super c'est ça. Nickel Chrome merci beaucoup les gars c'est super.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/06/2011, 15h18
  2. Réponses: 5
    Dernier message: 27/04/2007, 15h38
  3. [VBA-E] Recherche le NOM d'un fichier ...
    Par le_sonic dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/04/2006, 11h34
  4. [VBA-E]Affecter valeurs noms de fichier d'un répertoire
    Par zzman dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/03/2006, 00h28
  5. [VBA-E] générer un nom de fichier aléatoire (more inside)
    Par Clayton dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/10/2005, 19h15

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