VBA pour macro avec plusieurs utilsiateurs - plage variable

JMDBOULE78

XLDnaute Junior
Bonjour le Forum,

J'ai créé une macro d'export de plage variable d'impression avec export en PDF sur le bureau
Cela fonctionne bien sur sur mon PC.

Par contre quand cela est utilisé avec un autre utilisateur le code plante normal puisqu'il cherche mon compte.
Comment puis je faire dans le code pour que cela crée un dossier sur le bureau de l'utilisateur ?
Voici le code de la macro

Merci beaucoup et bonne journée !


x = 4
Range("g5").Select
While ActiveCell <> ""
ActiveCell.Offset(1, 0).Select
x = x + 1
Wend
zone = "B1:I" & x & ""
Range(zone).Select
ActiveSheet.PageSetup.PrintArea = zone
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\fXXXXXXX\Desktop\Scanning.pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub
 

Lone-wolf

XLDnaute Barbatruc
Re : VBA pour macro avec plusieurs utilsiateurs - plage variable

Bonjour JMDBOULE,

Dans une colonne tu mets les différents noms, ensuite dans la macro (exemple à mettre dans un module). A tester.

Code:
Option Explicit
Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
(ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long
Public t As Double, i&, nomdeb$, Rep$, chemin$, derl&

Private Sub CreationDossier(sNomRep As String)
SHCreateDirectoryEx 0&, sNomRep, 0&
End Sub

Sub Creer_Dossier()

Sheets(1).Activate
derl = ActiveSheet.Range("A65536").End(xlUp).Row

On Error Resume Next
For i = 2 To derl
Application.GoTo ActiveSheet.Range("N" & i)
nom =  ActiveSheet.Range("N2:N" & i )

nomdeb = "C:\" & nom

    Rep = "\DeskTop"
    CreationDossier nomdeb & Rep & "\"
    chemin = nomdeb & Rep &  "\"
   Next i

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & "Scanning.pdf", Quality:= xlQualityStandard, IncludeDocProperties:=True,  _
IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub


A+ :cool:
 
Dernière édition:

JMDBOULE78

XLDnaute Junior
Re : VBA pour macro avec plusieurs utilsiateurs - plage variable

Bonjour,

Merci de ta proposition que je garde précieusement dans le cas ou je connais les noms des users qui vont utiliser le fichier Excel.

Par contre, comment faire pour le cas ou tu ne connais pas le nom de l'utilisateur? Est ce que le code pourrais chercher le nom du user dans Windows ? ou le mettre directement dans C: à la racine ce qui permettrait de contourner cette limitation ?

Merci

Bonne apres midi !
 

Lone-wolf

XLDnaute Barbatruc
Re : VBA pour macro avec plusieurs utilsiateurs - plage variable

Re JMDBOULE,

bonne question, seuls les Grands Manitou peuvent t'en informer. Sinon j'ai apporté un modification à la macro. A tester.

Mais des noms dans la colonne N.

Code:
Sub Creer_Dossier()

Sheets(1).Activate
derl = ActiveSheet.Range("N65536").End(xlUp).Row

On Error Resume Next
For i = 2 To derl
Application.GoTo ActiveSheet.Range("n" & i)
nomdeb = "D:\Collaborateurs\"  'Collaborateurs est un dossier créé

    Rep = ActiveCell.Value & "\"
    CreationDossier nomdeb & "\" & Rep  'et la il vas créer un sous-dossier au nom de la personne

chemin = nomdeb & "\" & Rep & "\"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & "Scanning.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
Next i
End Sub



A+ :cool:
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
318

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch