Macro d'enregistrement

Kartmaniac

XLDnaute Nouveau
Bonjour a tous,
je suis en train d'essayer de créer une macro sur Excel 2003 qui enregistrerait ma facture sous le nom "Facture N°(Numéro de facture indiqué dans la cellule B8)"

Je suis un noob en vba. j'ai tenté de la réaliser en enregistrant la macro normalement, mais je ne suis pas parvenu à attribuer le nom de fichier voulu. De plus, lors de l'enregistrement, le classeur sur lequel je travaillais se trouvais dupliqué, renommé puis fermé. Je me retrouvais donc sur un nouveau classeur avec le nouveau nom; ce qui ne m'intéresse pas du tout.
Je voudrais juste que la macro me crée un nouveau fichier avec le nom voulu sans me fermer le classeur d'origine sur lequel je travaille.

Cette macro, après avoir fait l'enregistrement, fait un reset des cellules saisies (N° client, Ref produit et Quantités), puis me repositionne la cellule active sur B9 et augmente d'une unité le numéro de facture.


Voici une copie de ce que j'ai réalisé pour le moment:

MsgBox "cette Macro va enregistrer le document en cours puis tout réinitialiser, voulez-vous continuer?", 1, "Macro Enregistrer & Reset+1"
activeworksheet.saveas Filename:= (..... c'est là que je bloque)
Range("B9,A14:A23,E14:E23").Select
Selection.ClearContents
Range("B8") = Range("B8") + 1
Range("B9").Select

Pourriez vous m'aider pour cette macro?
D'avance, merci beaucoup à vous.

PS: notre formateur nous a orienté en nous parlant de concaténation qu'il faudrait utiliser pour nommer la feuille... peut être que cela vous aidera plus que cela ne m'aide (&" "&)
 

Pierrot93

XLDnaute Barbatruc
Re : Macro d'enregistrement

Bonjour Kartmaniac

regarde le bout de code ci dessous :

Code:
ThisWorkbook.SaveAs Filename:="Facture n° " & Range("B8").Value & ".xls"
Range("B9,A14:A23,E14:E23").ClearContents
Range("B8") = Range("B8") + 1

enregistre dans le répertoire courant.

bonne journée
@+
 

Zlopeck

XLDnaute Junior
Re : Macro d'enregistrement

Deux petits bouts de code qui pourrons peut être t'aider dans ta recherche.
Le premier enregistre la zone imprimable selectionnée sous le numéro contenu dans la cellule B8 et lui ajoute la date d'enregistrement. Le fichier est enregistré au format PDFdans le dossier désigné par le chemin "C:\xxxxx\xxxxxx\xxxxxx\" ( A adapter selon tes besoins). Cette macro fonctionne sous 2007 qui gère l'enregistrement PDF.

Le deuxième code enregistre le fichier au format XLS en lui attribuant comme nom le contenu de la cellule B8 et lui ajoute aussi la date d'enregistrement.
Le nouveau fichier est enregistré automatiquement dans le dossier où se trouve le fichier à sauvegarder.

Bonne journée.

'
' enregistrement PDF
'
Dim Fichier As String
x = Range("B8").Value
Fichier = Format(Date, "(dd-mm-yy)") & " " & x & ".xls"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\xxxxx\xxxxxx\xxxxxx\" & Fichier, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

______________________________________________________________________
'
' enregistrement XLS
'

Dim Fichier As String
Dim x As String
x = Range("B8").Value
Fichier = Format(Date, "yy mm dd") & " " & x & ".xls"
ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "\" & Fichier
 

Kartmaniac

XLDnaute Nouveau
Re : Macro d'enregistrement

Merci Pierro93,
je te KIFFE ;) Merci pour ton message.
Tout marche nikel, ca me fait super plaisir.

Bonne soirée à toi

Zlopeck,
Merci d'avoir pris le temps de me répondre, je vais essayer avec ta méthode aussi, ça me fera apprendre une autre syntaxe pour le faire différemment.
Bonne soirée à toi ;-)
 

Discussions similaires

Statistiques des forums

Discussions
312 672
Messages
2 090 774
Membres
104 663
dernier inscrit
Girondins43