Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1044to1048
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Beim öffnen des Workbooks auf erste Seite Springen

Beim öffnen des Workbooks auf erste Seite Springen
30.01.2009 14:51:00
adrian
Hi,
Ich weiß leider nicht wie ich beim öffnen meiner excelfile immer sofort das erste sheet angezeigen lasse!
Egal welches sheet beim zuvorigen speichern gerade aktiv war!
Ich möchte das tun, weil ich beim öffnen der Excelfile den Code im ersten Sheet hiermit sofort laden möchte!
Hatte ich zuvor beim speichern ein anderes Sheet aktiv, so bekomme ich eine Fehlermeldung, dass im ersten Sheet eine Bereich nicht mehr richtig zugewiesen wird, und deshalb nicht gecleared werden kann.
Fehler:
Run-time error '1004':
Method 'Range' of object '_Application' failed

Habe keine Ahnung warum! Aber ich kann dies ja vermeiden, indem ich beim öffnen immer das erste Sheet angezeigt habe.
lg
adrian

Sub Workbook_Open()
Dim strQuestion As String
Application.Run ThisWorkbook.Name & "!Sheet1.Overview"
strQuestion = MsgBox("Do you want to read the manual?", vbYesNo)
If strQuestion = vbYes Then
Call Manual_click
End If
End Sub


Codeauschnitt aus Sheet1.Overview
Das fett markierte ist die Fehlerstelle, falls beim Speichern nicht Sheet1.Overview augewählt war.
Die variablen rangeZielA/ListeA und rangeZielB/ListeB sind allgemein in dem Sheet als Private deklariert.
'#### Aufnahme aller ODMs! ####
Dim areaA As String
areaA = "ODMListA"
Set rangeListeA = Nothing
Application.Range(areaA).ClearContents
Set rangeZielA = Application.Range(areaA).Range("A1")
Call Bereich_Auslesen(rangeBereich:=Worksheets("Philips (A)").Range("SupplierAs"))
Call Bereich_Auslesen(rangeBereich:=Worksheets("Philips (EU)").Range("SupplierEU"))
Call Bereich_Auslesen(rangeBereich:=Worksheets("Philips (US)").Range("SupplierUS"))
Call Bereich_Auslesen(rangeBereich:=Worksheets("Sony (A)").Range("SonySupplierAs"))
Call Bereich_Auslesen(rangeBereich:=Worksheets("Sony (EU)").Range("SonySupplierEU"))
Call Bereich_Auslesen(rangeBereich:=Worksheets("Sony (US)").Range("SonySupplierUS"))
Call Bereich_Auslesen(rangeBereich:=Worksheets("Samsung (A)").Range("SamsungSupplierAs"))
Call Bereich_Auslesen(rangeBereich:=Worksheets("Samsung (EU)").Range("SamsungSupplierEU"))
Call Bereich_Auslesen(rangeBereich:=Worksheets("Samsung (US)").Range("SamsungSupplierUS"))
Call Bereich_Auslesen(rangeBereich:=Worksheets("LG Elec. (A)").Range("LGElecSupplierAs"))
Call Bereich_Auslesen(rangeBereich:=Worksheets("LG Elec. (EU)").Range("LGElecSupplierEU"))
Call Bereich_Auslesen(rangeBereich:=Worksheets("LG Elec. (US)").Range("LGElecSupplierUS"))
If Not rangeListeA Is Nothing Then
With rangeListeA
'Listenbereich dem Namen neu zuweisen
Application.Names(areaA).RefersTo = "='" & .Parent.Name & "'!" & .Address
End With
End If
'#### Nochmals Aufnahme aller ODMs für Horizontale Darstellung! ####
Dim areaB As String, ODMBZeile As Long, ODMBSpalte As Long, Found As String, Kontrollzelle As Range
areaB = "ODMListB"
Set rangeListeB = Nothing
Application.Range(areaB).ClearContents
Set rangeZielB = Application.Range(areaB).Range("A1")
Call AllODM_Auslesen(rangeSector:=Worksheets("Overview").Range("ODMListA"))
If Not rangeListeB Is Nothing Then
With rangeListeB
Application.Names(areaB).RefersTo = "='" & .Parent.Name & "'!" & .Address
End With
End If
Funktionen in dem Sheet1.Overview:
'#### Auslesen aller ODMs! ####
Private Sub Bereich_Auslesen(rangeBereich As Range)
Dim rangeGefunden As Range
Dim Zelle As Range
For Each Zelle In rangeBereich
If Zelle "" Then
If rangeListeA Is Nothing Then
rangeZielA = Zelle.Value
Set rangeListeA = rangeZielA
Else
With rangeListeA
Set rangeGefunden = .Find(what:=Zelle.Value, LookIn:=xlValues, Lookat:=xlWhole)
If rangeGefunden Is Nothing Then
Set rangeZielA = rangeZielA.Offset(1, 0)
rangeZielA.Value = Zelle.Value
Set rangeListeA = Union(rangeListeA, rangeZielA)
End If
End With
End If
End If
Next
End Sub
'#### Nochmals auslesen aller ODMs! ####
Private Sub AllODM_Auslesen(rangeSector As Range)
Dim Zelle As Range
For Each Zelle In rangeSector
If Zelle "" Then
If rangeListeB Is Nothing Then
rangeZielB = Zelle.Value
Set rangeListeB = rangeZielB
Else
With rangeListeB
Set rangeZielB = rangeZielB.Offset(0, 4)
rangeZielB.Value = Zelle.Value
Set rangeListeB = Union(rangeListeB, rangeZielB)
End With
End If
End If
Next
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beim öffnen des Workbooks auf erste Seite Springen
30.01.2009 14:53:42
Oberschlumpf
Hi Adrian
Hab mir jetzt nich all deinen Code angesehen (ne Bsp-Datei wär vielleicht besser gewesen).
Versuch mal das hier:

Sub Workbook_Open()
Dim strQuestion As String
Sheets(1).Activate
Application.Run ThisWorkbook.Name & "!Sheet1.Overview"
strQuestion = MsgBox("Do you want to read the manual?", vbYesNo)
If strQuestion = vbYes Then
Call Manual_click
End If
End Sub


Hilfts?
Ciao
Thorsten

AW: Beim öffnen des Workbooks auf erste Seite Springen
30.01.2009 15:14:20
adrian
Hi,
jojo habs scho behoben...alles paletti =)
Danke dir!
AW: Beim öffnen des Workbooks auf erste Seite Springen
30.01.2009 15:13:17
adrian
Hi,
Problemchen ist behoben, aber vll. kann mir jemand erklären warum dieser Fehler auftritt, wenn ich diese Fkt. "Overview" in dem Sheet1.Overview folgfend aufrufe?

Sub Workbook_Open()
Dim strQuestion As String
Application.Run ThisWorkbook.Name & "!Sheet1.Overview"
strQuestion = MsgBox("Do you want to read the manual?", vbYesNo)
If strQuestion = vbYes Then
Call Manual_click
End If
End Sub


Habe Application.Run ThisWorkbook.Name & "!Sheet1.Overview" durch
Application.Worksheet("Overview").Activate ersetzt =)

Anzeige
AW: Beim öffnen des Workbooks auf erste Seite Springen
30.01.2009 21:05:00
Gerd
Hi
Call AllODM_Auslesen(rangeSector:=Worksheets("Overview").Range("ODMListA"))
Application.Run ThisWorkbook.Name & "!Sheet1.Overview"
Eine Prozedur aufrufen, die wie ein Sheet benannt ist ?
Und wenn Du deine Prozeduren entprivatisierst geht es auch so:
Call Tabelle4.test
Beim Öffnen immer ein bestimmtes Sheet anzeigen:
Aktiviere es im Workbook_BeforeClose
Gruß Gerd

13 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige