Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/05/2007, 17h06   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
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.
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 17h11   #2
Membre habitué
 
Inscription : juillet 2005
Messages : 141
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 141
Points : 117
Points : 117
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
gruget est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 17h24   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
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
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 19h25   #4
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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 ?
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 10h32   #5
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Le document se trouve sur le disque dur. Il est bien ouvert et c'est bien son nom que je cherche à récupérer.
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 10h34   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 10h37   #7
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
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.
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 10h39   #8
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Code :
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 10h43   #9
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
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 :
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
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 13h17   #10
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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 :
Selection.TypeText Text:=ActiveDocument.name
ou
Code :
Selection.TypeText Text:=ThisDocument.name
Si tu veux le chemin, Heureux-oli t'a donné le code
Tu dis
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 15h46   #11
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
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 :
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?
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 15h55   #12
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Déjà, simplifie cette ligne
Citation:
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 :
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+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 16h14   #13
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Je vois. Je parlais du résultat final. Le nom de fichier obtenu grâce à la commande:

Code :
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.
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 16h30   #14
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Code :
Selection.TypeText Text:=left(stTemp,instr(stTemp,".doc")-1)
ou
Code :
Selection.TypeText Text:=Left(stTemp,Len(stTemp)-4)
Pour des explications, F1 sur left, instr et len
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 16h49   #15
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 93
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 93
Points : 11
Points : 11
Ok super c'est ça. Nickel Chrome merci beaucoup les gars c'est super.
perophron est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h33.


 
 
 
 
Partenaires

Hébergement Web