création d'une fonction équivalente à enregistrer sous pour effectuer une validation

crys

XLDnaute Junior
Je viens de créer un bon de livraison et je souhaite obliger en fin de saisie la création d'une nouvelle page par enregistrer sous ou équivalent (afin de garder mon modèle intact).
L'idéal serait un bouton de type "validation" qui obligerait l'enregistrement sous...

En vous remerciant par avance, si vous pouvez m'aider à résoudre mon problème...

Crys :rolleyes:
 

Pièces jointes

  • Test.xls
    15 KB · Affichages: 71
  • Test.xls
    15 KB · Affichages: 74
  • Test.xls
    15 KB · Affichages: 76

crys

XLDnaute Junior
Re : création d'une fonction équivalente à enregistrer sous pour effectuer une valida

Bonsoir,

Je reviens sur cette fonction enregistrer sous : je n'arrive pas à récupérer le nom donné dans une cellule = voir le fichier Test+ 2 messages + haut

Pourriez-vous, s'il vous plaît, m'expliquer, je n'y connais rien les lignes VBA suivantes :

Sub Enreg_Copie()
Dim oNom As String, oChemin As String, Quoi As String

'Gèle la date
Range("B6").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'Définition du nom et de l'emplacement
oNom = Range("D5").Value & ".xls"
oChemin = ThisWorkbook.Path & "\" ' à remplacer éventuellement par un autre répertoire

'Enregistre sous
Application.Dialogs(xlDialogSaveAs).Show oChemin & oNom
End Sub

Je souhaite que le contenu de la cellule D5 passe dans le nom donné au classeur Excel...

Par avance merci.

Crys :confused:
 
Dernière édition:

Hippolite

XLDnaute Accro
Re : création d'une fonction équivalente à enregistrer sous pour effectuer une valida

Bonsoir,
Le code peut être un peu allégé :
VB:
Sub Enreg_Copie()
Dim oNom As String, oChemin As String, Quoi As String

'Gèle la date
Feuil1.Range("B6").Copy 'copie la cellule
Feuil1.Range("B6").PasteSpecial Paste:=xlPasteValues 'collage de la valeur

'Définition du fichier de sauvegarde : emplacement\nom
oNom = Feuil1.Range("D5").Value & ".xls" 'nom du fichier
oChemin = ThisWorkbook.Path & "\" ' chemin du répertoire du fichier contenant cette macro, à adapter éventuellement

'Ouvre la boite de dialogue enregistrer sous, avec fichier de sauvegarde par défaut
Application.Dialogs(xlDialogSaveAs).Show oChemin & oNom 
End Sub
A+
 

crys

XLDnaute Junior
Re : création d'une fonction équivalente à enregistrer sous pour effectuer une valida

Bonsoir Hippolite et merci pour cette réponse rapide...
Et les explications dans le code.

Cependant, je n'arrive pas à la faire fonctionner. Lorsque j'execute la macro, la boîte de dialogue apparaît bien, mais ne reprend pas le nom contenu dans la cellule D5.

Si je comprends bien, c'est ce que devrait faire la ligne de code suivante :
VB:
 oNom = Feuil1.Range("D5").Value & ".xls"


Si je veux également changer le répertoire de destination, exemple le mettre à la racine de C: que dois-je modifier dans la ligne de code
VB:
 oChemin = ThisWorkbook.Path & "\"

J'ai fait des essais mais je n'y arrive pas.

Désolé d'être un boulet à ce point :( :mad:

Merci encore - en espérant ne pas abuser.

Crys :eek:
 
Dernière édition:

Hippolite

XLDnaute Accro
Re : création d'une fonction équivalente à enregistrer sous pour effectuer une valida

Bonjour,
je veux également changer le répertoire de destination, exemple le mettre à la racine de C
Code:
ochemin = "C:\"

la boîte de dialogue apparaît bien, mais ne reprend pas le nom contenu dans la cellule D5
Chez moi ça fonctionne, joins ton fichier pour que je jette un coup d'oeil.
A+
 

crys

XLDnaute Junior
Re : création d'une fonction équivalente à enregistrer sous pour effectuer une valida

Chez moi ça fonctionne, joins ton fichier pour que je jette un coup d'oeil.

Bonjour Hippolite et merci pour le temps passé après mon histoire.

Merci pour l'info pour le chemin de fichier.
Le fichier est en pièce jointe.
Il me semble bien qu'au début cela fonctionnait - cela viendrait-il du passage à Excel 2007 et de la mise en compatibilité 2007 vs 2003 ?

Merci par avance.

Crys :D
 
Dernière édition:

Hippolite

XLDnaute Accro
Re : création d'une fonction équivalente à enregistrer sous pour effectuer une valida

Re,
Ton fichier fonctionne chez moi.
Ton problème doit venir de Excel 2007
Essaie de remplacer .xls par .xlsx ou .xlsm suivant que tu veux garder ou non la macro dans la copie :
oNom = Range("D5").Value & ".xlsx"
A+
 

Discussions similaires