BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!

DANKE >><< DANKE

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗

ExcelDatei per Macro öffnen

Alles zur Programmierung im OpenOffice.org
Antworten
Lehrling
Beiträge: 2
Registriert: Di 30. Jan 2024, 14:17

ExcelDatei per Macro öffnen

Beitrag von Lehrling » Di 30. Jan 2024, 14:35

Liebe Community,

ich bin in der Programmierung kein Fachmann und habe mir bisher aus Anleitungen usw versucht alles wichtige herauszusuchen. Nun bin ich aber am Ende angelangt und hoffe auf eure Hilfe.
Ich arbeite mit Linux und LO 7.6.4 und versuche über ein Makro eine Excel Datei zu öffnen. Dies funktioniert einwandfrei, sobald ich die url (oUrlTN) als Konstante definiere. Da sich aber die zu öffnende Datei nicht immer im gleichen Pfad befindet, habe ich versucht diese url aus meiner Tabelle auszulesen und dann zu öffnen. Diese Url wird auf Grund versch Parameter zusammengesetzt. Dies funktioniert aber nicht und wird mit der Fehlermeldung abgebrochen, dass diese Operation vom Betriebssystem nicht unterstützt wird!
Ich habe meine bisherigen Bemühungen als txt Datei angehängt, in der Hoffnung, dass dieser Teil ausreicht.
Für Hinweise auf die Fehlerursache wäre ich euch sehr dankbar.

Vielen Dank im Voraus

Lehrling
Dateianhänge
DateiOefffnen.odt
(25.95 KiB) 79-mal heruntergeladen

karolus
Beiträge: 651
Registriert: Di 23. Feb 2010, 12:07

Re: ExcelDatei per Macro öffnen

Beitrag von karolus » Mi 31. Jan 2024, 09:21

Hallo
Anstatt den Basic-Code in ein writer-dokument hineinzukopieren, hätteste das auch gleich hier zwischen </>-code_tags plazieren können

Code: Alles auswählen

Option explicit

Sub DateiTeilnehmer_oeffnen
  'const oUrlTN as string = "file:////home/volker/05_Turngau/01_Lehrgaenge/01_Lehrgaenge/2024/GymnetDownloads/Teilnehmer.xlsx" 'als URL Pfad
  DIM oTeilnehmer as variant, oUrlTN as variant
  Dim oDoc as variant, oSheet as variant, oSheetTN as variant, oDocTN as variant, oBereichTN as variant, oDatei as variant, oDateiName as variant, oZielbereichTN as Variant, myview as variant
  DIM oTN as string
 
'Array Lehrgangszeile definieren
  DIM argTN() 'Teilneherliste auslesen und speichern
  Dim arg(0) as new com.sun.star.beans.PropertyValue 'Array für verborgenes öffen

'WICHTIG: Dateien müssen im Ordner vorhanden sein
 
'Datei prüfen und öffnen - falls Datei nicht vorhanden ist Fehlermeldung ausgeben 
'Prüfroutine fehlt noch

'Speicherpfad Teilnehmerlsite auslesen
  oDoc = ThisComponent
  oSheet = oDoc.sheets.getByName("Bezuege")
  oTeilnehmer = oSheet.getCellRangeByName("$b$40")
  oUrlTN = oTeilnehmer.string
  
'Datei verborgen öffnen - vorerst ausgeschaltet
   oDocTN = StarDesktop.loadComponentFromUrl(oUrlTN, "_blank",0,arg())
   
alles was man dazu sagen kann ist:
In der Zelle $Bezuege.$B$40 steht wohl keine valide URL!

Lehrling
Beiträge: 2
Registriert: Di 30. Jan 2024, 14:17

Re: ExcelDatei per Macro öffnen

Beitrag von Lehrling » Mi 31. Jan 2024, 12:37

Hallo Karolus,
vielen Dank für deine Antwort. Ich wusste nicht, wie man den Code direkt eingeben kann, deshalb den Umweg mit Writer. So lernt man immer dazu.
Das mit dem validen Code scheint zu stimmen, aber ich weiß nicht, wie ich diesen durch Verknüfungen von Zellen gestalten kann. Der Text ist derselbe wie in der Konstanten definiert (ohne Anführungszeichen) aber es erscheint immer die Fehlermeldung, dass die aufzurufende Datei nicht existiert.
Hättest du hier eventuell einen Tipp wie ich hier eine valide Url hinbekomme?

Vielen Dank

Lehrling

mikele
Beiträge: 774
Registriert: Sa 23. Jul 2011, 22:09

Re: ExcelDatei per Macro öffnen

Beitrag von mikele » Mi 31. Jan 2024, 20:45

Hallo,
z. B. mit

Code: Alles auswählen

oUrlTN = convertToUrl(oTeilnehmer.string)
vorausgesetzt, dass das was in B40 steht auch eine vollständige Angabe (Pfad und Dateiname) ist, die auch wirklich existiert.
Gruß,
mikele

Antworten