OVH Cloud OVH Cloud

macro appeler dossier

13 réponses
Avatar
Izmi
Bonjour ;

Y - aurait - il moyen de placer une macro sur une page
word pour appeler un dossier placer sur le bureau
comprenant plusieurs sous dossiers, fichiers excel,
documents word, PDF etc...

Merci

10 réponses

1 2
Avatar
Bonsoir à tous,
Un lien hypertexte devrai suffir.
Insertion/Lien hypertexte.
Merci d'avoir lu jusque là.

"Izmi" a écrit dans le message de news: 061701c55fbb$35a27710$
Bonjour ;

Y - aurait - il moyen de placer une macro sur une page
word pour appeler un dossier placer sur le bureau
comprenant plusieurs sous dossiers, fichiers excel,
documents word, PDF etc...

Merci


Avatar
Izmi
Merci pour votre réponse

En fait j'avais oublié de préciser que les liens
hypertextes ne m'ont pas du tout réussi. J'avais déjà
essayé sans succès malgré l'aide qui m'avait été
apportée, notamment par Anacoluthe. Je m'étais pendant
des heures et des heures escrimé,avec
ces "hypercompliqués_liens_relatifs". Alors j'ai pensé
qu'avec une macro je m'en sortirais peut-être.
Merci
Izmi

-----Message d'origine-----
Bonsoir à tous,
Un lien hypertexte devrai suffir.
Insertion/Lien hypertexte.
Merci d'avoir lu jusque là.

"Izmi" a écrit dans le
message de news: 061701c55fbb$35a27710$

Bonjour ;

Y - aurait - il moyen de placer une macro sur une page
word pour appeler un dossier placer sur le bureau
comprenant plusieurs sous dossiers, fichiers excel,
documents word, PDF etc...

Merci



.




Avatar
Bonsoir à tous,
En fait j'avais oublié de préciser que les liens...
Oui j'avais oublié ce fil.

Faut dire que tu ne nous aides pas..., à t'aider.

ces "hypercompliqués_liens_relatifs".
Je ne vois pas ce que tu y as trouvé compliqué et d'ailleurs il ne me semble pas que tu l'as pas précisés.


... . Alors j'ai pensé
qu'avec une macro je m'en sortirais peut-être.
Toujours le fantasme courant des macros, où tu avais une idée précise ?


Je crois que tu devrais :
- Essayer de rester dans le même fil.
- Nous indiquer ce que tu as essayer de faire par rapport aux indications des uns et des autres. Nous indiquer les difficultés que
tu y as rencontré et/ou l'absence de réponse a ton problème que tu y as trouvé. Ah et puis si ça te fait progressé tu peux aussi
nous le dire et dans quelle direction...

Merci d'avoir lu jusque là.



"Izmi" a écrit dans le message de news: 066901c55fc6$1e880080$
Merci pour votre réponse

En fait j'avais oublié de préciser que les liens
hypertextes ne m'ont pas du tout réussi. J'avais déjà
essayé sans succès malgré l'aide qui m'avait été
apportée, notamment par Anacoluthe. Je m'étais pendant
des heures et des heures escrimé,avec
ces "hypercompliqués_liens_relatifs". Alors j'ai pensé
qu'avec une macro je m'en sortirais peut-être.
Merci
Izmi

-----Message d'origine-----
Bonsoir à tous,
Un lien hypertexte devrai suffir.
Insertion/Lien hypertexte.
Merci d'avoir lu jusque là.

"Izmi" a écrit dans le
message de news: 061701c55fbb$35a27710$

Bonjour ;

Y - aurait - il moyen de placer une macro sur une page
word pour appeler un dossier placer sur le bureau
comprenant plusieurs sous dossiers, fichiers excel,
documents word, PDF etc...

Merci



.




Avatar
Clément Marcotte
Bonjour,

La mémoire m'a fait défaut. Voici une macro pour retrouver un fichier
enfoui dans une arborescence du bureau:

Sub ChercheSurLedisque()
'Clément Marcotte
'Amos (Québec)
'Grandement inspiré de allapi.net
'URL: http://www.allapi.net/
'E-Mail:
Dim tempStr As String, Ret As Long, lefichier As String
Dim message As String, laplace As String, lendroit As Byte
'create a buffer string
tempStr = String(MAX_PATH, 0)
'Si le fichier existe, le résultat est 1
'autrement, le résultat est 0
lendroit = InStr(Selection, Chr(13))
If lendroit > 0 Then
lefichier = Left(Selection, Len(Selection) - 1)
End If
lefichier = Trim(lefichier)
Ret = SearchTreeForFile("c:windowsbureau", lefichier, tempStr)
If Ret <> 0 Then
laplace = Left$(tempStr, InStr(1, tempStr, Chr$(0)) - 1)
Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdMove
Selection.InsertAfter (laplace)
message = "Le fichier " & lefichier & vbNewLine
message = message & " a été trouvé dans " & vbNewLine
message = message & laplace
MsgBox message

Else
laplace = "Fichier non trouvé ou inexistant :"
MsgBox laplace & lefichier
End If
End Sub


--
On n' apprend pas à un vieux singe à faire des grimaces
"Izmi" a écrit dans le message de
news:061701c55fbb$35a27710$
Bonjour ;

Y - aurait - il moyen de placer une macro sur une page
word pour appeler un dossier placer sur le bureau
comprenant plusieurs sous dossiers, fichiers excel,
documents word, PDF etc...

Merci


Avatar
Clément Marcotte
Bonjour,

Avec cela:

Dans l'entête du module, en dehors de toute procédure

Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Const BIF_RETURNONLYFSDIRS = 1
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Private Declare Function lstrcat Lib "kernel32" Alias _
"lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As
Long
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As
BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal
pidList As Long, _
ByVal lpBuffer As String) As Long

Plus cette procédure:

Sub SelectionDossier()
'Clément Marcotte
'Amos (Québec)
'Très inspiré de KPD-Team 1998
'URL: http://www.allapi.net/
'
Dim iNull As Integer, lpIDList As Long, lResult As Long
Dim sPath As String, udtBI As BrowseInfo
'Show the 'Browse for folder' dialog
lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
sPath = String$(MAX_PATH, 0)
'Get the path from the IDList
SHGetPathFromIDList lpIDList, sPath
'free the block of memory
CoTaskMemFree lpIDList
iNull = InStr(sPath, vbNullChar)
If iNull Then
sPath = Left$(sPath, iNull - 1)
End If
End If
'Afficher les fichiers Excel du dossier
'choisi pour fins de vérification
letexte = Dir(sPath & "" & "*.xls")
Selection.InsertAfter letexte & Chr(13)
Selection.MoveRight unit:=wdCharacter, Extend:=wdMove
Do Until letexte = ""
letexte = Dir
Selection.InsertAfter letexte & Chr(13)
Selection.MoveRight unit:=wdCharacter, Extend:=wdMove
Loop
End Sub


--
On n' apprend pas à un vieux singe à faire des grimaces
"Izmi" a écrit dans le message de
news:061701c55fbb$35a27710$
Bonjour ;

Y - aurait - il moyen de placer une macro sur une page
word pour appeler un dossier placer sur le bureau
comprenant plusieurs sous dossiers, fichiers excel,
documents word, PDF etc...

Merci


Avatar
Clément Marcotte
Bonjour,

P.S. Faut sélectionner le nom du fichier dans un document Word, avant
de lancer la macro.

P.P.S : Manque aussi les déclarations à mettre dans l'entête du
module, en dehors de toute procédure:

Declare Function SearchTreeForFile Lib "imagehlp" (ByVal RootPath As
String, _
ByVal InputPathName As String, _
ByVal OutputPathBuffer As String) As Long
Public Const MAX_PATH = 260

--
On n' apprend pas à un vieux singe à faire des grimaces
"Clément Marcotte" a écrit dans le
message de news:u2O3au$
Bonjour,

La mémoire m'a fait défaut. Voici une macro pour retrouver un
fichier

enfoui dans une arborescence du bureau:

Sub ChercheSurLedisque()
'Clément Marcotte
'Amos (Québec)
'Grandement inspiré de allapi.net
'URL: http://www.allapi.net/
'E-Mail:
Dim tempStr As String, Ret As Long, lefichier As String
Dim message As String, laplace As String, lendroit As Byte
'create a buffer string
tempStr = String(MAX_PATH, 0)
'Si le fichier existe, le résultat est 1
'autrement, le résultat est 0
lendroit = InStr(Selection, Chr(13))
If lendroit > 0 Then
lefichier = Left(Selection, Len(Selection) - 1)
End If
lefichier = Trim(lefichier)
Ret = SearchTreeForFile("c:windowsbureau", lefichier, tempStr)
If Ret <> 0 Then
laplace = Left$(tempStr, InStr(1, tempStr, Chr$(0)) - 1)
Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdMove
Selection.InsertAfter (laplace)
message = "Le fichier " & lefichier & vbNewLine
message = message & " a été trouvé dans " & vbNewLine
message = message & laplace
MsgBox message

Else
laplace = "Fichier non trouvé ou inexistant :"
MsgBox laplace & lefichier
End If
End Sub


--
On n' apprend pas à un vieux singe à faire des grimaces
"Izmi" a écrit dans le message de
news:061701c55fbb$35a27710$
Bonjour ;

Y - aurait - il moyen de placer une macro sur une page
word pour appeler un dossier placer sur le bureau
comprenant plusieurs sous dossiers, fichiers excel,
documents word, PDF etc...

Merci





Avatar
Clément Marcotte
Bonjour,

P.S. Si ce n'est pas déjà dans les déclarations, mettre aussi:

Public Const MAX_PATH = 260


--
On n' apprend pas à un vieux singe à faire des grimaces
"Clément Marcotte" a écrit dans le
message de news:%
Bonjour,

Avec cela:

Dans l'entête du module, en dehors de toute procédure

Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Const BIF_RETURNONLYFSDIRS = 1
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As
Long)

Private Declare Function lstrcat Lib "kernel32" Alias _
"lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As
Long
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As
BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal
pidList As Long, _
ByVal lpBuffer As String) As Long

Plus cette procédure:

Sub SelectionDossier()
'Clément Marcotte
'Amos (Québec)
'Très inspiré de KPD-Team 1998
'URL: http://www.allapi.net/
'
Dim iNull As Integer, lpIDList As Long, lResult As Long
Dim sPath As String, udtBI As BrowseInfo
'Show the 'Browse for folder' dialog
lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
sPath = String$(MAX_PATH, 0)
'Get the path from the IDList
SHGetPathFromIDList lpIDList, sPath
'free the block of memory
CoTaskMemFree lpIDList
iNull = InStr(sPath, vbNullChar)
If iNull Then
sPath = Left$(sPath, iNull - 1)
End If
End If
'Afficher les fichiers Excel du dossier
'choisi pour fins de vérification
letexte = Dir(sPath & "" & "*.xls")
Selection.InsertAfter letexte & Chr(13)
Selection.MoveRight unit:=wdCharacter, Extend:=wdMove
Do Until letexte = ""
letexte = Dir
Selection.InsertAfter letexte & Chr(13)
Selection.MoveRight unit:=wdCharacter, Extend:=wdMove
Loop
End Sub


--
On n' apprend pas à un vieux singe à faire des grimaces
"Izmi" a écrit dans le message de
news:061701c55fbb$35a27710$
Bonjour ;

Y - aurait - il moyen de placer une macro sur une page
word pour appeler un dossier placer sur le bureau
comprenant plusieurs sous dossiers, fichiers excel,
documents word, PDF etc...

Merci





Avatar
Izmi
Bonjour ;

Rester sur le même fil ? C'est effectivement ce que je
devais faire mais comme les premiers fils sont déjà anciens
je ne pense pas que quelqu'un puisse encore s'y interesser.
Je m'en excuse quand même.

Concernant mon problème il est le suivant : Travaillant sur
un très long document, avec des liens hypertextes vers
plusieurs dossiers comprenant chacun plusieurs documents et
fichiers,il m'a été impossible d'appliquer la solution
indiquée par Anacoluthe.

Cette solution consiste grooso-modo à ouvrir fichier
-->propriétés -->général-->répertoire web et à indiquer le
lien dans la zone. Il m'a aussi proposé une autre solution
avec des champs mais celle là je n'avais pas du tout pu la
mettre en oeuvre.
Je précise que chaque fois que j'essayais la solution
d'Anacoluthe je perdais tous les liens que j'avais déjà
placé ; d'où la nécessité de les refaire tous un à un.

Avec une macro je pense pouvoir, en utilisant la formule
"on error resume next" gérer toutes les situations
(changement de lecteur) par l'indication de tous les
lecteurs possibles (A, C, D, F, G, H, E). J'ai déjà fait
quelque chose du genre (Pas pour l'appel de dossiers !)
sous excel.

Merci pour votre aide et pour votre patience.

Izmi.
-----Message d'origine-----
Bonsoir à tous,
En fait j'avais oublié de préciser que les liens...
Oui j'avais oublié ce fil.

Faut dire que tu ne nous aides pas..., à t'aider.

ces "hypercompliqués_liens_relatifs".
Je ne vois pas ce que tu y as trouvé compliqué et

d'ailleurs il ne me semble pas que tu l'as pas précisés.


... . Alors j'ai pensé
qu'avec une macro je m'en sortirais peut-être.
Toujours le fantasme courant des macros, où tu avais une

idée précise ?


Je crois que tu devrais :
- Essayer de rester dans le même fil.
- Nous indiquer ce que tu as essayer de faire par rapport
aux indications des uns et des autres. Nous indiquer les

difficultés que
tu y as rencontré et/ou l'absence de réponse a ton
problème que tu y as trouvé. Ah et puis si ça te fait

progressé tu peux aussi
nous le dire et dans quelle direction...

Merci d'avoir lu jusque là.



"Izmi" a écrit dans le
message de news: 066901c55fc6$1e880080$

Merci pour votre réponse

En fait j'avais oublié de préciser que les liens
hypertextes ne m'ont pas du tout réussi. J'avais déjà
essayé sans succès malgré l'aide qui m'avait été
apportée, notamment par Anacoluthe. Je m'étais pendant
des heures et des heures escrimé,avec
ces "hypercompliqués_liens_relatifs". Alors j'ai pensé
qu'avec une macro je m'en sortirais peut-être.
Merci
Izmi

-----Message d'origine-----
Bonsoir à tous,
Un lien hypertexte devrai suffir.
Insertion/Lien hypertexte.
Merci d'avoir lu jusque là.

"Izmi" a écrit dans le
message de news: 061701c55fbb$35a27710$

Bonjour ;

Y - aurait - il moyen de placer une macro sur une page
word pour appeler un dossier placer sur le bureau
comprenant plusieurs sous dossiers, fichiers excel,
documents word, PDF etc...

Merci



.




.





Avatar
Clément Marcotte
Rester sur le même fil ? C'est effectivement ce que je
devais faire mais comme les premiers fils sont déjà anciens



T'as rien qu'à prendre un vrai lecteur de news, au lieu de la maudite
cochonnerie d'interface web.

--
On n' apprend pas à un vieux singe à faire des grimaces

Avatar
Izmi
Bonjour ;

Merci à ceux qui m'ont répondu.
Il semble qu'il m'appartient de me grouiller un peu plus
pour que ceux qui veulent m'aider me comprennent mieux.

Bon, c'est fait.

Sur un site dont je n'ai pas retenu le nom j'ai recueilli
ce code qui se rapproche beaucoup de celui de Clément et
qui me convient bien. Je voudrais votre aide pour que si
je selectionne un fichier dans la boite de dialogue,
celui-ci s'ouvre.

Voici le code :

Sub essai1212()
choix = ChoixDossierFichier("c:windowsbureauEau",
1) '<- ici le chemin de ton
'choix
If choix <> "" Then MsgBox choix
End Sub

Function ChoixDossierFichier(Racine, Optional SelType As
Byte = 0)
Dim objShell, objFolder, Chemin, SecuriteSlash,
FlagChoix&, Msg$

If SelType = 0 Then
FlagChoix = &H1&: Msg = "Choisissez un dossier :"
Else
FlagChoix = &H4000&: Msg = "Choisissez un fichier :"
End If

Set objShell = CreateObject("Shell.Application")
'le troisi?me param?tre permet de choisir
'la s&eacute;lection d'un dossier ou d'un fichier (0
ou 1)
'le dernier param?tre permet de choisir le dossier
racine
Set objFolder = objShell.BrowseForFolder(&H0&, Msg,
FlagChoix, Racine)
On Error Resume Next
Chemin = objFolder.ParentFolder.ParseName
(objFolder.Title).Path & ""
If objFolder.Title = "Bureau" Then
Chemin = "C:WindowsBureau"
End If
If objFolder.Title = "" Then
Chemin = ""
End If

SecuriteSlash = InStr(objFolder.Title, ":")

If SecuriteSlash > 0 Then
Chemin = Mid(objFolder.Title, SecuriteSlash - 1,
2) & ""
End If
ChoixDossierFichier = Chemin

End Function

Merci.
-----Message d'origine-----
Bonjour,

P.S. Faut sélectionner le nom du fichier dans un
document Word, avant

de lancer la macro.

P.P.S : Manque aussi les déclarations à mettre dans
l'entête du

module, en dehors de toute procédure:

Declare Function SearchTreeForFile Lib "imagehlp" (ByVal
RootPath As

String, _
ByVal InputPathName As String, _
ByVal OutputPathBuffer As String) As Long
Public Const MAX_PATH = 260

--
On n' apprend pas à un vieux singe à faire des grimaces
"Clément Marcotte" a
écrit dans le

message de news:u2O3au$
Bonjour,

La mémoire m'a fait défaut. Voici une macro pour
retrouver un


fichier
enfoui dans une arborescence du bureau:

Sub ChercheSurLedisque()
'Clément Marcotte
'Amos (Québec)
'Grandement inspiré de allapi.net
'URL: http://www.allapi.net/
'E-Mail:
Dim tempStr As String, Ret As Long, lefichier As
String


Dim message As String, laplace As String, lendroit
As Byte


'create a buffer string
tempStr = String(MAX_PATH, 0)
'Si le fichier existe, le résultat est 1
'autrement, le résultat est 0
lendroit = InStr(Selection, Chr(13))
If lendroit > 0 Then
lefichier = Left(Selection, Len(Selection) - 1)
End If
lefichier = Trim(lefichier)
Ret = SearchTreeForFile("c:windowsbureau",
lefichier, tempStr)


If Ret <> 0 Then
laplace = Left$(tempStr, InStr(1, tempStr,
Chr$(0)) - 1)


Selection.MoveRight Unit:=wdCharacter, Count:=2,
Extend:=wdMove


Selection.InsertAfter (laplace)
message = "Le fichier " & lefichier & vbNewLine
message = message & " a été trouvé dans " &
vbNewLine


message = message & laplace
MsgBox message

Else
laplace = "Fichier non trouvé ou inexistant :"
MsgBox laplace & lefichier
End If
End Sub


--
On n' apprend pas à un vieux singe à faire des grimaces
"Izmi" a écrit dans
le message de


news:061701c55fbb$35a27710$
Bonjour ;

Y - aurait - il moyen de placer une macro sur une
page



word pour appeler un dossier placer sur le bureau
comprenant plusieurs sous dossiers, fichiers excel,
documents word, PDF etc...

Merci




.





1 2