XL pour MAC macro excel enregister sous contenu cellule et demander chemin d'enregistrement

lyes123456

XLDnaute Nouveau
Bonsoir
je cherche une macro pour le fichier excel en PJ,
l'utilisateur doit remplir les champs désignés, une fois rempli, la macro doit lui demander ou il doit enregistrer son fichier excel
bien sure, je veux que le nom du fichier soit le contenu de la cellule H8 qui doit être rempli par l'utilisateur
une fois enregistrer le fichier reste ouvert, si jamais une autre modification est a faire, le fichier s'enregistre avec les dernières modifications
je ne sais pas si ma demande est complexe, mais est ce que vous avez une idée?
votre support est appréciable, merci
 

Pièces jointes

  • test macro.xlsm
    15.5 KB · Affichages: 8

job75

XLDnaute Barbatruc
Bonjour lyes123456, bienvenue sur XLD,

La feuille est protégée par mot de passe, comment modifier la cellule H8 ?

Et êtes-vous sûr qu'il s'agit de H8 car elle contient le texte "FRAIS SPOT NBR JOUR" ???

Essayez cette macro mais sur MAC pas du tout certain que Application.GetSaveAsFilename fonctionne :
VB:
Sub Enregistrer()
Dim fichier As Variant
fichier = Sheets("CALCUL").[H8]
ChDir ThisWorkbook.Path
fichier = Application.GetSaveAsFilename(fichier, "Excel Files (*.xlsm), *.xlsm")
Application.DisplayAlerts = False
If fichier <> False Then ThisWorkbook.SaveAs fichier
End Sub
A+
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, lyes123456, job75

Pour infos
La feuille est protégée mais sans mot de passe.
(J'ai fait: Ôter la protection de la feuille et pas de prompt pour un mot de passe)
Et non, ne fonctionnera pas sur Mac

NB:
Job, on a en d'ailleurs récemment échangé à ce sujet sur un autre fil ;)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Actuellement sous XL2K3, j'ai donc du convertir le *.xlsm en *.xls
Je suis étonné que cette conversion* supprime le mot de passe.
???

*: réalisée avec le pack de compatibilité pour Microsoft Office 2000, Office XP ou Office 2003 mis à disposition par Microsoft et que j'avais téléchargé à l'époque sur ce PC.
 
Dernière édition:

job75

XLDnaute Barbatruc
JM sur le lien que tu as mis on ne dit pas que la fonction ne marche pas sur MAC, par contre je lis :
'Note: InitialFilename is the only parameter that works on a Mac
Alors essayer :
VB:
Sub Enregistrer()
Dim fichier As Variant
fichier = Sheets("CALCUL").[H8] 'nom sans extension
ChDir ThisWorkbook.Path
fichier = Application.GetSaveAsFilename(fichier)
If fichier <> False Then ThisWorkbook.SaveAs fichier & ".xlsm"
End Sub
Edit : il faut ajouter l'extension .xlsm.
 
Dernière édition:

job75

XLDnaute Barbatruc
On peut aussi utiliser Application.FileDialog :
VB:
Sub Enregistrer2()
ChDir ThisWorkbook.Path
With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "DOSSIER D'ENREGISTREMENT"
    If Not .Show Then Exit Sub
    ThisWorkbook.SaveAs .SelectedItems(1) & Application.PathSeparator & Sheets("CALCUL").[H8], FileFormat:=52
End With
End Sub
 

lyes123456

XLDnaute Nouveau
Bonjour lyes123456, bienvenue sur XLD,

La feuille est protégée par mot de passe, comment modifier la cellule H8 ?

Et êtes-vous sûr qu'il s'agit de H8 car elle contient le texte "FRAIS SPOT NBR JOUR" ???

Essayez cette macro mais sur MAC pas du tout certain que Application.GetSaveAsFilename fonctionne :
VB:
Sub Enregistrer()
Dim fichier As Variant
fichier = Sheets("CALCUL").[H8]
ChDir ThisWorkbook.Path
fichier = Application.GetSaveAsFilename(fichier, "Excel Files (*.xlsm), *.xlsm")
Application.DisplayAlerts = False
If fichier <> False Then ThisWorkbook.SaveAs fichier
End Sub
A+


Bonjour

merci pour ces reponses, mais effectivement c'est de prendre en charge ce qui est ecrit dans la cellule H1 et non pas H8 (erreur de ma part)

pour ce qui est des protection, effectivement j'ai envoyer la version proteger (erreur aussi de ma part) mais apres lecture, je vois que la protection a ete oter, donc par de probleme dans ce cas

pour ce qui est de la macro

est ce que c'est la derniere version qu'il faut prendre ou non ?
 

lyes123456

XLDnaute Nouveau
Bonjour

ci joint le resultat apres macro

mais, ce qui me manque c'esr un enregistrement automatique apres remplissage des cases

aussi, si jamais on doit quitter, la macro doit proposee l'enregistrement sous le nom de la cellule H1

dans l'attente de vous lire ci joint la feuille non protegee
 

Pièces jointes

  • 12345679.xlsx.xlsm
    22.2 KB · Affichages: 3

job75

XLDnaute Barbatruc
mais, ce qui me manque c'esr un enregistrement automatique apres remplissage des cases
Voyez le fichier joint et cette macro dans le code de la feuille CALCUL (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim fichier As Variant
With [H1]
    If LCase(.Value) & ".xlsm" = LCase(ThisWorkbook.Name) Then Exit Sub
    If .Value = "" Then .Value = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5): Exit Sub
    ChDir ThisWorkbook.Path
    fichier = Application.GetSaveAsFilename(.Value)
    If fichier = False Then .Value = "": Exit Sub
    fichier = Left(fichier, InStrRev(fichier, Application.PathSeparator)) & .Value & ".xlsm"
End With
Application.DisplayAlerts = False 'si le fichier existe déjà
ThisWorkbook.SaveAs fichier
End Sub
 

Pièces jointes

  • 12345679.xlsm
    27.7 KB · Affichages: 6

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi