Ouverture / fermeture / selection --> VBA

  • Initiateur de la discussion Initiateur de la discussion Blues
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

Blues

Guest
Ouverture / fermeture / selection --> VBA

Bonjour,

J'ai encore une petite question si tu arrives encore à me répondre. Dans mon code j'ouvre un autre classeur excel avec --> Workbooks.open Filename:="C:\hdd\test.xls"

Mais après j'aimerais re-sélectionné mon premier classeur que j'appelerai origine.xls ! Ainsi, les calculs que ma macro lancera se feront dans mon classeur de départ et non pas dans celui qui a été ouvert pour aller chercher des informations. Je sais pas si tu as tout compris...

Et pour finir, oui je sais je ne suis pas chiant, pour fermer le claseur, puis-je seulement faire -->
Workbooks.Close Filename:="C:\hdd\test.xls" ?

Merci encore pour tout.
 
Re: Ouverture / fermeture / selection --> VBA

Bonjour

Essaye par exemple le code suivant :


sub toto
set actWB=activeworkbook
Workbooks.open Filename:="C:\hdd\test.xls"
actWB.activate
... tes calculs
end sub



le hic avec la fonction Windows c'est qu'il faut connaître le titre exact du classeur, ou savoir si c'est l'index du classeur parmi tous les classeurs ouverts.

Jon
 
Re: Ouverture / fermeture / selection --> VBA

Merci, ça fonctionne nickel. 😛

Par contre, impossible de refermer le classer ouvert spécialement pour l'importation de donnée avec :

Workbooks.Close Filename:="c:\hdd\test.xls"

Sais-tu pourquoi ?

Merci
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Z
Réponses
16
Affichages
3 K
Retour