Determiner le chemin vers mes documents suivant OS [Résolu]

Signaler
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
-
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
-
Bonjour à tous,


Donc voilà, je voudrais savoir comment je peux définir le chemin d'accès vers "Mes document"? a savoir que sous WinXP c'est "document and setting" et Win7 et 8 c'est c:/utilisateurs/Documents.

J'explique pourquoi c'est faire

j'ai un USF qui possède un bouton "convertir en PDF". je ne détaillerais pas ça fonction car vous l'avez deviné je pense, parcontre, il faudrait qu'il me les ranges directement dans le dossier "POINTAGES" du dossier "Documents"

voici le code que j'ai : (eu par le forum)

Sub ToPdf()
Dim pdfjob As Object
Dim DefaultPrinter

'si tu veux ton pdf dans le dossier pointage il suffit de mettre ceci:

chemsave = "C:\Documents\POINTAGES\"

If chemsave = "" Then Exit Sub
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
'NomExcel = ThisWorkbook.Name
'NomPdf = Left(NomExcel, Len(NomExcel) - 4) & ".pdf"
With pdfjob
If .cstart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = chemsave 'chemin destination
.cOption("AutosaveFilename") = To_PDF.ComboBox1.Value & ".pdf" 'nom de la feuille
.cOption("AutosaveFormat") = 0
.cClearCache
End With
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=32766, Copies:=1, ActivePrinter:="PDFCreator" 'on imprime la feuille active
'ThisWorkbook.PrintOut Copies:=1, ActivePrinter:="PDFCreator"
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
With pdfjob
.cDefaultprinter = DefaultPrinter
.cClearCache
.cClose
End With
Set pdfjob = Nothing
MsgBox "Votre PDF se trouve à cet emplacement: " & chemsave, vbInformation, "Convertir en PDF"
End Sub

Merci pour votre aide

--

10 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Bonjour,
Comme toujours, je m'arrête personnellement à la seule question technique (sans me préoccuper de sa raison).

Essaye ceci :
toto = Split(Environ("HOMEPATH"), "\")
MsgBox Environ("HOMEDRIVE") & toto(0) & "\" & toto(1)

que je n'ai pu que tester sous XP (-mais qui devrait également "marcher" pour WIN 7 et 8)
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Je voudrais quand-même réagir à ce non-sens :
citation :
 chemsave = "C:\Documents\POINTAGES\"

If chemsave = "" Then Exit Sub
fin de citation.
Comment peux-t-u imaginer une seule seconde qu'une variable puisse être vide alors que tu lui as attribué une valeur dans l'instruction qui précède le contrôle de condition ?!!!

Ce que tu as écrit aurait pour analogie quelque chose du genre :
1) je mets 10 euros dans mon porte-monnaie
2) si mon porte-monnaie est vide, alors .... (IL NE RISQUE PAS, DE L'ETRE, VIDE !!!)
Messages postés
7418
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 juin 2021
124
Bonjour,
Non c'est moi qui lui est donné ce code qui à l'origine n'avait pas cette ligne :chemsave = "C:\Documents\POINTAGES\". Mais comme le demandeur disait que le code ne fonctionnait pas je lui ai donné cela pour faire un essai. Dans l'exemple donné cheminsave est dans une autre partie.

@+
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Bonjour, cs_Le' Pivert.
Ah ... J'aime autant ... (mais il aurait quand-même au moins pu alors éviter de "reprendre" avec cet essai "temporaire" ...)
Bon. De toutes manières et comme je l'ai dit plus haut, son code (la raison) ne m'intéresse pas. Seule la question technique m'intéresse.
Messages postés
7418
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 juin 2021
124
ucfoutu,

sous W8 ton code ne fonctionne pas.
Voilà ce que j'ai trouvé suivant ce site:


MsgBox Environ("USERPROFILE") & "\"

http://www.info-3000.com/vbvba/variableenvironnement.php
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Et que te retourne (exemple), sous VB8 :
Environ("USERPROFILE") & "\"
?
Messages postés
7418
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 juin 2021
124
Cela donne:

C:\Users\Utilisateur\

ce qui permet de créer un dossier comme ceci:

Option Explicit
Dim rep As String
Private Sub CommandButton1_Click()
rep = Environ("USERPROFILE") & "\"
Test
End Sub
Sub Test()
CreationRepertoire rep & "\Documents\", "Pointages"
End Sub
Sub CreationRepertoire(DossierParent As String, NomRep As String)
Dim Chemin As String
'Vérifie si le répertoire existe.
If Dir(DossierParent, vbDirectory + vbHidden) <> "" Then
'Vérifie que le dossier à créer n'existe pas déjà dans le répertoire
If Dir(DossierParent & "\" & NomRep, vbDirectory + vbHidden) = "" Then _
MkDir DossierParent & "\" & NomRep
End If
End Sub

Mais je ne t'apprends rien cela tu connais. C'est pour le demandeur.
Messages postés
7418
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 juin 2021
124
Correction, j'ai mis un antislash de trop:

CreationRepertoire rep & "Documents\", "Pointages"
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
Re-bonjour, j
je profite de ce petit moment pour faire un test, parcontre, ce code sert bient à créer le dossier ?

Ma question est peut être bête mais la vous m'avez perdu je crois...

Merci
Messages postés
7418
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 juin 2021
124
Voilà la question:

" Determiner le chemin vers mes documents suivant OS"

Je pense que tu as la réponse

Sous XP tu auras
rep = C:\document and setting\utilisateur\

et sous W7 et 8
rep = C:\Users\Utilisateur\

C'est bien ce que tu voulais.

Par contre je ne comprends pas que tu ne veuilles pas te servir d'une boite de dialogue de création de dossier qui est beaucoup plus pratique!
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
C'est pour ça qu'à mon arrivé sur le forum je voulais mettre mon fichier, ça aurait été plus simple pour moi d'expliquer. mais je vais dépatouiller tout ça. effectivement la boite de dialogue au démarrage c'est nickel.

si tu veux je t'explique au détail par MP le fonctionnement de mon fichier car je doute que tu accepte que je te l'envoi par mail (ce que je comprend tout a fait. :)

--
Messages postés
7418
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 juin 2021
124
J'ai fait un essai du code de création de dossier sur XP. Cela ne fonctionne pas car c'est Mes documents. Donc voici le code remanié qui fonctionne sous XP et W7 et 8:

Option Explicit
Dim rep As String
Private Sub CommandButton1_Click()
rep = Environ("USERPROFILE") & "\"
Dim Mot As String
Dim Position As Integer
Mot = "Users"
Position = InStr(rep, Mot)
If Position = 0 Then
CreationRepertoire rep & "Mes documents\", "Pointages"
Else
CreationRepertoire rep & "Documents\", "Pointages"
End If
End Sub
Sub CreationRepertoire(DossierParent As String, NomRep As String)
Dim chemin As String
'Vérifie si le répertoire existe.
If Dir(DossierParent, vbDirectory + vbHidden) <> "" Then
'Vérifie que le dossier à créer n'existe pas déjà dans le répertoire
If Dir(DossierParent & "\" & NomRep, vbDirectory + vbHidden) = "" Then _
MkDir DossierParent & "\" & NomRep
End If
End Sub


Donc tu peux faire ton choix en comparant les 2 possibilités.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Ben .. ou je lis mal, ou je ne sais quoi ...
moi, j'ai lu que par exemple sous XP, il voulait le répertoire :
C:\document and setting\
et non
C:\document and setting\utilisateur\
répertoire dans lequel il a mis un dossier "Documents"
Messages postés
7418
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 juin 2021
124
Je pense qu'en demandant cela:

"Donc voilà, je voudrais savoir comment je peux définir le chemin d'accès vers "Mes document"

il voulait passer dans les 2 cas par Utilisateur pour arriver à Mes documents ou Documents

Enfin c'est à lui de nous le préciser!
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
ucfoutu : cs_le pivert à raison, il est vrai que je me suis mal exprimé, c'était clair dans ma tête, mais que là... dsl
Là tu vois je suis avec mon papier crayon... enfin tu vois quoi, a force de mal m'expliquer j'étale mon projet sur papier et après on voit... je vais pas vous faire perdre votre temps non plus.

cs_le pivert : Je vais utiliser les codes qui me sont proposé par vos soins, les combinés avec mon bouton "créer un PDF" et SI là ça ne marche pas (car j'aurais surement mal codé tout ça), je reviendrais vous faire un petit coucou ;)

Je tiens a vous dire que vous avez une sacré patience !! je me met a votre place... pas facile quand on a pas les aboutissants.

Merci encore a vous 2, moi je m'y met de suite...

Christian

--
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Je ne vous comprends plus du tout, après la lecture de cette nouvelle discussion :
http://codes-sources.commentcamarche.net/forum/affich-10014468-charger-une-treeview-au-lancement-d-une-usf#p10014625

Alors ? C'est quoi, finalement ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
Bonjour,

Alors ma nouvelle discution porte sur la création du dossier "POINTAGES" dans le dossier "Mes documents" en fonction de l'OS et de l'utilisateur (je m'explique mal) mais ça c'est bon...

Ensuite pour le treeview, lui m'affiche son contenu en temps réel, c'est à dire que chaque fois que l'on convertira un pdf, il sera vu dans le treeview.

j'espère avoir été explicite,

Merci

--