Supportnet / Forum / Tabellenkalkulation
Direkte Verknpüfung zu Arbeitsblättern (Excel)
Frage
Hallo,
ich habe eine Excel-Datei mit mehreren Arbeitsblättern und würde zu diesen gerne durch normale Verknüpfungen auf meinem Desktop springen.
Nun habe ich im Internet allerlei gelesen über Möglichkeiten mit VBA besondere Parameter auszulesen und zu verarbeiten oder eine Variante, wo man #Arbeitsmappenname!Zelle anfügen soll aber nichts hat funktioniert.
Weiß jemand eine funktionierende Lösung?
Vielen Dank im Vorraus, Erik
Antwort 1 von Beverly
Hi Erik,
du kannst doch eine Verknüpfung zur betreffenden Arbeitsmappe auf dem Desktop ablegen. In das Workbook_Open Ereignis unter Diese Arbeitsmappe schreibst du, welche Tabelle beim Öffnen aktiviert werden soll
Bis später,
Karin
du kannst doch eine Verknüpfung zur betreffenden Arbeitsmappe auf dem Desktop ablegen. In das Workbook_Open Ereignis unter Diese Arbeitsmappe schreibst du, welche Tabelle beim Öffnen aktiviert werden soll
Private Sub Workbook_Open()
Worksheets("Tabelle1").Activate
End Sub
Bis später,
Karin
Antwort 2 von Master25
Danke für die Antwort Karin! Ich möchte jedoch, je nachdem wie die Verknüpfung lautet (z.B. datei.xls#rotesblatt oder datei.xls#blauesblatt) immer das jeweils gerade gewünschte Arbeitsblatt öffnen und nicht immer dasselbe.
Hast Du auch eine Idee dazu?
Hast Du auch eine Idee dazu?
Antwort 3 von Beverly
Hi Erik,
die Auswahl, mit welcher Tabelle geöffnet werden soll, lässt sich im Workbook_Open Ereignis abfragen. Es gibt da z.B. die Möglichkeit, beim Schließen der Arbeitsmappe den Tabellenamen, mit dem das nächste Mal geöffnet werden soll, in eine Zelle einzutragen, oder man macht es beim Öffnen mit einer InputBox, die nach der Tabelle fragt.
Bis später,
Karin
die Auswahl, mit welcher Tabelle geöffnet werden soll, lässt sich im Workbook_Open Ereignis abfragen. Es gibt da z.B. die Möglichkeit, beim Schließen der Arbeitsmappe den Tabellenamen, mit dem das nächste Mal geöffnet werden soll, in eine Zelle einzutragen, oder man macht es beim Öffnen mit einer InputBox, die nach der Tabelle fragt.
Bis später,
Karin
Antwort 4 von Master25
Ich verstehe. Aber es gibt keine Möglichkeit das zu öffnende Arbeitsblatt einer Excel-Datei über einen Link festzulegen?
Nur am Rande:
Als ich im Internet danach gestöbert hatte, habe ich ein VBA Script gefunden (Google -> "SOSCQ startparameter excel"), was die Startparameter, mit der die Excel-Datei geöffnet wurde, ausgelesen hat (der Parameter /e lässt dahinter eigene Parameter zu) und je nachdem was dort als Parameter stand, das entsprechende Arbeitsblatt geöffnet hat
z.B. Ausführen... -> excel.exe "C:\Verzeichnis\Datei.xls" /e/Arbeitsblatt
...nur leider hat dies nicht funktioniert. Da ich selbst kein VBA kann, konnte ich das Script auch nicht fixen. Ginge es darüber bzw. wäre das mit einer aktuelleren, als die dort verwendete, Version von Excel möglich?
Nur am Rande:
Als ich im Internet danach gestöbert hatte, habe ich ein VBA Script gefunden (Google -> "SOSCQ startparameter excel"), was die Startparameter, mit der die Excel-Datei geöffnet wurde, ausgelesen hat (der Parameter /e lässt dahinter eigene Parameter zu) und je nachdem was dort als Parameter stand, das entsprechende Arbeitsblatt geöffnet hat
z.B. Ausführen... -> excel.exe "C:\Verzeichnis\Datei.xls" /e/Arbeitsblatt
...nur leider hat dies nicht funktioniert. Da ich selbst kein VBA kann, konnte ich das Script auch nicht fixen. Ginge es darüber bzw. wäre das mit einer aktuelleren, als die dort verwendete, Version von Excel möglich?
Antwort 5 von Beverly
Hi Erik,
ich verwende Excel2002 und bei mir funktioniert das ebenfalls nicht. Die Verwendung von Startparametern hat nichts mit Excel-VBA-Programmierung an sich zu tun.
Ich hatte deshalb gedacht, man könne vielleicht mit Excel-VBA den Anzeigenamen einer Verknüpfung auslesen und hatte deshalb in meinem Heimforum dazu eine Frage gestellt. Mir wurde geantwortet, dass das mit VBS möglich sei. Da ich mich damit jedoch nicht auskenne, kann ich dir leider nicht weiterhelfen. Hier der Link zum Beitrag, vielleicht kannst du damit ja etwas anfangen.
Bis später,
Karin
ich verwende Excel2002 und bei mir funktioniert das ebenfalls nicht. Die Verwendung von Startparametern hat nichts mit Excel-VBA-Programmierung an sich zu tun.
Ich hatte deshalb gedacht, man könne vielleicht mit Excel-VBA den Anzeigenamen einer Verknüpfung auslesen und hatte deshalb in meinem Heimforum dazu eine Frage gestellt. Mir wurde geantwortet, dass das mit VBS möglich sei. Da ich mich damit jedoch nicht auskenne, kann ich dir leider nicht weiterhelfen. Hier der Link zum Beitrag, vielleicht kannst du damit ja etwas anfangen.
Bis später,
Karin
Antwort 6 von Beverly
Hi Erik,
Ergänzung bzw. Korrektur zu meinem vorherigen Post: unter dem Link findest du eine Lösung für dein Problem und eine Beschreibung, wie du dabei vorgehen kannst.
Bis später,
Karin
Ergänzung bzw. Korrektur zu meinem vorherigen Post: unter dem Link findest du eine Lösung für dein Problem und eine Beschreibung, wie du dabei vorgehen kannst.
Bis später,
Karin
Antwort 7 von Master25
Viele Dank für den hilfreichen Link! Ich habe die Anweisungen befolgt und es funktioniert tadellos!
Ich habe nur eine kleine Optimierung/Änderung vorgenommen, dass man nicht den kompletten Pfad der Excel-Datei übergeben muss, sondern nur den Namen und das Script den Pfad verwendet, in dem es selber liegt.
hier das vollständige Script:
Ich habe nur eine kleine Optimierung/Änderung vorgenommen, dass man nicht den kompletten Pfad der Excel-Datei übergeben muss, sondern nur den Namen und das Script den Pfad verwendet, in dem es selber liegt.
hier das vollständige Script:
'--------------------------------------------------------------------------
'--- Projekt: VERKNUEPFUNG ---
'--- Modul: start ---
'--- Beschreibung: Start von Excel mit Tabelle ---
'--------------------------------------------------------------------------
'--- Erstellt von: Andre Schau ---
'--- am: 06.05.2007 ---
'--------------------------------------------------------------------------
'--- Änderungen: ---
'--- Datum Version Autor Beschreibung ---
'--- 07.05.2007 Notepad Erik M. Pfad von .vbs für .xls ---
'--------------------------------------------------------------------------
'--- Verknüpfung z.B.
'--- "C:\arbeitsblatt.vbs" "Pfeilrichtung.xls" "Tabelle2"
'--------------------------------------------------------------------------
'--- Allgemeine Definitionen ---
'--------------------------------------------------------------------------
Option Explicit
'--------------------------------------------------------------------------
'--- Konstanten ---
'--------------------------------------------------------------------------
'--- Allgemeines ---
'--- Fehlerkonstanten ---
Public Const ERR_OK_ = 0
Public Const ERR_CRITICAL_ = 2
Public Const ERR_CANCEL_ = -1
Public Const ERR_WARNING_ = -10
'--------------------------------------------------------------------------
'--- Variablen ---
'--------------------------------------------------------------------------
Public file_name
Public table_name
'--------------------------------------------------------------------------
'--- Programmfunktionen ---
'--------------------------------------------------------------------------
'--------------------------------------------------------------------------
'--- Main ---
'--------------------------------------------------------------------------
Dim err_code
Dim wshShell, oFileSystem
Dim oExcel, oWbk, fso, sfile, scriptpath
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oFileSystem = CreateObject("Scripting.FileSystemObject")
err_code = ERR_OK_
ScriptPfad 'Scriptpfad bestimmen
Parse_CMDLine 'Argumente auswerten
If err_code = ERR_OK_ Then
If NOT oFileSystem.FileExists (File_Name) Then 'prüfen, ob Datei vorhanden
err_code = ERR_CRITICAL_
wscript.echo "Datei <" & File_Name & "> nicht gefunden!"
wscript.quit
End If
Else
' Fehler bei Kommandozeilenauswertung
wscript.echo "Fehler: " & err_code & " " & err.description
wscript.quit
End If
'--- Excel Öffnen
Set oExcel = CreateObject("Excel.Application") 'Excel Objekt zuweisen
oExcel.visible = true 'Excel sichtbar starten
Set oWbk = oExcel.Workbooks.Open (File_Name, false, true) 'Mappe öffnen
oExcel.Worksheets(Table_Name).Activate 'Tabelle aktivieren
'--------------------------------------------------------------------------
'--- ENDE ----
'--------------------------------------------------------------------------
'--------------------------------------------------------------------------
Function Parse_CMDLine ()
'--- Liest die Parameter der Kommandozeile aus
Dim objArgs
On error resume next
err_code = 2
Set objArgs = WScript.Arguments 'Argumente Objekt zuweisen
File_Name= scriptpath & objArgs(0) 'erstes Argument
Table_Name= objArgs(1) 'zweites Argument
err_code = err.number 'fehlt ein Argument kommt error 9
End Function
Function ScriptPfad ()
set fso = CreateObject("Scripting.FileSystemObject")
scriptpath = fso.getparentfoldername(WScript.ScriptFullName) & "\"
End Function

