Je reviens vers vous car je tourne en rond dans mes recherche sur le forum.
Voici mon problème.
J'ai 1 classeur Modéle1 qui me sert de base pour diverses opérations que je lance depuis un Userform.
Une de mes opérations consiste à ouvrir un second classeur Modéle2 dans lequel je viens copier des infos de Modéle1 et avant de fermer Modéle2 je voudrai le sauvegarder sous un autre nom (via des valeurs de cellules) dans un répertoire différent de Modéle1
En fin de Macro de copie
Code:
Call macro de sauvegarde
[Dim Chemin As String
Dim nomfichier As String
Chemin = "K:\"
nomfichier = Range("K1").Value & " " & Range("K2").Value & "-" & Range("K3").Value
If ThisWorkbook.Name = nomfichier Then Exit Sub
Application.DisplayAlerts = False
' sauve sous autre nom selon
ThisWorkbook.SaveAs FileName:=Chemin & nomfichier
Application.DisplayAlerts = True]
Le HIC est qu'il sauvegarde bien un classeur sous le nom souhaité dans le bon rep. mais pas le bon....Il sauvegarde le classeur de départ Modéle1 et non Modéle
Comment peut on faire pour indiquer que l'on veut Modéle2 sous le chemin choisit ?
D'avance MERCI à tous pour votre aide.
Merci pour ta réponse.
Ci-joint mon code d'ouverture du classeur Modèle 2
Private Sub CommandButton3_Click()
'Sub Creation_CRC()
ChDir "K:\COMPTES-RENDUS-REUNIONS-CRITIQUES"
Workbooks.Open FileName:= _
"K:\COMPTES-RENDUS-REUNIONS-CRITIQUES\_Modele CR-RC.xls"
Sheets("CRC_PF").Select
'...........
Après quoi je copie mes données du premier classeur et je lance ma sauvegarde du deuxième
la partie déclaration du workbook comme un objet fonctionne bien par contre çà coince à la sauvegarde...?
Il bloque sur
'....
wbk.SaveAs FileName:=Chemin & nomfichier
'....
Le problème doit sûrement venir que tu déclares ton workbook dans une macro et que tu veux le sauvegarder dans une autre macro (celle de sauvegarde). Donc forcément ta macro de sauvegarde ne connait pas l'objet et par conséquent te renvoie une erreur. Alors essaie ceci pour voir.
Le code ci-dessous est celui de ta macro classique; celle où tu exécutes ton traitement et où tu ouvres ton classeur après l'avoir déclaré en tant qu'objet.
Code:
Private Sub macro_normal()
'...
'traitement
'...
'déclaration du classeur à ouvrir
Set wbk = Workbooks.Open(Filename:="u:\mon excel\a.xls")
'...
'traitement
'...
'appel de la macro de sauvegarde
'le classeur wbk est passé en paramètre
macro_de_sauvegarde (wbk)
End Sub
Et le code ci-dessous symbolise ta macro de sauvegarde. Le paramètre attendue par la macro est bien de type workbook.
Code:
Sub macro_de_sauvegarde(ByVal wbk1 As Workbook)
Dim Chemin As String
Dim nomfichier As String
Chemin = "U:\mon excel\"
nomfichier = wbk1.Sheets(1).Range("C5").Value
MsgBox nomfichier
wbk1.SaveAs Filename:=Chemin & nomfichier & ".xls"
End Sub
EDIT:Ou encore plus simple tu le déclares, tu l'ouvres et tu l'enregistres dans une seule et même macro.