Comment faire pour rendre active, dans mon programme en VB6, une instance
d'EXCEL déjà ouverte par un autre programme. J'arrive à détecter qu'un
processus EXCEL.EXE tourne sur ma machine mais je ne sais pas détecter le
nom du classeur ouvert ni celui de la feuille active, ni activer celle-ci.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred
Dans son message 429b2c8e$0$25795$ Rodryg nous dit :
Bonjour,
Comment faire pour rendre active, dans mon programme en VB6, une instance d'EXCEL déjà ouverte par un autre programme. J'arrive à détecter qu'un processus EXCEL.EXE tourne sur ma machine mais je ne sais pas détecter le nom du classeur ouvert ni celui de la feuille active, ni activer celle-ci. Quelqu'un a un idée? Merci à tous.
Rodryg
Bonjour, As-tu essayé ceci ? 8<---------- Dim oXL As Excel.Application Set oXL = GetObject("Excel.Application") 8<---------- (j'ai testé en vbs pas en vb6) Cela retourne bien l'instance active d'excel et tout ce qui s'ensuit.
-- Fred
Dans son message 429b2c8e$0$25795$79c14f64@nan-newsreader-06.noos.net
Rodryg nous dit :
Bonjour,
Comment faire pour rendre active, dans mon programme en VB6, une
instance d'EXCEL déjà ouverte par un autre programme. J'arrive à
détecter qu'un processus EXCEL.EXE tourne sur ma machine mais je ne
sais pas détecter le nom du classeur ouvert ni celui de la feuille
active, ni activer celle-ci.
Quelqu'un a un idée? Merci à tous.
Rodryg
Bonjour,
As-tu essayé ceci ?
8<----------
Dim oXL As Excel.Application
Set oXL = GetObject("Excel.Application")
8<----------
(j'ai testé en vbs pas en vb6)
Cela retourne bien l'instance active d'excel et tout ce qui s'ensuit.
Dans son message 429b2c8e$0$25795$ Rodryg nous dit :
Bonjour,
Comment faire pour rendre active, dans mon programme en VB6, une instance d'EXCEL déjà ouverte par un autre programme. J'arrive à détecter qu'un processus EXCEL.EXE tourne sur ma machine mais je ne sais pas détecter le nom du classeur ouvert ni celui de la feuille active, ni activer celle-ci. Quelqu'un a un idée? Merci à tous.
Rodryg
Bonjour, As-tu essayé ceci ? 8<---------- Dim oXL As Excel.Application Set oXL = GetObject("Excel.Application") 8<---------- (j'ai testé en vbs pas en vb6) Cela retourne bien l'instance active d'excel et tout ce qui s'ensuit.
-- Fred
rodryg
En effet ca retourne bien la session mais je ne sais pas comment récupérer le nom du classeur et de la feuille active. Quelle est la syntaxe ? (oXL.workbook.name ?)
Merci beaucoup
Rodryg
"Fred" a écrit dans le message de news:
Dans son message 429b2c8e$0$25795$ Rodryg nous dit :
Bonjour,
Comment faire pour rendre active, dans mon programme en VB6, une instance d'EXCEL déjà ouverte par un autre programme. J'arrive à détecter qu'un processus EXCEL.EXE tourne sur ma machine mais je ne sais pas détecter le nom du classeur ouvert ni celui de la feuille active, ni activer celle-ci. Quelqu'un a un idée? Merci à tous.
Rodryg
Bonjour, As-tu essayé ceci ? 8<---------- Dim oXL As Excel.Application Set oXL = GetObject("Excel.Application") 8<---------- (j'ai testé en vbs pas en vb6) Cela retourne bien l'instance active d'excel et tout ce qui s'ensuit.
-- Fred
En effet ca retourne bien la session mais je ne sais pas comment récupérer
le nom du classeur et de la feuille active. Quelle est la syntaxe ?
(oXL.workbook.name ?)
Merci beaucoup
Rodryg
"Fred" <foleide@libre.france> a écrit dans le message de news:
OpMRxxSZFHA.1404@TK2MSFTNGP09.phx.gbl...
Dans son message 429b2c8e$0$25795$79c14f64@nan-newsreader-06.noos.net
Rodryg nous dit :
Bonjour,
Comment faire pour rendre active, dans mon programme en VB6, une
instance d'EXCEL déjà ouverte par un autre programme. J'arrive à
détecter qu'un processus EXCEL.EXE tourne sur ma machine mais je ne
sais pas détecter le nom du classeur ouvert ni celui de la feuille
active, ni activer celle-ci.
Quelqu'un a un idée? Merci à tous.
Rodryg
Bonjour,
As-tu essayé ceci ?
8<----------
Dim oXL As Excel.Application
Set oXL = GetObject("Excel.Application")
8<----------
(j'ai testé en vbs pas en vb6)
Cela retourne bien l'instance active d'excel et tout ce qui s'ensuit.
En effet ca retourne bien la session mais je ne sais pas comment récupérer le nom du classeur et de la feuille active. Quelle est la syntaxe ? (oXL.workbook.name ?)
Merci beaucoup
Rodryg
"Fred" a écrit dans le message de news:
Dans son message 429b2c8e$0$25795$ Rodryg nous dit :
Bonjour,
Comment faire pour rendre active, dans mon programme en VB6, une instance d'EXCEL déjà ouverte par un autre programme. J'arrive à détecter qu'un processus EXCEL.EXE tourne sur ma machine mais je ne sais pas détecter le nom du classeur ouvert ni celui de la feuille active, ni activer celle-ci. Quelqu'un a un idée? Merci à tous.
Rodryg
Bonjour, As-tu essayé ceci ? 8<---------- Dim oXL As Excel.Application Set oXL = GetObject("Excel.Application") 8<---------- (j'ai testé en vbs pas en vb6) Cela retourne bien l'instance active d'excel et tout ce qui s'ensuit.
-- Fred
Fred
Dans son message 429b3c09$0$10413$ rodryg nous dit :
"Fred" a écrit dans le message de news:
Dans son message 429b2c8e$0$25795$ Rodryg nous dit :
Bonjour,
Comment faire pour rendre active, dans mon programme en VB6, une instance d'EXCEL déjà ouverte par un autre programme. J'arrive à détecter qu'un processus EXCEL.EXE tourne sur ma machine mais je ne sais pas détecter le nom du classeur ouvert ni celui de la feuille active, ni activer celle-ci. Quelqu'un a un idée? Merci à tous.
Rodryg
Bonjour, As-tu essayé ceci ? 8<---------- Dim oXL As Excel.Application Set oXL = GetObject("Excel.Application") 8<---------- (j'ai testé en vbs pas en vb6) Cela retourne bien l'instance active d'excel et tout ce qui s'ensuit.
-- Fred
En effet ca retourne bien la session mais je ne sais pas comment récupérer le nom du classeur et de la feuille active. Quelle est la syntaxe ? (oXL.workbook.name ?)
Merci beaucoup
Rodryg
oXL.ActiveWorkbook ?
sinon l'objet Application possède une collection WorkbookS (avec un S) qui contient tous les classeurs ouverts. De même chaque workbook (sans S) élément de la collection, contient une collection WorkSheetS (avec un S) d'objets de type worksheet (sans S) ;-) Pour avoir la feuille active je crois me souvenir que c'est ActiveSheet ou ActiveWorkSheet.
L'auto-complétion cela aide bien. Ajoute Excel dans les références de ton projet et déclare chacune de variables : exemple : 8<------- Dim oXL As Excel.Application Set oXL = GetObject("Excel.Application")
Dim oWorkBook As Excel.WorkBook Set oWorkBook = oXL.ActiveWorkBook
Dim oWorkSheet as Excel.WorkSheet Set oWorkSheet = oWorkBook.ActiveSheet 'pas sûr 8<----------
-- Fred
Dans son message 429b3c09$0$10413$79c14f64@nan-newsreader-05.noos.net
rodryg nous dit :
"Fred" <foleide@libre.france> a écrit dans le message de news:
OpMRxxSZFHA.1404@TK2MSFTNGP09.phx.gbl...
Dans son message 429b2c8e$0$25795$79c14f64@nan-newsreader-06.noos.net
Rodryg nous dit :
Bonjour,
Comment faire pour rendre active, dans mon programme en VB6, une
instance d'EXCEL déjà ouverte par un autre programme. J'arrive à
détecter qu'un processus EXCEL.EXE tourne sur ma machine mais je ne
sais pas détecter le nom du classeur ouvert ni celui de la feuille
active, ni activer celle-ci.
Quelqu'un a un idée? Merci à tous.
Rodryg
Bonjour,
As-tu essayé ceci ?
8<----------
Dim oXL As Excel.Application
Set oXL = GetObject("Excel.Application")
8<----------
(j'ai testé en vbs pas en vb6)
Cela retourne bien l'instance active d'excel et tout ce qui s'ensuit.
--
Fred
En effet ca retourne bien la session mais je ne sais pas comment
récupérer le nom du classeur et de la feuille active. Quelle est la
syntaxe ? (oXL.workbook.name ?)
Merci beaucoup
Rodryg
oXL.ActiveWorkbook ?
sinon l'objet Application possède une collection WorkbookS (avec un S) qui
contient tous les classeurs ouverts.
De même chaque workbook (sans S) élément de la collection, contient une
collection WorkSheetS (avec un S) d'objets de type worksheet (sans S) ;-)
Pour avoir la feuille active je crois me souvenir que c'est ActiveSheet ou
ActiveWorkSheet.
L'auto-complétion cela aide bien.
Ajoute Excel dans les références de ton projet et déclare chacune de
variables :
exemple :
8<-------
Dim oXL As Excel.Application
Set oXL = GetObject("Excel.Application")
Dim oWorkBook As Excel.WorkBook
Set oWorkBook = oXL.ActiveWorkBook
Dim oWorkSheet as Excel.WorkSheet
Set oWorkSheet = oWorkBook.ActiveSheet 'pas sûr
8<----------
Dans son message 429b3c09$0$10413$ rodryg nous dit :
"Fred" a écrit dans le message de news:
Dans son message 429b2c8e$0$25795$ Rodryg nous dit :
Bonjour,
Comment faire pour rendre active, dans mon programme en VB6, une instance d'EXCEL déjà ouverte par un autre programme. J'arrive à détecter qu'un processus EXCEL.EXE tourne sur ma machine mais je ne sais pas détecter le nom du classeur ouvert ni celui de la feuille active, ni activer celle-ci. Quelqu'un a un idée? Merci à tous.
Rodryg
Bonjour, As-tu essayé ceci ? 8<---------- Dim oXL As Excel.Application Set oXL = GetObject("Excel.Application") 8<---------- (j'ai testé en vbs pas en vb6) Cela retourne bien l'instance active d'excel et tout ce qui s'ensuit.
-- Fred
En effet ca retourne bien la session mais je ne sais pas comment récupérer le nom du classeur et de la feuille active. Quelle est la syntaxe ? (oXL.workbook.name ?)
Merci beaucoup
Rodryg
oXL.ActiveWorkbook ?
sinon l'objet Application possède une collection WorkbookS (avec un S) qui contient tous les classeurs ouverts. De même chaque workbook (sans S) élément de la collection, contient une collection WorkSheetS (avec un S) d'objets de type worksheet (sans S) ;-) Pour avoir la feuille active je crois me souvenir que c'est ActiveSheet ou ActiveWorkSheet.
L'auto-complétion cela aide bien. Ajoute Excel dans les références de ton projet et déclare chacune de variables : exemple : 8<------- Dim oXL As Excel.Application Set oXL = GetObject("Excel.Application")
Dim oWorkBook As Excel.WorkBook Set oWorkBook = oXL.ActiveWorkBook
Dim oWorkSheet as Excel.WorkSheet Set oWorkSheet = oWorkBook.ActiveSheet 'pas sûr 8<----------
-- Fred
Hervé
Bonsoir, Sans cocher la référence à Excel, mais il faut connaître les méthodes et propriétés (il vaux mieux cocher pour disposer des listes de choix des méthodes et propriétés) adapte le code à tes besoins :
Private Sub Command1_Click() 'sans référence (moins rapide !) Dim AppExcel As Object Dim Cls As Object Dim Fe As Object
'évite l'erreur de l'appli fermée On Error Resume Next Set AppExcel = GetObject(, "Excel.Application")
'recherche dans la collection de classeurs 'si il y en a un qui se nomme Classeur1.xls 'et affiche le message en concéquence For Each Cls In AppExcel.workbooks If Cls.Name = "Classeur1.xls" Then Set Fe = Cls.worksheets("Feuil1") Exit For End If Next Cls If Fe Is Nothing Then MsgBox "Pas trouvé :o((" Else MsgBox "Youpie, trouvé :o))" Fe.[A1] = "Ecris ce que tu veux !" End If
Set Fe = Nothing Set Cls = Nothing Set AppExcel = Nothing End Sub
Hervé.
"Rodryg" a écrit dans le message news: 429b2c8e$0$25795$
Bonjour,
Comment faire pour rendre active, dans mon programme en VB6, une instance d'EXCEL déjà ouverte par un autre programme. J'arrive à détecter qu'un processus EXCEL.EXE tourne sur ma machine mais je ne sais pas détecter le nom du classeur ouvert ni celui de la feuille active, ni activer celle-ci.
Quelqu'un a un idée? Merci à tous.
Rodryg
Bonsoir,
Sans cocher la référence à Excel, mais il faut connaître les méthodes et
propriétés (il vaux mieux cocher pour disposer des listes de choix des
méthodes et propriétés) adapte le code à tes besoins :
Private Sub Command1_Click()
'sans référence (moins rapide !)
Dim AppExcel As Object
Dim Cls As Object
Dim Fe As Object
'évite l'erreur de l'appli fermée
On Error Resume Next
Set AppExcel = GetObject(, "Excel.Application")
'recherche dans la collection de classeurs
'si il y en a un qui se nomme Classeur1.xls
'et affiche le message en concéquence
For Each Cls In AppExcel.workbooks
If Cls.Name = "Classeur1.xls" Then
Set Fe = Cls.worksheets("Feuil1")
Exit For
End If
Next Cls
If Fe Is Nothing Then
MsgBox "Pas trouvé :o(("
Else
MsgBox "Youpie, trouvé :o))"
Fe.[A1] = "Ecris ce que tu veux !"
End If
Set Fe = Nothing
Set Cls = Nothing
Set AppExcel = Nothing
End Sub
Hervé.
"Rodryg" <rodryg@magic.fr> a écrit dans le message news:
429b2c8e$0$25795$79c14f64@nan-newsreader-06.noos.net...
Bonjour,
Comment faire pour rendre active, dans mon programme en VB6, une instance
d'EXCEL déjà ouverte par un autre programme. J'arrive à détecter qu'un
processus EXCEL.EXE tourne sur ma machine mais je ne sais pas détecter le
nom du classeur ouvert ni celui de la feuille active, ni activer celle-ci.
Bonsoir, Sans cocher la référence à Excel, mais il faut connaître les méthodes et propriétés (il vaux mieux cocher pour disposer des listes de choix des méthodes et propriétés) adapte le code à tes besoins :
Private Sub Command1_Click() 'sans référence (moins rapide !) Dim AppExcel As Object Dim Cls As Object Dim Fe As Object
'évite l'erreur de l'appli fermée On Error Resume Next Set AppExcel = GetObject(, "Excel.Application")
'recherche dans la collection de classeurs 'si il y en a un qui se nomme Classeur1.xls 'et affiche le message en concéquence For Each Cls In AppExcel.workbooks If Cls.Name = "Classeur1.xls" Then Set Fe = Cls.worksheets("Feuil1") Exit For End If Next Cls If Fe Is Nothing Then MsgBox "Pas trouvé :o((" Else MsgBox "Youpie, trouvé :o))" Fe.[A1] = "Ecris ce que tu veux !" End If
Set Fe = Nothing Set Cls = Nothing Set AppExcel = Nothing End Sub
Hervé.
"Rodryg" a écrit dans le message news: 429b2c8e$0$25795$
Bonjour,
Comment faire pour rendre active, dans mon programme en VB6, une instance d'EXCEL déjà ouverte par un autre programme. J'arrive à détecter qu'un processus EXCEL.EXE tourne sur ma machine mais je ne sais pas détecter le nom du classeur ouvert ni celui de la feuille active, ni activer celle-ci.