IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

communication entre deux fenetres distinctes excel [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 50
    Par défaut communication entre deux fenetres distinctes excel
    voila bonjour a tous.
    je suis sur un problème depuis deux jours et mes recherches sur internet non rien donnée...

    je voudrait communiquer entres deux fichier excel mais le problème c est que ces dernières possèdent deux fenêtres différente (ce que je desirent garder) ce qui empêche le fonction
    windows(" ").activate de fonctionner.
    cette dernière ne marche pas parce qu'excel n'arrive pas a trouver le fichier car bien qu'ouvert il se trouve dans une autre fenêtre.

    merci de m aider dans la mesure il y aurait une alternative a la fonction windows(" ).activate ou un complément a celle ci.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bonsoir,

    à quoi peu bien te servir la fonction windows(" ").activate ?

    c'est pour un diaporama ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 50
    Par défaut
    ba ça sert simplement a passer d un fichier excel a l autre
    mais seulement dans le cas ou les deux fichier se trouve dans le même classeur (la meme fenetre).
    moi ce ki minteresse c de pouvoir sélectionner un fichier excel un partir dun autre fichier ne se trouvant pas dans le meme classeur.
    mais pour ça la fonction windows("fichier.xls").activate ne marche pas...

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Quand tu dit passer d'un fichier à l'autre c'est juste l'affichage ... ton but n'est pas d'agir sur le contenu de tes classeurs ?


    et donc si c'est pour modifier l'affichage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub AfficheMonClasseur(stNom As String)
      Dim w As Window
      For Each w In Application.Windows
        Debug.Print w.Caption
        If InStr(1, stNom, w.Caption, vbTextCompare) > 0 Then
         MsgBox "Trouvé : " & w.Caption
         w.Activate
         Exit Sub
        End If
      Next
    End Sub
    et pour l'appel : AfficheMonClasseur "Classeur1"

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 50
    Par défaut
    nom c pas vraiment ce que je recherche. je vais mieux m expliquer, voila mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Sub Macro1()
    Set xls = CreateObject("Excel.Application")
          xls.Visible = True
     
    xls.Workbooks.Open Filename:="K:\projet entreprise\programmes\patron.xlsm"
     
     
    Set xls2 = CreateObject("Excel.Application")
     
          xls2.Visible = True
          xls2.Workbooks.Open Filename:="K:\projet entreprise\programmes        \interfaceclient.xlsm"
     
    'voila donc les 2 fichiers ouverts dans 2 fenêtres differentes     
    'maintenant la seul façon pour passer d un fichier a l autre c est ces formules   
     
     xls.Workbooks("patron.xlsm").Activate
     
    xls2.Workbooks("interfaceclient.xlsm").Activate
    End Sub
    tu me dira qu'a priori ca a lair de marcher, seulement les variable xls et xls2 ne sont pas réutilisable dans un autre module ou userform, ce qui m empêche d utiliser ces 2 formules.

    en gros ma situation est la suivante :
    g 2 fichier (patron.xlsm et interfaceclient.xlsm) et je veux creer des lien entre les 2 (copiage/collage etc..).
    pour l instant j ai presque réussi, seulement les formules (xls2.Workbooks("interfaceclient.xlsm").Activate et xls.Workbooks("patron.xlsm").Activate) ne peuvent pas être réutiliser car xls et xls2 perdent leurs valeurs.

    si tu arrive a me régler le problème tu et un boss !!

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    avant d'aller plus loin, explique moi pourquoi tu crée une nouvelle instance d'excel ?.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set xls = CreateObject("Excel.Application")

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 50
    Par défaut
    parce que je dispose de 2 écrans et si je ne le fait pas, les deux fichier apparaissent dans la même fenêtre (excel est comme ca...).

    il ya un fichier pour les gestionnaires d un magasin dans le 1er ecran et un autre fichier pour les client qui apparait dans le deuxieme ecran.

    mon but est de modifier le fichier patron a laide du fichier interfaceclient.
    merci de ton aide.

  8. #8
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    pour garder un lien vers les divers fichiers excel ouvert essai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim oWk2 as workbook
    set oWk2 = xls2.Workbooks.Open( Filename:="K:\projet entreprise\programmes\interfaceclient.xlsm" )
     
    '  et tu as accès à ton classeur grâce à oWk2
    msgbox oWk2.Name
    et pour que ta variable soit accessible depuis toutes les fonctions de ton module déplace la déclaration de oWK2 (ligne 2 du code) , en dehors de toutes procédure/fonction, tout en haut de ton module.

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 50
    Par défaut
    donc maintenant la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oWk2.Workbooks("patron.xlsm").Activate
    et censée pouvoir marcher dans tout les modules et userform des 2 fichiers ?

  10. #10
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    si oWk2 est déclaré dans un module public ...

    pour en être sur place en haut de toutes tes pages de codes l’instruction : Option Explicit instruction qui révèle rapidement toutes les erreurs de déclaration/portées .. des variables.

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 50
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Option Explicit
     
    Public xls As Variant
    Public xls2 As Variant
     
    Dim oWk2 As Workbook
     
    Sub Macro1()
    '
    Set xls2 = CreateObject("Excel.Application")
        xls2.Visible = True
     
    Set oWk2 = xls2.Workbooks.Open(Filename:="K:\projet entreprise\programmes\interfaceclient.xlsm")
     
    '  et tu as acce`s a` ton classeur gra^ce a` oWk2
    MsgBox oWk2.Name
     
    End Sub
    donc c comme tu ma dit et ca marche
    maintenant je test dans un autre module la formule " oWk2.Workbooks("interfaceclient.xlsm").Activate " :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub essai2()
     
    oWk2.Workbooks("interfaceclient.xlsm").Activate
     
    End Sub
    et le problème c que le module ne comprend pas le code...

  12. #12
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    oWk2 c'est déjà le classeur ... pas besoin de rajouter Workbooks(... ) à la suite..

  13. #13
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 50
    Par défaut
    ok donc j ai ecrit "oWk2.Activate" dans l autre module.
    et la ya un message d erreur :
    run time error "91"
    objet variable or with block variable not set
    woa je pensé pas que c était aussi complique que ça la communication entre 2 fenetres excel differente.

    je commence a désespéré...ca fait trois jours que je suis dessus...

  14. #14
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    et il est ou ton "autre" module dans ton autre classeur ?

  15. #15
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 50
    Par défaut
    il est dans le meme fichier

    le premier code est dans le module1
    le deuxieme code est dans le module 2

    peut être que tu sais simplement comment diviser en 2 fenêtres 2 fichiers se trouvant dans le même classeur.

    si tu sais le faire, alors la fonction windows(fichier.xls).activate marchera très bien, et fini les problèmes !

  16. #16
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par norman5 Voir le message
    ok donc j ai ecrit "oWk2.Activate" dans l autre module.
    et la ya un message d erreur :
    "run time error "91""
    "objet variable or with block variable not set "
    Citation Envoyé par norman5 Voir le message
    il est dans le meme fichier

    le premier code est dans le module1
    le deuxieme code est dans le module 2
    et donc je vois pas pourquoi tu as cette erreur 91 ... à part si tu n'utilise pas le code dans le bon ordre tu dois commencer par créer ta nouvelle instance d'excel, puis ouvrir ton classeur puis activer ta fenêtre...








    Citation Envoyé par norman5 Voir le message
    peut être que tu sais simplement comment diviser en 2 fenêtres 2 fichiers se trouvant dans le même classeur.

    si tu sais le faire, alors la fonction windows(fichier.xls).activate marchera très bien, et fini les problèmes !
    je comprends ton histoire de fenêtre.. il n'y as qu'un classeur par fichier excel, classeur qui contient plusieurs feuilles... s'il s'agit d'afficher plusieurs feuilles d'un même classeur tu fais Affichage/Nouvelle fenêtre.

  17. #17
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 50
    Par défaut
    ok merci beaucoup je vais reessayer !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/07/2013, 22h25
  2. communication entre deux fenetres
    Par ouinih dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/11/2010, 18h30
  3. Communication entre deux fenetres
    Par Jere76 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 19/03/2007, 17h18
  4. Communication entre deux fenetres
    Par Jere76 dans le forum VB.NET
    Réponses: 11
    Dernier message: 19/03/2007, 13h43
  5. Communication entre deux fenetres qui n'ont pas de lien de parenté
    Par Invité dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/09/2006, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo