Determiner le chemin vers mes documents suivant OS

Résolu
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 - 10 déc. 2013 à 09:09
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 - 11 déc. 2013 à 08:49
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

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 déc. 2013 à 10:33
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)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 10/12/2013 à 11:06
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 !!!)
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
10 déc. 2013 à 11:12
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.

@+
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 déc. 2013 à 11:18
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.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
10 déc. 2013 à 11:44
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 déc. 2013 à 12:52
Et que te retourne (exemple), sous VB8 :
Environ("USERPROFILE") & "\"
?
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
10 déc. 2013 à 14:00
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.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
10 déc. 2013 à 14:12
Correction, j'ai mis un antislash de trop:

CreationRepertoire rep & "Documents\", "Pointages"
0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
10 déc. 2013 à 14:16
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
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
10 déc. 2013 à 14:50
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!
0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
10 déc. 2013 à 17:28
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. :)

--
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
10 déc. 2013 à 17:45
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 déc. 2013 à 17:49
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"
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
10 déc. 2013 à 17:59
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!
0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
10 déc. 2013 à 18:54
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

--
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 11/12/2013 à 07:06
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
0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
11 déc. 2013 à 08:49
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

--
0
Rejoignez-nous