EXCEL openenen vanuit VB

Status
Niet open voor verdere reacties.

GranadaDude

Gebruiker
Lid geworden
5 jan 2006
Berichten
32
Hoi,

Ik heb een vraag ivm het openen van een excel bestand vanuit een andere applicatie.

Vanuit een applicatie (WinCC) die VBA code ondersteunt (en ook C++) heb ik een excel file die geopend wordt door op het scherm op een knop te drukken in mijn gemaakte applicatie.

Echter, als ik 2 maal of meer op dez knop druk, wordt de excel file 2 maal of meer geopend, uiteraard met het probleem van de melding dat de excel file al open staat.

Ik weet dat er een functie in VBA code bestaat, maar ben de syntax vergeten. Deze functie gaat dmv een dll kunnen kenbaar maken of de betreffende excel file al geopend werd.

Zodoende kan ik dan eerst controleren of de file al niet openstaat, en dan de applicatie enkel activeren ipv opnieuw te openen.

Iemand van jullie enige ideeën, aub ?

Thanks, Guys !!
 
Als ik je goed begrijp wil je Excel niet een tweede maal openen

De beste methode is eerst controleren of er een open Excel applicatie is.... dat wil zeggen die kon al open staan voordaty jouw progje werd gestart endaarna in de Excel applicatie kijken of het gewenste werkboek al open is....Ik neem aan dat je Late Bound wil werken vanwege compabiliteit met verschillende Excel veries (2000,2003 e.d.)
Laten we zeggen dat het wekboek "Test" heet.

On the Fly:
Code:

info@driesign.nl
 
Laatst bewerkt:
Hallo Dnereb,

Ik heb je code eens in een vba script achter een knop gestoken.

Maar ik krijg het fenomeen dat hij geen excel applicatie ziet en de file voor een 2e keer opent, wat juist niet mag.

Ik weet niet of het mogelijk is om een andere denkpiste te bewandelen.

Ooit heb ik eens een script geschreven dat mij een lijst gaf van alle applicaties die actief zijn in de taakbalk onderaan.

Spijtig genoeg is de juiste syntax hiervoor mij ontgaan.

Greetz,

Tom
 
Afhankelijk van de programmeer omgeving is er iets raars met Getobject...
Soms is Excel een Class maar soms wordt het als een path naar een applicatie gezien.
dus probeer het eens met:
Set ExclObj = GetObject(,"Excel.Application")

dat werkt in VBA namelijk
 
Afhankelijk van de programmeer omgeving is er iets raars met Getobject...
Soms is Excel een Class maar soms wordt het als een path naar een applicatie gezien.
dus probeer het eens met:
Set ExclObj = GetObject(,"Excel.Application")

dat werkt in VBA namelijk

Inderdaad, als een class wordt excel wel herkend. Dit truukje werkt goed.

Hartelijk dank, man !!!
 
Dnereb, Nog een vraagje,

Het enige wat ik nu nog ondervind, is dat de excel file door de code geactiveerd wordt.

In windows XP wordt dit aangetoond door de applicatie die in de taakbalk onderaan oranje knippert.

Het ultieme zou zijn dat de excel applicatie niet onderaan in de taakbalk knippert, maar dat de excel applicatie volwaardig op de voorgrond komt.

Ik ga zelf nog even op zoek, maar ik had daar ergens nog iets van gevonden door een bepaalde timer in registry op 0 te zetten, zou dit probleem opgelost zijn.

Ik hou je nog op de hoogte,
 
ExclObj.visible = True doet het zonder mankeren.

P.S. ik heb de code verwijdert omdat men hier blijkbaar vindt dat men na 2 maanden eigenaar wordt.
 
Laatst bewerkt:
Hallo, Dnereb,

Ik heb een tooltje gevonden, waarmee je de foreground lock time-out op 0 kan zetten.

Hierdoor verdwijnt het probleem dat bij windows xp de applicatie enkel oranje knippert en geen focus krijgt.

Door de tijd van 200 sec naar 0 te brengen, gaat het OS wel onmiddellijk naar de applicatie springen.

Dus, my problems are over (allee ja, de deze toch, ... hehehe)

Thanks voor de medewerking. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan