Macro de création de fichier excel

jaba

XLDnaute Junior
Bonjour A tous,

Je suis débutante en macro, et je cherche à en réaliser une qui effectue la chose suivante : Sur une plage de données contenues dans un tableau excel, sélectionner 3 colonnes et les copier dans un nouveau fichier excel.
Le nom de ce nouveau fichier doit être égal à "Demande+Date d'aujourd'hui"

Merci d'avance pour votre aide!
 

Staple1600

XLDnaute Barbatruc
Re : Macro de création de fichier excel

Bonjour jaba,

Tu peux faire ce que décrit ta demande manuellement,
tout en lançant l'enregistreur de macros
(Outils/Macros/Nouvelle Macro)

Ainsi tu auras une macro toute faite.

Exemple de que cela donne:
Code:
[COLOR=SeaGreen][COLOR=Black]Sub Macro1()[/COLOR]
' Macro1 Macro
' Macro enregistrée le 22/08/2010 par Staple1600[/COLOR]
    Columns("B:D").Select
    Selection.Copy
    Workbooks.Add
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWorkbook.SaveAs Filename:="C:\Temp\Demande.xls", FileFormat:=xlNormal _
        , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False
End Sub
Ce code VBA brut peut ensuite être affiné.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Macro de création de fichier excel

Re



Exemple d'affinage ;)

Code:
Sub Macro1a()
[COLOR=SeaGreen]' Macro1 Macro
' Macro affinée le 22/08/2010 par Staple1600[/COLOR]
Dim NomFICHIER, CHEMIN As String, Source As Range, Desti As Range
NomFICHIER = "Demande " & Format(Date, "dd-mm-yy") & ".xls"
CHEMIN = "C:\Temp\"
Set Source = ThisWorkbook.Sheets(1).Columns("B:D")
Workbooks.Add -4167
Set Desti = ActiveWorkbook.Sheets(1).[A1]
Source.Copy Desti
ActiveWorkbook.SaveAs CHEMIN & NomFICHIER
End Sub
 
Dernière édition:

brunolsl

XLDnaute Nouveau
Re : Macro de création de fichier excel

Bonjour !

J'ai eu besoin d'une macro similaire, j'ai reprit la version affinée légèrement bidouillée pour fonctionné chez moi (sous excel 2003). Voila ma version :

Code:
Sub sauvegarde_releve()

Dim NomFichier, Chemin As String, Source As Range, Desti As Range

Chemin = "C:\Documents and Settings\user.user\Desktop\sauvegarde releve\"
' le fichier a enregistrer est sur le bureau

NomFichier = "releve du " & Format(Date, "dd-mm-yy") & ".xls"

Set Source = ThisWorkbook.Sheets("RELEVE 1").Columns("A:O")

Workbook.Add -4167
'ligne qui j'imagine sert a définir "l'ActiveWorkbook
Set Desti = ActiveWorkbook.Sheets("feuille1").Columns("A:O")

Source.Copy Desti

ActiveWorkbook.SaveAs Chemin & NomFichier

End Sub

Cette macro me créer bien mon fichier excel dans mon sous-repertoire sur le bureau.

Par contre j'ai des formules dans mon fichiers d'origine (dates, etc...) et je me demandais si l'on pouvait copier uniquement le résultats de ces formules (pour garder la date a laquelle le fichier a été enregistré entre autre).

-------

EDIT : J'ai essayer des PasteSpecial, a base de XlPasteFormulas as XlPasteValues, mais je n'arrive pas a les faire marcher.

Grosso modo il me faudrait une formule pour
" Copier tout tel quel (Bordures, mises en forme, formats de dates...) sauf les formules ou on prend que les résultats "
un genre de " XlPasteAllExceptsFormulasAsValues "
-------

Et en bonus, permettre a la macro d'écraser un fichier existant.
Si par exemple le fichier "releve du 06-02-12.xls" a déjà été enregistrer mais que l'on ai oublié quelque chose et qu'il faille le ré-enregistrer.

Voila par avance merci !
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 173
dernier inscrit
Cerba95