Re: Ouverture / fermeture / selection --> VBA
J'ai trouvé une solution en utilisant windows(...).Close
Mais, bien sûr il y a toujours un "mais", dans mon code une fenêtre dans laquelle j'entre mes données est censée se refermer à la fin de son execution (donc après avoir fermer le classeur test.xls. Cependant, elle ne se ferme pas. Donc pour l'instant j'ai été dans l'obligation de placer la fermeture de cette fenêtre avant la fermeture de l'autre classeur. Pour moi qui suis au courant, il n'y a pas de problème, mais normalement se sont de futurs collègues qui utiliseront ce classeur avec cette macro dans l'avenir, et je ne sais pas si ils attendront, ou s'ils fermeront le classeur en cours par la force. Voilà pourquoi j'essaye de faire que la fenêtre se ferme en dernier, ça leur servira ainsi d'indicateur.
Je vais vous coller une partie du code, si vous pouvez regarder où j'ai pu "merder".
Merci
Private Sub BTcreer_Click()
Set actWB = ActiveWorkbook
Workbooks.Open Filename:="S:\Excel\Reporting\Saisie des données\performance des portefeuilles.xls"
actWB.Activate
'Ouvre le classeur excel "performances des portefeuilles.xls"
'Selection du classeur composite
Range("O1").Select
ActiveCell.FormulaR1C1 = "Return " + TXTx.Text
Range("O3").Select
ActiveCell.FormulaR1C1 = "=IF('S:\Excel\Reporting\Saisie des données\[performance des portefeuilles.xls]Feuil1'!R[3]C2<>"""",VLOOKUP(RC1,'S:\Excel\Reporting\Saisie des données\[performance des portefeuilles.xls]Feuil1'!C2:C52," + TXTcolreturn.Text + ",False),"""")"
'Formule d'importation des données à partir du classeur Reporting / Perf. des portefeuilles
'Importation des performances
Range("P1").Select
ActiveCell.FormulaR1C1 = "Masse " + TXTx.Text
Range("P3").Select
ActiveCell.FormulaR1C1 = "=IF('S:\Excel\Reporting\Saisie des données\[performance des portefeuilles.xls]Feuil1'!R[3]C2<>"""",VLOOKUP(RC1,'S:\Excel\Reporting\Saisie des données\[performance des portefeuilles.xls]Feuil1'!C2:C52," + TXTcolmasse.Text + ",False),"""")"
'Formule d'importation des données à partir du classeur Reporting / Perf. des portefeuilles
'Importation des fonds sous gestion
Range("Q1").Select
ActiveCell.FormulaR1C1 = "% " + TXTx.Text
Range("Q3").Select
ActiveCell.FormulaR1C1 = "=IF(AND(RC[-2]<>"""",RC12<>""""),RC[-2]/RC12,"""")"
'Formule permettant de connaître la proportion du portefeuille dans le composite
Range("O3").Copy Range("O4:O500")
Range("P3").Copy Range("P4
500")
Range("Q3").Copy Range("Q4:Q500")
'Copie les formules exposées ci-dessus dans les x celulles du dessous
FORMnewportefeuille.Hide
'Cache la fenêtre "ajouter nouveau portefeuille"
Windows("performance des portefeuilles.xls").Close
'ferme le classeur excel "performances des portefeuilles.xls"
End Sub