VBA pour macro avec plusieurs utilsiateurs - plage variable

  • Initiateur de la discussion Initiateur de la discussion JMDBOULE78
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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+ 😎
 
Dernière édition:
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 !
 
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+ 😎
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
486
Réponses
3
Affichages
537
Réponses
3
Affichages
822
Réponses
7
Affichages
106
Réponses
1
Affichages
182
Retour