A voir également:
- Ouvrir d'un doc. excel ouvert (sans connaître le chemin)
- Comment ouvrir un fichier doc ? - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Fichier docx, xlsx ou pptx : comment ouvrir un document Office - Guide
- Liste déroulante excel - Guide
2 réponses
Bonjour,
Il faut préciser ta demande. En l'état, elle ne peut être traitée qu'à tâtons (allitération en "t"...)
Tu dis avoir deux classeurs ouverts.
Comment sont-ils ouverts? Manuellement? par macro?
Ils sont tous les deux ouverts dans une même session Excel?
Un petit exemple pour commencer.
Le code suivant :
1- Définit le classeur contenant la macro comme étant le classeur "source",
2- Boucle sur tous les classeurs ouverts dans l'application Excel,
3- Si le classeur trouvé dans la boucle a un nom différent du classeur "source", le définit comme classeur "destination"
Note : si tu n'as que 2 classeurs ouverts, cette macro pourra te convenir.
Il faut préciser ta demande. En l'état, elle ne peut être traitée qu'à tâtons (allitération en "t"...)
Tu dis avoir deux classeurs ouverts.
Comment sont-ils ouverts? Manuellement? par macro?
Ils sont tous les deux ouverts dans une même session Excel?
Un petit exemple pour commencer.
Le code suivant :
1- Définit le classeur contenant la macro comme étant le classeur "source",
2- Boucle sur tous les classeurs ouverts dans l'application Excel,
3- Si le classeur trouvé dans la boucle a un nom différent du classeur "source", le définit comme classeur "destination"
Note : si tu n'as que 2 classeurs ouverts, cette macro pourra te convenir.
Sub BoucleSurClasseursOuverts()
Dim wbkClasseur As Workbook, wbkSource As Workbook, wbkDestination As Workbook
'définit le classeur contenant la macro comme "source"
Set wbkSource = ThisWorkbook
'boucle sur tous les classeurs ouverts
For Each wbkClasseur In Application.Workbooks
'si le nom du classeur est différent du nom du classeur source alors...
If wbkClasseur.Name <> wbkSource.Name Then
'définit ce classeur comme étant le classeur de destination
Set wbkDestination = wbkClasseur
End If
Next Wb
End Sub
Tout d'abord merci de ta réponse rapide à ma question.
Comme tu le souhaites je vais être plus précis sur ma demande.
Mon document excel dit « source » est un rapport de contrôle dimensionnel qui récupère automatiquement, à son ouverture, les résultats de mesures effectuées par une machine de mesure tridimensionnel. Cette partie du document fonctionne très bien.
Mais avant de le lier à un programme de mesure je dois donc remplir les informations et la mise en page de celui-ci. Comme je te l'avais dit c'est un document dit « standard ».
Mes documents excel dit « origine des informations » sont de 3 ou 4 formats différents même si visuellement ils se ressemblent beaucoup (voilà pourquoi je n'ai pas fait directement mes macros dans ces documents). Comme je te l'ai dit j'ai plusieurs centaines de références.
Voici le déroulement de mes opérations :
- Ouverture (manuelle) du document « source »
- Ouverture (manuelle) du document « origine des informations »
- Sélection de la feuille (en manuelle) dans le document « source » ou seront inscrit les informations du document « origine des informations »
Maintenant mon besoin :
- en appuyant sur un bouton sur la feuille « source » ouverture de la feuille du document « origine des informations »
- ouverture d'une boîte de dialogue qui demande de sélecter une cellule de la feuille du document « origine des informations »
- transfert des informations sur la feuille du document « source »
- Réouverture de la feuille du document « source »
- Fermeture du dossier « origine du document » sans enregistrement.
Dans mes besoins je sais faire un certain nombre d'opération, mais pas le fait de passer d'un document à l'autre automatiquement.
J'espère que pour toi c'est plus claire, car j'ai essayé avec tes précédentes informations et je n'ai pas réussi à faire quoi que se soit.
Au faite pour info : Je suis encore en 2003 ! (c'est pour mon boulot, nous devrions passer en version 2010, mais pas avant plusieurs semaines)
Merci d'avance. Cyril
Comme tu le souhaites je vais être plus précis sur ma demande.
Mon document excel dit « source » est un rapport de contrôle dimensionnel qui récupère automatiquement, à son ouverture, les résultats de mesures effectuées par une machine de mesure tridimensionnel. Cette partie du document fonctionne très bien.
Mais avant de le lier à un programme de mesure je dois donc remplir les informations et la mise en page de celui-ci. Comme je te l'avais dit c'est un document dit « standard ».
Mes documents excel dit « origine des informations » sont de 3 ou 4 formats différents même si visuellement ils se ressemblent beaucoup (voilà pourquoi je n'ai pas fait directement mes macros dans ces documents). Comme je te l'ai dit j'ai plusieurs centaines de références.
Voici le déroulement de mes opérations :
- Ouverture (manuelle) du document « source »
- Ouverture (manuelle) du document « origine des informations »
- Sélection de la feuille (en manuelle) dans le document « source » ou seront inscrit les informations du document « origine des informations »
Maintenant mon besoin :
- en appuyant sur un bouton sur la feuille « source » ouverture de la feuille du document « origine des informations »
- ouverture d'une boîte de dialogue qui demande de sélecter une cellule de la feuille du document « origine des informations »
- transfert des informations sur la feuille du document « source »
- Réouverture de la feuille du document « source »
- Fermeture du dossier « origine du document » sans enregistrement.
Dans mes besoins je sais faire un certain nombre d'opération, mais pas le fait de passer d'un document à l'autre automatiquement.
J'espère que pour toi c'est plus claire, car j'ai essayé avec tes précédentes informations et je n'ai pas réussi à faire quoi que se soit.
Au faite pour info : Je suis encore en 2003 ! (c'est pour mon boulot, nous devrions passer en version 2010, mais pas avant plusieurs semaines)
Merci d'avance. Cyril
Salut,
A ma connaissance, il n'est pas possible de revenir, avec une seule macro, au classeur source après être passé au second classeur, et avoir sélectionné une cellule.
Le problème est donc dans le choix de la cellule.
Il est possible, en passant par un Userform, de placer le contenu de toutes les cellules concernées par ce choix, dans un combobox. Cela permettrait donc de choisir la cellule à partir du premier classeur et donc de réaliser le copié-collé directement de ce classeur source.
A ma connaissance, il n'est pas possible de revenir, avec une seule macro, au classeur source après être passé au second classeur, et avoir sélectionné une cellule.
Le problème est donc dans le choix de la cellule.
Il est possible, en passant par un Userform, de placer le contenu de toutes les cellules concernées par ce choix, dans un combobox. Cela permettrait donc de choisir la cellule à partir du premier classeur et donc de réaliser le copié-collé directement de ce classeur source.