Modification macro selon l'utilisateur

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 !

matthieu2701

XLDnaute Occasionnel
Bonjour,

Dans mon entreprise nous sommes deux sites séparés. Nous avons donc deux réseaux différents.

Le problème c'est que nous utilisons tous un même fichier excel avec des macros.

Par exemple, MARTIN est sur le site X et HENRI sur le site Y.

Est-il possible, dans la macro, d'indiquer que si le fichier est ouvert par MARTIN la macro prends en compte le chemin du site X (Q😛DD/Dossiers/En cours) et que si le fichier est ouvert par HENRI le chemin Y soit pris en compte (V😀ossiers/En cours) ?

En espérant avoir été assez clair.

Merci par avance pour vos réponses.
 
Re : Modification macro selon l'utilisateur

Bonjour,

Environ("username") donne le nom de l'utilisateur.

avec un Select Case pour définir le chemin ...

Bonne suite

Comment et où l'intégrer à mon code ?

PHP:
Sub Dossier()

With Sheets("Echéancier")
    Nom = .Range("B2")
    PCE = .Range("G6")
End With

Mac = "MaTT'S HD:Users:Matthieu:"
Chemin = "Q:\AAGP2\PDD GAZ\PDD\Dossiers PDD\En cours\" & Feuil3.Cells(2, 2).Text & " " & Feuil3.Cells(6, 7).Text

If Nom = "" Or PCE = "" Then
MsgBox "Veuillez compléter les champs Nom/Prénom et PCE pour pouvoir générer le dossier du client", vbOKOnly + vbCritical, "Attention"
Exit Sub
End If

On Error GoTo fin

MkDir "MaTT'S HD:Users:Matthieu:" & Feuil3.Cells(2, 2).Text & " " & Feuil3.Cells(6, 7).Text

ActiveSheet.Shapes("MonBouton1").Visible = True
Application.OnTime Now + TimeValue("00:00:02"), "EffacerMessage1"
Exit Sub

fin:
MsgBox "Le dossier numérique " & Nom & " " & Ref & " a déjà été créé. Impossible de le créer une seconde fois.", vbCritical, "Attention"

End Sub
Sub EffacerMessage1()
ActiveSheet.Shapes("MonBouton1").Visible = False
End Sub
 
Re : Modification macro selon l'utilisateur

En début de code

Code:
utilisateur = Environ("username")
Select Case utilisateur 

Case "MARTIN", "ALBERT", "PAUL"
    Chemin="Q:PDD/Dossiers/En cours)"

Case "HENRI", "HECTOR"
   Chemin=  "Vossiers/En cours"

End Select

à adapter

Mais a priori, le nom doit être fourni pour pouvoir continuer donc peut-être pas besoin du Environ("username")
 
Re : Modification macro selon l'utilisateur

Donc plus besoin de
Chemin = "Q:\AAGP2\PDD GAZ\PDD\Dossiers PDD\En cours\" & Feuil3.Cells(2, 2).Text & " " & Feuil3.Cells(6, 7).Text

Cela donne donc ça
Code:
Sub Dossier() 

With Sheets("Echéancier") 
    Nom = .Range("B2") 
    PCE = .Range("G6") 
End With 

utilisateur = Environ("username")
Select Case utilisateur 

Case "MARTIN", "ALBERT", "PAUL"
    Chemin="Q:PDD/Dossiers/En cours)"

Case "HENRI", "HECTOR"
   Chemin=  "Q:\AAGP2\PDD GAZ\PDD\Dossiers PDD\En cours\" & Feuil3.Cells(2, 2).Text & " " & Feuil3.Cells(6, 7).Text"

End Select


If Nom = "" Or PCE = "" Then 
MsgBox "Veuillez compléter les champs Nom/Prénom et PCE pour pouvoir générer le dossier du client", vbOKOnly + vbCritical, "Attention" 
Exit Sub 
End If 

On Error GoTo fin 

MkDir chemin & Feuil3.Cells(2, 2).Text & " " & Feuil3.Cells(6, 7).Text 

ActiveSheet.Shapes("MonBouton1").Visible = True 
Application.OnTime Now + TimeValue("00:00:02"), "EffacerMessage1" 
Exit Sub 

fin: 
MsgBox "Le dossier numérique " & Nom & " " & Ref & " a déjà été créé. Impossible de le créer une seconde fois.", vbCritical, "Attention" 

End Sub 
Sub EffacerMessage1() 
ActiveSheet.Shapes("MonBouton1").Visible = False 
End Sub
 
Dernière édition:
Re : Modification macro selon l'utilisateur

Dans le principe : oui

Mais pas sûr que les chemins définis soient corrects
Chemin= "Q:\AAGP2\PDD GAZ\PDD\Dossiers PDD\En cours\" & Feuil3.Cells(2, 2).Text & " " & Feuil3.Cells(6, 7).Text"

MkDir chemin & Feuil3.Cells(2, 2).Text & " " & Feuil3.Cells(6, 7).Text

Dans le code du post 3 la variable chemin n'est pas utilisée, par contre dans le MkDir on utilise le contenu de la variable Mac ("MaTT'S HD:Users:Matthieu:")

je n'ai pas bien compris le besoin et la structure pour répondre précisemment
 
Re : Modification macro selon l'utilisateur

Dans le principe : oui

Mais pas sûr que les chemins définis soient corrects
Chemin= "Q:\AAGP2\PDD GAZ\PDD\Dossiers PDD\En cours\" & Feuil3.Cells(2, 2).Text & " " & Feuil3.Cells(6, 7).Text"

MkDir chemin & Feuil3.Cells(2, 2).Text & " " & Feuil3.Cells(6, 7).Text

]Feuil3.Cells(2, 2).Text & " " & Feuil3.Cells(6, 7).Text sera répété deux fois dans le Répertoire crée


Dans le code du post 3 la variable chemin n'est pas utilisée, par contre dans le MkDir on utilise le contenu de la variable Mac ("MaTT'S HD:Users:Matthieu:")

je n'ai pas bien compris le besoin et la structure pour répondre précisemment
 
Re : Modification macro selon l'utilisateur

C'est normal qu'il y est MAC et chemin. MAC c'est pour faire les test chez moi sur mon Mac et chemin c'est pour le boulot.

J'ai créé un fichier avec des macros. Nous sommes deux sites à l'utiliser et chacun à un réseau différent. Nous devons échanger le fichier avec les mise à jours de la journée.

C'est pour cela que je souhaite avec un seul fichier et que la macro s'adapte à personne qui l'utilise.
 
Re : Modification macro selon l'utilisateur

Je viens de tester. Le dossier que j'enregistre va se mettre directement dans "mes doucements". Voilà mon code

Sub Dossier()

utilisateur = Environ("username")
Select Case utilisateur

Case "MARTIN", "", ""
chemin = "Q:\AAGP2\PDD GAZ\PDD\Dossiers PDD\En cours\"

Case "MICHEL", ""
chemin = "Q:\AAGP2\PDD GAZ\PDD\Dossiers PDD\Test\"

End Select

With Sheets("Echéancier")
Nom = .Range("B2")
PCE = .Range("G6")
End With

'chemin = "Q:\AAGP2\PDD GAZ\PDD\Dossiers PDD\En cours\" & Feuil3.Cells(2, 2).Text & " " & Feuil3.Cells(6, 7).Text

If Nom = "" Or PCE = "" Then
MsgBox "Veuillez compléter les champs Nom/Prénom et PCE pour pouvoir générer le dossier du client.", vbOKOnly + vbCritical, "Attention"
Exit Sub
End If

On Error GoTo fin

MkDir chemin & Feuil3.Cells(2, 2).Text & " " & Feuil3.Cells(6, 7).Text

'Application.StatusBar = "Le dossier numérique " & Nom & Ref & " a été créé."
'Application.Wait (Now + TimeValue("00:00:02"))
'Application.StatusBar = ""

ActiveSheet.Shapes("MonBouton1").Visible = True
Application.OnTime Now + TimeValue("00:00:02"), "EffacerMessage1"
Exit Sub

fin:
MsgBox "Le dossier numérique " & Nom & " " & Ref & " a déjà été créé. Impossible de le créer une seconde fois.", vbCritical, "Attention"

End Sub
Sub EffacerMessage1()
ActiveSheet.Shapes("MonBouton1").Visible = False
End Sub
 
Re : Modification macro selon l'utilisateur

Re,
content d'avoir pu aider.

une broutille:
dans Case "MARTIN", "", "" les virgules séparent différentes valeurs possibles pour l'action qui suit. S'il n'y a qu'une valeur ca donne : Case "MARTIN"

dernier point, il peut être intéressant de prévoir le cas où un utilisateur non prévu utilise ce classeur:

Code:
Case Else    ' Autres valeurs.
    MsgBox " Utilisateurs non prévu !
    Exit Sub

à coller juste avant End Select

Bonne suite
 
- 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

D
  • Question Question
Réponses
5
Affichages
249
Didierpasdoué
D
Réponses
0
Affichages
304
Réponses
5
Affichages
294
Réponses
25
Affichages
1 K
Retour