Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: Excel-Datei öeffnen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
Tierisch mobil: Der autonome Inspektionsroboter ANYmal
Autor Thema:  API: Excel-Datei öeffnen (2144 mal gelesen)
Thomas5
Mitglied
Konstrukteur, SWX-Admin


Sehen Sie sich das Profil von Thomas5 an!   Senden Sie eine Private Message an Thomas5  Schreiben Sie einen Gästebucheintrag für Thomas5

Beiträge: 420
Registriert: 14.07.2003

SWX2013

erstellt am: 24. Okt. 2013 14:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


API-Excel-Oeffnen.jpg

 
Hallo,
seit langem öffne von SWX aus meine Excel-Stückliste mit einem Makro.
Unter Excel2003 und Window XP funktionierte das auch einwandfrei. Nun mußte ich auf W7-64bit und Excel2013 umsteigen, und da funktioniert mein Code:
Code:
Set XL1 = GetObject(xlDateipfad) 'Excel und vorh. StüLi öffnen
 
    For i = 1 To XL1.Parent.Windows.Count 'Excel-Fenster aktiv machen
        If UCase(XL1.Parent.Windows(i).Caption) = UCase(Mid(xlDateipfad, InStrRev(xlDateipfad, "\") + 1)) Then
            XL1.worksheets(1).Activate
            XL1.Windows(1).Activate
            XL1.Parent.Windows(i).Visible = True
            XL1.Parent.Windows(i).Activate
        End If
    Next
    XL1.Application.Visible = True
    Set XL1 = Nothing 


nicht mehr wie gewohnt.
1. In der Taskleiste erscheinen zwei Excel-Schaltflächen und dazu auch zwei Excel-Fenster. Das eine ist leer, und in den dahinterliegenden Fenster ist meine Stückliste.
2. Ist die Excel-Stückliste schon geöffnet und im Hintergrund, wird sie durch mein Makro nicht mehr wie gewohnt in den Vordergrund gebracht.
Meine Frage: Weiß jemand eine andere Methode, mit der es mir gelingt, meine Excel-Stückliste egal ob geschlossen, oder bereits geöffnet zur Anzeige zu bringen?

Viele Grüße
Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nahe
Ehrenmitglied



Sehen Sie sich das Profil von nahe an!   Senden Sie eine Private Message an nahe  Schreiben Sie einen Gästebucheintrag für nahe

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 28. Okt. 2013 09:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Thomas5 10 Unities + Antwort hilfreich

Hallo Thomas

ich weiß nicht ob Dir das hilft, weil wir die Kombination
Win7/64-Bit und Office 2010 32-Bit verwenden, aber bei mir funktioniert das mit folgendem Code
(die Anweisung workbooks.open musst Du halt anpassen)


Sub main()
  Dim Excel    As Excel.Application
  Dim excel_NOK As Boolean
  Dim FileName As String
  Dim swapp                      As Object
     
  Set swapp = CreateObject("SldWorks.Application")
 
  On Error Resume Next
  ' Versuch einen Verweis auf Excel zu bekommen
  Set Excel = GetObject(, "Excel.Application")
  ' Wenn ein Fehler auftritt dann läuft Excel noch nicht
  If Err.Number <> 0 Then excel_NOK = True
  Err.Clear
  ' Wenn Excel noch nicht läuft, dann wird es gestartet
  If excel_NOK = True Then
    Set Excel = CreateObject("excel.application")
  End If
   
  Excel.Visible = True

   
  FileName = swapp.GetCurrentMacroPathName
  Excel.workbooks.open Left(swapp.GetCurrentMacroPathName, InStrRev(swapp.GetCurrentMacroPathName, "\")) + "Combo-01.xlsx"


End Sub

------------------
Grüße
Heinz

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas5
Mitglied
Konstrukteur, SWX-Admin


Sehen Sie sich das Profil von Thomas5 an!   Senden Sie eine Private Message an Thomas5  Schreiben Sie einen Gästebucheintrag für Thomas5

Beiträge: 420
Registriert: 14.07.2003

SWX2013

erstellt am: 28. Okt. 2013 13:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Heinz,
genau was ich brauche:
Dein Code funktioniert klasse.
Tausend Dank!
Viele Grüße und frohes Schaffen....
Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz