Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2012, 17h38   #1
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : janvier 2012
Messages : 7
Points : 1
Points : 1
Par défaut Macro Enregistrer sous

Bonjour à tous,

Tout jeune débutant en programmation VBA, je cherche une méthode pour pouvoir enregistrer un fichier avec en extension la valeur d'une cellule + la date dans un dossier qui se trouve sur le bureau



Un coup de main SVP
Titian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 21h33   #2
Membre actif
 
Inscription : avril 2008
Messages : 181
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 181
Points : 171
Points : 171
Hello,

En supposant que tu as le nom dans la cellule A1.

Places ce code dans un module standar...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Sub EnregistrerSous()
 
    'Pour si tu annules, qu'il n'affiche pas le message d'erreur
    On Error Resume Next
 
    'Si tu ne changes pas la cellule A1 (le nom), pour éviter le message
    '"Un classeur porte déjà ce nom blablabla..."
    'On les évite en mettant DisplayAlerts à faux
    Application.DisplayAlerts = False
 
    'Ou avec le ThisWorkbook.Path qui est le répertoire du classeur courant.
    'C'est à dire qu'il va l'enregistrer dans le même dossier que le classeur qui a cette macro.
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" _
        & Range("A1").Value & " - " & Date & ".xlsm"
 
    'Ou comme ça en adaptant le chemin.
    'ActiveWorkbook.SaveAs Filename:="C:\Users\xxxxxxxxx\Desktop\" _
    '    & Range("A1").Value & " - " & Date & ".xlsm"
 
    '<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
    '<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
 
    'Tu peux utiliser ou l'une ou l'autre de ces deux lignes si tu veux fermer le classeur après.
 
    'Attention quitte Excel, donc tous les fichiers Excel ouverts !
    'Application.Quit
 
    'Ferme le fichier.
    'ThisWorkbook.Close
 
    '<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
    '<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
 
    'Et on remet à vrai le DisplayAlerts
    Application.DisplayAlerts = True
 
End Sub
Puis appele-le par exemple avec un bouton sur ta feuille, comme ceci...
Code :
1
2
3
4
5
Private Sub CommandButton1_Click()
 
    Call EnregistrerSous
 
End Sub
Cdt, Antoniom.
Antoniom est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/01/2012, 10h15   #3
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : janvier 2012
Messages : 7
Points : 1
Points : 1
Bonjour Antoniom,

Tout d'abord merci pour les éléments de réponses proposés
J'ai choisi l'option d'enregistrer le fichier en renseignant le chemin du dossier sur le bureau mais une erreur se produit par rapport à la variable date

Faut-il saisir la date manuellement ou la variable date s'ajuste automatiquement ?

Voici la commande utilisée :

Code :
1
2
ActiveWorkbook.SaveAs Filename:="C:\Users\cityone\Desktop\Dépêches" _
    & Range("A12:B12").Value & " - " & Date & ".xlsm"
Merci
Titian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 17h46   #4
Invité de passage
 
Inscription : juin 2004
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 3
Points : 1
Points : 1
J'ai rencontré le même problème il y a peu, je pense que l'erreur vient du fait que la fonction date te renvoie une valeur qui n'est pas compatible avec le nommage d'un fichier
typiquement quelque chose du genre 27/01/2012 or les / dans les noms de fichier servent à indiquer que l'on change de répertoire.

essaie quelque chose comme

Code :
1
2
ActiveWorkbook.SaveAs Filename:="C:\Users\cityone\Desktop\Dépêches" _
& Range("A12:B12").Value & " - " & format(Date,"dd-mm") & ".xlsm"
le deuxième argument de la fonction format transforme la date en 27-01 par exemple, ce qui est compatible avec le nommage d'un fichier.

tu peux envisager format(date,"dd-mm-yyyy") si tu veux l'année ou tout autre format de date convenable avec le nommage, c'est à dire avec - ou _ comme caractère spéciaux je dirais..

bonne journée,

marav
marav est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 21h23   #5
Membre actif
 
Inscription : avril 2008
Messages : 181
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 181
Points : 171
Points : 171
Hello Titian, Marav,

Chez moi juste le mot clé Date suffit.

Marav, sauf erreur, je crois qu'avec Date, par défaut, le format est jj.mm.aaaa, mais tu as raison de forcer le format.

Cdt, Antonio.
Antoniom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 00h22   #6
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : janvier 2012
Messages : 7
Points : 1
Points : 1
Salut Messieurs,

J'ai rajouté le format à DATE et puis ça fonctionne

Merci pour l'aide

Titian est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h40.


 
 
 
 
Partenaires

Hébergement Web