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