Nom utilisateur dans chemin de sauvegarde

Bonjour,

Existe t'il s'il vous plait un moyen de glisser à la place de "FRRMDUQ" le nom utilisateur du PC s'il vous plait ?

Nom_Fichier = "C:\Documents and Settings\FRRMDUQ\Desktop\Pointage" & " " & Range("S1!A1") & " " & Range("S1!C1") & ".xlsm"

J'ai trouvé ceci, mais n'arrive pas à l'adapter :

Text = Range("Données!B4").Value & vbCrLf & Environ("username")

Un grand merci par avance.

@ toute.

David

Bonjour

Testes

  nom_fichier = "C:\Documents and Settings\" & Environ("username") & "\Desktop\Pointage" & " " & Range("S1!A1") & " " & Range("S1!C1") & ".xlsm"

Hello Banzaï64,

Merci mais désolé ça ne fonctionne pas de cette manière, j'avais déjà testé au taf tout à l'heure lorsque j'ai "posté".

Ca me met un débogage sur la ligne d'après :

ActiveWorkbook.SaveAs Nom_Fichier, xlOpenXMLWorkbookMacroEnabled

Je vais essayé de gratter une solution sur le net et reviens

@ toute

Encore merci pour ton aide.

David

Bonjour bonjour,

Je n'ai toujours pas réussi à trouver de solution à mon problème ; celle du gentil Banzaï64 ne fonctionne malheureusement pas

Celle-ci :

Nom_Fichier = "C:\Documents and Settings\" & Environ("username") & "\Desktop\Pointage" & " " & Range("S1!A1") & " " & Range("S1!C1") & ".xlsm"
     ActiveWorkbook.SaveAs Nom_Fichier, xlOpenXMLWorkbookMacroEnabled

Help

Merci.

@ toute...

Bonjour

Comment veux tu que l'on t'aide si tu n'expliques pas

Déjà la question de départ j'y ai répondu et au moins c'est bon

C'est ton code suivant qui ne passe pas

Qu'y a t-il dans A1 et C1 ?

Quel est le message d'erreur ?

En répondant à ces questions cela peut dénouer le problème, moi je ne peux pas tester le paramètre xlOpenXMLWorkbookMacroEnabled(pas XL 2003)

Bonjour,

Sur Vista "C:\Documents and Settings\" est un dossier système et est inaccessible.

Le Desktop est dans le dossier "C:\Utilisateur\" & Environ("username") & "\Desktop\...."

Encore faut-t-il que ce soit un PC en Français.

A+

Bonjour Banzaï, bonjour Lermite (content de te lire à nouveau)

Petite explication donc pour Bonzaï. Je cherche tout simplement à enregistrer un fichier en le personnalisant suivant l'utilisateur afin qu'elle fonctionne aussi sur tous les postes (j'ai créé un onglet "S" où je place les données utilisateur) ; pas de problème pour enregistrer sur C: , par contre pour un enregistrement sur le bureau (Desktop en anglais pour ce qui me concerne) il me fallait l'USERNAME. Comme je n'ai pas trouvé de solution avec ceci :

Nom_Fichier = "C:\Documents and Settings\" & Environ("username") & "\Desktop\Pointage" & " " & Range("S1!A1") & " " & Range("S1!C1") & ".xlsm"
     ActiveWorkbook.SaveAs Nom_Fichier, xlOpenXMLWorkbookMacroEnabled

J'ai procédé autrement !

Sur Thisworbook je récupère l'USERNAME de chaque PC avec ceci dans l'onglet "S" :

Range("B2").Value = Environ("USERNAME")

pour aller le récupérer tout comme le reste et enregistrer sur le bureau de chaque utilisateur cvomme cela :

Dim Nom_Fichier As String
     Nom_Fichier = "C:\Documents and Settings\" & Range("S1!A2") & "\Desktop\ Mon pointage" & " " & Range("S1!C1") & ".xlsm"
     ActiveWorkbook.SaveAs Nom_Fichier, xlOpenXMLWorkbookMacroEnabled
'--------------------------------------------------------------------------------------------------------------------------------------------------
        MsgBox "Ce classeur vient d'être renommé et placé sur votre bureau, vous" & vbNewLine & "pouvez donc commencer à l'utiliser." & vbNewLine & Chr(13) & "Pour sortir, utilisez s'il vous plait le bouton prévu.", , "Voilà !"
        Range("C7").Select
'--------------------------------------------------------------------------------------------------------------------------------------------------

Par contre ce qui est étonnant d'^près la remarque de Bonzaï

En répondant à ces questions cela peut dénouer le problème, moi je ne peux pas tester le paramètre xlOpenXMLWorkbookMacroEnabled(pas XL 2003)

C'est que je suis sur XP et Office 2010..... et ça tourne !

Par contre avec ceci :

Nom_Fichier = "C:\Documents and Settings\" & Range("S1!A2") & "\Desktop\ Mon pointage" & " " & Range("S1!C1") & ".xlsm"
     ActiveWorkbook.SaveAs Nom_Fichier, xlOpenXMLWorkbookMacroEnabled

ca ne fonctionne pas avec Windows 7 et Office 2010 ...........

D'après ce que je comprends c'est à cause de :

xlOpenXMLWorkbookMacroEnabled

Existe t'il, s'il vous plait une autre manière compatible avec Seven, voir avec les deux versions ???

Merci par avance.

@ toute.....

David

PS : Le code complet

Private Sub CommandButton1_Click()

ActiveSheet.Shapes("CommandButton1").Delete

Application.ScreenUpdating = False
    For i = 2 To 52
    Sheets("S1").Select

        Sheets("S1").Copy After:=Sheets(i - 1)
        Sheets(i).Select

        Sheets(i).Name = "S" & i
        Sheets(i).Cells(4, 2) = i

    Next i

        Sheets("S1").Select
Application.ScreenUpdating = True
'--------------------------------------------------------------------------------------------------------------------------------------------------
Dim Nom_Fichier As String
     Nom_Fichier = "C:\Documents and Settings\" & Range("S1!A2") & "\Desktop\ Mon pointage" & " " & Range("S1!C1") & ".xlsm"
     ActiveWorkbook.SaveAs Nom_Fichier, xlOpenXMLWorkbookMacroEnabled
'--------------------------------------------------------------------------------------------------------------------------------------------------
        MsgBox "Ce classeur vient d'être renommé et placé sur votre bureau, vous" & vbNewLine & "pouvez donc commencer à l'utiliser." & vbNewLine & Chr(13) & "Pour sortir, utilisez s'il vous plait le bouton prévu.", , "Voilà !"
        Range("C7").Select

End Sub
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Range("C1"), Target) Is Nothing Then
    If UCase(Target.Cells(1, 1)) <> "" Then
        Valeur = Target.Value
            If MsgBox("Valider " & Valeur & " comme l'année en cours ?", vbQuestion + vbYesNo, "IMPORTANT") = vbYes Then
               Range("C7").Select
                MsgBox "Vérifier les horaires par défaut et cliquez sur créer les 52 semaines ", , "POUR FINIR"
                  Exit Sub
                    End If

            If vbNo Then
                Target.Value = Empty
                  Range("C1").Select
                    End If

   End If
   End If

End Sub

Je confirme mon poste précédant pour Vista.

Pour W7 le dossier Documents and Settings n'existe plus ou n'est plus visible

C'est le même que pour vista sauf que ce n'est plus Desktop mais Bureau

Donc pour W7 ce serait,

"C:\Utilisateur\" & Environ("username") & "\Bureau\....

Fait des test en manuel..

Si tu y arrive je peu te passé le code pour connaitre la version de windows du PC

A+

Hello !

Désolé pour le retard, mais boulot oblige je n'ai pu ni te répondre, ni tester

De plus je viens de ramener Office Pro plus 2013 à la maison pour remplacer mon désuet 2010 et vais l'installer de ce pas

Si quelqu'un est intéressé je vais en avoir un autre dans le blister à vendre pas trop cher d'ici peu !!!

Je vous tiens au jus pour mes soucis lorsque je serai opérationnel !

@ toute......

David

Bonjour tout le monde

Excusez du retard, mais après plusieurs essais.......

  • A la maison, Windows 7 et Office 2013
  • Au boulot, XP et Office 2010

............. ce code ci-dessous fonctionne avec Desktop pour les deux........... toutefois, le solution de Lermite est la mieux car de mon côté quelques fois j'avais en user "FRRMDQU" et d'autres fois "David"....... donc une fois de plus merci beaucoup.

Dim Nom_Fichier As String
         Nom_Fichier = "C:\Documents and Settings\" & Environ("username") & "\Desktop\ Mon pointage" & " " & Range("S1!C1") & ".xlsm"
     ActiveWorkbook.SaveAs Nom_Fichier, xlOpenXMLWorkbookMacroEnabled

Avant de clore ce post je vais un dernier essai sur le PC d'un collègue au taf où j'avais une erreur l'autre jour.

Bonne journée.

@ toute.......

Bonjour,

Excusez de cete absence mais pas trop le temps en ce moment de m'adonner à ma passion du VB

Bon alors, pour reprendre le fil, encore un truc bizarre !!!

Cette macro fonctionne au boulot sur mon poste avec XP et Office 2010, et chez moi avec Seven et Office 2013, mais pas sur le poste d'un collègue qui lui a Seven (pistonné !) et Office 2010

Nom_Fichier = "C:\Pointage vierge" & " " & Range("Données!B7") & " " & Range("Données!B8") & ".xlsm"
ActiveWorkbook.SaveAs Nom_Fichier, xlOpenXMLWorkbookMacroEnabled

Le débogage se place sur cette ligne :

ActiveWorkbook.SaveAs Nom_Fichier, xlOpenXMLWorkbookMacroEnabled

Le plus fou dans tout ça est que ce bout de code ci-dessous fonctionne sur son poste

Nom_Fichier = "C:\Documents and Settings\" & Environ("username") & "\Desktop\ Mon pointage" & " " & Range("S1!C1") & ".xlsm"
ActiveWorkbook.SaveAs Nom_Fichier, xlOpenXMLWorkbookMacroEnabled

Pour résumer, à un certain moment j'enregistre sur "C :" dans cet état pour l'année prochaine, ensuite sous un autre nom pour utilisation de tous les jours.

"B7" et "B8" sont le prénom et le nom dans l'onglet "Données".

"S1" est tout simplement l'année en cours dans l'onglet "S1"

Est ce quelqu'un pourrait m'expliquer pourquoi ces deux codes quasi simillaires ne fonctinnent ils pas sur le même PC s'il vous plait ?

Merci par avance.

@ toute.....

Bonjour,

Ca ne fonctionne pas non plus chez mon père avec Seven et office 2010

Quelqu'un aurait il une idée du pourquoi de comment s'il vous plait ?

Merci.

@ toute...

Re,

Quand ont à W7 en 64bits ont est tentés de choisir Excel 64bits aussi, malheureusement certaine fonctionnalités ne sont pas compatibles entre 32/64b.

Même si ont dispose d'un 64b il est nécessaire de sélectionner Excel 32b (option à l'installation) si des appli 32b doivent tourner sur le PC.

Je pense que tes soucis viennent de cette différence.

A+

Merci Lermite,

Ca c'est pas cool !

Y a t'il un moyen de savoir quelle version (32/64) est installé sur le PC s'il te plait ?

De plus j'ai installé moi même Office 2010 en version d'essai 60 jours sur le pC de mon père hier, et j'ai bien choisi le 32 pourtant !

Aurais tu, à tout hasard un autre point de vue s'il te plait ?

Merci.

@ toute....

Bonjour,

Je confirme donc que tous les PC où j'ai testé mon fichier sin en 32 bits (Seven & Office)

Retour donc à la case départ, et toujours cette question :

Pourquoi l'enregistrement du classeur actif fonctionne sur le bureau et non sur la racine du "C" ?

Grrrr que c'est rageant de ne pas trouver

@ toute.....

Re,

Au moins avec W7 il faut avoir le jeton d'administateur pour sauver sur la racine du Boot.

Prochaine fois, quand tu a une erreur, donne le N° de l'erreur et sont libellé.

Tu veux une preuve ?

Sur le poste qui fonctionne pas sur le C -->

Clic droit sur l'icône d'excel -> Ouvrir en tant qu'administrateur.

Charger ton classeur.

Le sauver --> ça va fonctionner.

A+

Effectivement j'avais une erreur d'exécution 1004 ; excuses moi

Mais c'est quand même fou cette histoire ; pourquoi ça ne le fait pas at home ??? pourquoi seulement au boulot ??? PC verrouillé ?!

Effectivement j'ai essayé suite à ton message "d'enregistrer sous" un dossier quelconque sur la racine et ça m'a bloqué

Décidément on en apprends tous les jours en ta compagnie ; je vais finir par t'épouser lol bien sur !

Y a t'il un moyen en VB de contourner ce verrouillage, ou dois-je changer le chemin e; par exemple "mes documents" ; mais ne vais je pas encore avoir l'embrouille entre XP et Seven (Mes documents, My documents, etc....)

Merci de ta patience et tes explications.

@ toute.....

Plutôt que de sauver dans la racine du C:\ créer un répertoire par exemple SauverClasseur dans le C: ça c'est pas interdit à une appli qui n'est pas avec le jeton d'Admin. et faire ton deuxième Sauve dans ce répertoire.

Il faut bien évidemment gérer cette fonction supplémentaire. Si un ou 2 PC crée ces répertoires sinon tu dis, je te donnerais la marche à suivre.

A+

Merci Lermite,

Je veux bien un coup de main sur ce sujet si tu veux bien

En fait, avant de faire la sauvegarde tu crées un dossier où la faire ; c'est ça ?

Tu ne dois créer ce répertoire qu'une seule fois et AVANT de faire quoi que ce soit, pour faire plus simple, tu le crée dans l'explorateur de fichiers.

Et en supposant que tu ai ajouter le répertoire SauverClasseur

ton code devient..

Nom_Fichier = "C:\SauverClasseur \Pointage vierge" & " " & Range("Données!B7") & " " & Range("Données!B8") & ".xlsm"
ActiveWorkbook.SaveAs Nom_Fichier, xlOpenXMLWorkbookMacroEnabled

A+

PS: Mais il y a moyen de gérer cela par code.

Rechercher des sujets similaires à "nom utilisateur chemin sauvegarde"