Ouvrir d'un doc. excel ouvert (sans connaître le chemin)

anakin_74 Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -  
anakin_74 Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -
Salut,

J'espère que quelqu'un pourra m'aider. j'ai fouiné sur plusieurs forums et je n'ai pas trouvé mon bonheur.

J'ai déjà réalisé des macros (donc, je ne suis pas un pur débutant).

Je voudrai qu'une macro me pilote l'extraction d'un document excel ouvert vers un autre également ouvert. Je connais déjà la fonction "Workbooks.Open", mais mon problème n'est pas si simple.

Mon document excel est un rapport de contrôle de type vierge qui va chercher des informations sur un autre document en appuyant sur un bouton. Mon problème est que j'ai des centaines de documents différents donc je ne peux pas me servir de la fonction "Workbooks.Open" avec le lien hypertexte.

il faudrait que je puisse faire quelque chose qui recherche le deuxième workbook ouvert .

Merci d'avance
A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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.

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

0
anakin_74 Messages postés 42 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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.
0
anakin_74 Messages postés 42 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de ton aide. Je savais que le problème n'était pas si simple. C'est pas grave. Je ferai le boulot à l'ancienne "copier/Coller".
0