Macro sauver sous "nom donné dans le classeur"

  • Initiateur de la discussion Xavier
  • Date de début
X

Xavier

Guest
Bonjour à tous,

J'espère que l'un d'entre vous pourra m'aider.

Voici ma question :
Je voudrais faire une macro pour pouvoir enregistrer le fichier actif dans un répertoire donné dans une cellule du classeur avec le nom donné dans une cellule du classeur, sans message d'arrêt ou de confirmation, sauf si le fichier existe déjà.

Par exemple dans ma feuille "code frs" se trouve en D7 le nom du fichier et en D9 le chemin du répertoire ou je souhaite enregistrer le fichier. Je lance la macro depuis le feuille "analyse".

Le hic c'est que je suis une vrai truffe pour faire des macros. Je sais ce que je voudrais faire, mais je n'ai aucune idée du langage!

Du coup je tâtonne en faisant des copier coller.
J'ai regardé les précédents messages, mais je n'ai pas trouvé mon bonheur.

Voilà ce que j'ai fait (dans un premier temps, j'ai indiqué le répertoire de destination de la sauvegarde)

Sub fermer()
Application.DisplayAlerts = False
MonNum = Sheets("Code frs").Select
Range("D7").Select
strPath = "C:\Mes documents "
ActiveWorkbook.Name = MonNum
Nom = MonNum
ActiveWorkbook.SaveAs Filename:=strPath & " & Nom & " & ActiveWorkbook.Name
Application.DisplayAlerts = True
End Sub

Et devinez quoi… ça ne marche pas!

Est-ce qu'un bon géni de la macro pourrait m'aider ?

Ce serait top super, en attendant je continue à la faire manuellement.

Merci d'avance à tous.


Xav
 
A

Alain

Guest
Bonjour,

Ci-dessous code modifié :

Sub fermer()
Dim NomFic As String
Dim Rep As String
Dim Nom As String
Application.DisplayAlerts = False
With Sheets("Code frs")
NomFic = .Range("D7")
strPath = .Range("D9")
End With
Nom = strPath & "\" & NomFic
ActiveWorkbook.SaveAs FileName:=Nom
Application.DisplayAlerts = True
End Sub


@+
 
X

Xavier

Guest
Bonjour Alain,

C'est pile poil
Un grand merci.

J'ai 2 petites questions, histoire de mieux comprendre:

A quoi ça sert de définir la variable comme "string"?

Enfin, à quoi sert la variable Rep (Dim Rep As String)

Merci encore pour ta réponse et ta rapidité

@+
Xav
 
A

Alain

Guest
Rebonjour,

Ce n'est pas Rep qu'il fallait lire mais strPath. oups !!!

Cà marche quand même car il n'y a pas l'instruction "Option Explicit" au début du module, ce qui aurait déclenché un message d'erreur.

C'est juste une question d'habitude de déclarer les variables du type avec lequel elles seront utilisées dans le code.

Quand une variable est déclarée "String", c'est une chaîne de caractères et FileName est une chaîne de caractères.

@+
 

Discussions similaires

Réponses
3
Affichages
265
Réponses
2
Affichages
211

Statistiques des forums

Discussions
314 655
Messages
2 111 604
Membres
111 217
dernier inscrit
aladinkabeya2