activer le nouveau classeur créé par méthode Copy

D

Deedo

Guest
bonjour tout le monde!

voilà mon soucis en VBA:
ma macro génère une feuille répondant au doux nom de 'resul'
je désire copier cette feuille vers un nouveau classeur
puis demander à l'utilisateur Enregistrer dans... il saisit et hop!

mon soucis: la méthode copy , ouvre un nouveau classeur sans nom , y met ma feuille resul ... mais n'active pas ce dernier, il reste sur mon classeur d'origine.
Comment puis je faire pour activer le classeur dernièrement créé?

merci d'avance!

Deedo



ci joint ma petite procédure:

Sub export_resul()
'exporter la feuille résul vers un nouveau classeur
Dim ls_titre As String
Dim ls_filtre As String
Dim li_filtre As Integer
Dim ls_nomfic As Variant


'définir la liste des filtres de fichiers
ls_filtre = 'Fichiers Excel (*.xls),*.xls'

'affiche le filtre par défaut
li_filtre = 1

'Titre de la boite de dialogue
ls_titre = ' Export du questionnaire'

Sheets('resul').Select
Sheets('resul').Copy
'Obtenir le nom du fichier
ls_nomfic = Application.GetSaveAsFilename _
(FileFilter:=ls_filtre, _
FilterIndex:=li_filtre, _
Title:=ls_titre)

..........
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:activer le nouveau classeur créé par méthode Co

Bonsoir Pascal, CAP, Deedo, le Forum

A mon avis c'est juste qu'il te manque la fin de la procédure pour utiliser correctement le 'GetSaveAsFilename'...


Option Explicit

Sub export_resul()
'exporter la feuille résul vers un nouveau classeur
Dim ls_titre As String
Dim ls_filtre As String
Dim li_filtre As Integer
Dim ls_nomfic As Variant


'définir la liste des filtres de fichiers
ls_filtre = 'Fichiers Excel (*.xls),*.xls'

'affiche le filtre par défaut
li_filtre = 1

'Titre de la boite de dialogue
ls_titre = ' Export du questionnaire'

Sheets('resul').Copy
'Obtenir le nom du fichier
ls_nomfic = Application.GetSaveAsFilename _
(FileFilter:=ls_filtre, _
FilterIndex:=li_filtre, _
Title:=ls_titre)
   
   
If ls_nomfic <> False Then'Si on Annule
&nbsp; &nbsp; &nbsp; &nbsp; ActiveWorkbook.SaveAs ls_nomfic
&nbsp; &nbsp;
End If

End Sub


Bonne Soirée
@+Thierry
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re:activer le nouveau classeur créé par méthode Co

Bonjour deedo, Cap, Pascal76, thierry, le forum

Si tu veux un autre nom que celui du classeur actif, il faut utiliser le paramètre InitialFilename de l'instruction GetSaveAsFilename.
Celui ci peut comprendre également le chemin
InitialFileName:='c:\\temp\\essai.xls'
proposera essai.xls dans le dossier c:\\temp quelque soit le répertoire actif, on peut même changer le lecteur

sinon tu peux également référencer ton classeur immédiatement aprés la création pour ne pas être lié au classeur actif par la suite ce qui te permettra entre les deux de faire toute opération ou sélection que tu jugeras utile.
Code:
Dim Wbs As Workbook
Sheets('resul').Copy
Set Wbs = ActiveWorkbook
ls_nomfic = 'c:\\temp\\essai.xls'
ls_nomfic = Application.GetSaveAsFilename _
(InitialFileName:=ls_nomfic, FileFilter:=ls_filtre, _
FilterIndex:=li_filtre, _
Title:=ls_titre)
If ls_nomfic <> False Then
Wbs.SaveAs ls_nomfic
End If

Cordialement, A+

Ps: Getsaveasfilename n'est qu'une boite vide qui renvoie un chemin\\nom, il ne faut pas oublier d'enregistrer effectivement le fichier derrière comme l'a trés justement souligné mon ami Thierry.

Message édité par: yeahou, à: 14/07/2005 08:02
 
D

Deedo

Guest
Re:activer le nouveau classeur créé par méthode Co

bonjour Cap, Pascal76, thierry, Yeahou, le forum !

week end de 4 jours ... déplacement... hop de retour avec mon soucis.
donc merci pour vos solutions j'essaye ça de suite et je vous tiens au courant :)


/hug


Deedo
 
D

Deedo

Guest
Re:activer le nouveau classeur créé par méthode Co

Weeeehhh!

Thierry tu avais raison...

If ls_nomfic <> False Then'Si on Annule
ActiveWorkbook.SaveAs ls_nomfic
End If


il me manquait un bout de code :p


Merci encore pour l'aide et les astuces tout le monde :) j'en prend note dans mes tablettes


Deedo
 

Discussions similaires

Statistiques des forums

Discussions
312 331
Messages
2 087 360
Membres
103 529
dernier inscrit
moket07