Fermer un fichier Excel en vb ?

  • Initiateur de la discussion Mosquitout
  • Date de début
M

Mosquitout

Guest
Bonjour,
Peut-on fermer un fichier 'Toto.xls' à partir d'une appli vb si celui-ci n'a pas été crée dans cette appli ? C.a.d je fais un test pour voir si ce fichier est ouvert et si oui je veux le fermer.
???
 

MichelXld

XLDnaute Barbatruc
bonjour

tu peux tester cette macro

Private Sub Command1_Click()
Dim Wb As Excel.Workbook

'nécéssite d'activer la reference Microsoft Excel xx.x 0bject Library
On Error Resume Next
Set Wb = GetObject('C:\\\\\\\\Documents and Settings\\\\\\\\michel\\dossier\\\\\\\\monClasseur.xls')
If Wb Is Nothing Then
MsgBox 'Le classeur est fermé'
Else
MsgBox 'Le classeur est ouvert'
Wb.Close False 'mettre True pour enregistrer les modifications
End If
End Sub




bon apres midi
MichelXld
 
M

Mosquitout

Guest
Bon je vais précisé un peu.
Ds mon appli à un moment je dois pouvoir intervenir sur 1 doc excel. Avant de l'ouvrir par la methode classique :
Set objExcel = CreateObject('Excel.Application')
Set objDocumentE = objExcel.Workbooks.Open(App.Path & '\\toto.xls')
objExcel.Visible = True
je fais un test pour voir s'il est pas déjà ouvert. Si oui, s'il a déjà été ouvert dans l'application = ca va, pas de probleme. Mais si il a été ouvert par un autre moyen que l'application, je voudrais alors tout simplement me positionner dessus mais là le pb est que les variables 'objExcel' et 'objDocumentE' n'ont pas été utilisées/définies !!!
Alors comment faire ? le moyen est-il alors de fermer le doc puis de le réouvrir de sorte que ces variables soient définies ?
Je sais pas si c'est très clair ;o)
 

MichelXld

XLDnaute Barbatruc
rebonjour

tu veux fermer le classeur ou l'activer ?

est ce que tu as testé la procédure proposée ?

il te suffit de remplacer

Wb.Close False

par

Wb.Activate


ce qui donne

Private Sub Command1_Click()
Dim Wb As Excel.Workbook

'nécéssite d'activer la reference Microsoft Excel xx.x 0bject Library
On Error Resume Next
Set Wb = GetObject('C:\\\\\\\\Documents and Settings\\\\\\\\michel\\\\\\\\dossier\\\\\\\\leClasseur.xls')
If Wb Is Nothing Then
MsgBox 'Le classeur est fermé'
'
'...
'procedure pour ouvrir le classeur
'...
'
Else
MsgBox 'Le classeur est ouvert'
Wb.Activate
End If

End Sub



bon apres midi
MichelXld
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 088
Membres
103 461
dernier inscrit
dams94