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

Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Dernière intervention
30 juillet 2015
- - Dernière réponse : cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
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

--
Afficher la suite 

Votre réponse

10 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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)
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
-
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 !!!)
cs_Le Pivert
Messages postés
5594
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 décembre 2018
-
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.

@+
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
-
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.
Commenter la réponse de ucfoutu
Messages postés
5594
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 décembre 2018
0
Merci
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
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
-
Et que te retourne (exemple), sous VB8 :
Environ("USERPROFILE") & "\"
?
cs_Le Pivert
Messages postés
5594
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 décembre 2018
-
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.
cs_Le Pivert
Messages postés
5594
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 décembre 2018
-
Correction, j'ai mis un antislash de trop:

CreationRepertoire rep & "Documents\", "Pointages"
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Dernière intervention
30 juillet 2015
-
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
Commenter la réponse de cs_Le Pivert
Messages postés
5594
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 décembre 2018
0
Merci
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!
Commenter la réponse de cs_Le Pivert
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Dernière intervention
30 juillet 2015
0
Merci
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. :)

--
Commenter la réponse de cco86260
Messages postés
5594
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 décembre 2018
0
Merci
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.
Commenter la réponse de cs_Le Pivert
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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"
Commenter la réponse de ucfoutu
Messages postés
5594
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 décembre 2018
0
Merci
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!
Commenter la réponse de cs_Le Pivert
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Dernière intervention
30 juillet 2015
0
Merci
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

--
Commenter la réponse de cco86260
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Dernière intervention
30 juillet 2015
0
Merci
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

--
Commenter la réponse de cco86260

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.