Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
512to516
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
512to516
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Tabellenblatt in Listenfeld
08.11.2004 12:08:16
Ronald
Hallo,
ich habe ein riesiges Problem. Ich bin VBA-Excel-Anfänger und ich benötige dringend eine INFO. Ich hoffe Ihr könnt mir helfen. Ich habe ein Excel-Datei mit sehr vielen Tabellenblättern. Nun habe ich eine UserForm erstellt und möchte mir über ein Listenfeld alle Tabellenblätter anzeigen lassen. Damit aber nicht genug. Ich möchte weiterhin, wenn ich in dem Listenfeld ein Tabellenblatt doppelt anklicke, oder über einen Button das Tabellenblatt bestätige, zu diesem wechseln.
Es wäre äußerst DRINGEND. BITTE helft mir.
Im Voraus schon mal vielen Dank.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt in Listenfeld
PeterW
Hallo Ronald,
klick oben mal auf Services - Excel-FAQ und schau dann unter Dialog. Dort findest du beispielsweise:
https://www.herber.de/mailing/117700h.htm
Gruß
Peter
AW: Tabellenblatt in Listenfeld
08.11.2004 13:53:05
Ronald
Hallo Peter,
vielen Dank für die Info, sie hat mir schon ein ganzes Stück weitergeholfen. Da ich leider völlig unbedarft bin, habe ich jetzt ein weiteres Problem.
Nachdem ich die Userform geschlossen habe, möchte ich später wieder darauf zurückgreifen. Nun habe ich einen Button eingebaut, der die Userform wieder schließt. Über die Prozedur

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
frmAuswahl.Show
End Sub

versuche ich, wenn ich das Tabellenblatt wechsle, die Userform wieder aufzurufen. Ich dachte mir, dass das funktionieren würden. Leider aber nicht. Wenn ich ein Tabellenblatt auswähle und mit OK bestätige, dass es dahin wechseln soll, dann werde ich mit einem Laufzeitfehler 400 begrüßt, der aussagt, dass das Formular bereits angezeigt wird und daher nicht gebunden dargestellt werden kann. Was mache ich falsch? Wenn ich obige Prozedur weglasse, dann wird mir auch das gewählte Tabellenblatt angezeigt, wenn ich aber die Userform schließe, dann kann ich sie aber leider nicht wieder öffnen.
HIIIILLLLFFFFEEEE.
Anzeige
AW: Tabellenblatt in Listenfeld
PeterW
Hallo Ronald,
jetzt müsste man wissen, wo du welchen Code stehen hast. Schau dir dieses sehr einfache Beispiel an.
https://www.herber.de/bbs/user/13137.xls
Gruß
Peter
AW: Tabellenblatt in Listenfeld
08.11.2004 15:04:44
Ronald
Hallo Peter,
habe mich gerade über den Programmcode hergemacht, aber auch hier funktioniert es nicht.
Ich verwende folgenden Code:

Private Sub Workbook_Open()
Worksheets("Rohdaten").Select   'Anzeigen beim Öffnen eines bestimmten Tabellenblattes
frmAuswahl.Show                 'Userform anzeigen
End Sub


Private Sub Worksheet_Activate()
Call anzeige
End Sub


Private Sub cmdEnde_Click()
Unload Me   'Schließen der Userform
End Sub


Private Sub cmdWeiter_Click()
Dim iCounter As Integer
Dim arr() As String
Dim iItems As Integer
For iCounter = 0 To lstSheets.ListCount - 1
If lstSheets.Selected(iCounter) Then
iItems = iItems + 1
ReDim Preserve arr(1 To iItems)
arr(iItems) = lstSheets.List(iCounter)
End If
Next iCounter
If iItems > 0 Then
Worksheets(arr).Select
End If
End Sub


Private Sub UserForm_Initialize()
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets 'Einlesen der Namen der Tabellenblätter in das Listenfeld
lstSheets.AddItem wks.Name
Next wks
End Sub

Sub anzeige()
frmAuswahl.Show
End Sub
Ich öffne die Datei und mir wird als erstes die Userform mit dem Listenfeld + Inhalt angezeigt. Sobald ich jetzt auf eins der Tabellenblätter in dem Listenfeld klicke und es mit OK bestätige, dann kommt der Laufzeitfehler 400. Ich weiß nur leider noch immer nicht warum.
Vielleicht kannst Du damit etwas anfangen. Ich sehe leider den Fehler nicht.
Anzeige
AW: Tabellenblatt in Listenfeld
PeterW
Hallo Ronald,
wie heißen deinee Controls, lstSheets und cmbWeiter wie im Code? Wenn nicht ersetze das durch deine Namen. Da du nur ein Blatt auswählen willst reicht:

Private Sub cmdWeiter_Click()
Worksheets(ListBox1.Value).Select
Unload Me
End Sub

Gruß
Peter
AW: Tabellenblatt in Listenfeld
08.11.2004 15:58:16
Ronald
Hallo Peter,
ich habe nun all Deine Versionen ausprobiert und meine versucht zu verändern, doch immer mit dem gleichen Ergebnis. Laufzeitfehler 400.
Deine Version die du mir geschickt hast funktioniert fast richtig, aber wenn ich sie so verändere, wie ich sie benötige, dann kommt wieder Laufzeitfehler 400.
Also nochmal.
Ich möchte, ein Tabellenblatt auswählen (wird mit OK bestätigt, (so wie der Code im Moment in der angehängten Datei ist, wechselt der OK-Button auch brav von Tabellenblatt zu Tabellenblatt, allerdings bleibt die Userform erhalten, was falsch ist. Nehme ich Unload Me unter deinen Code, dann wird die Userform richtigerweise geschlossen, aber ich kann sie leider nicht wieder öffnen.)) und mit OK bestätigen. Als nächstes soll die Userform automatisch geschlossen werden, damit ich in dem Tabellenblatt arbeiten kann. Wenn ich fertig bin, möchte ich mir ein anderes Tabellenblatt anschauen. Hier benötige ich wieder die Userform die sich bei einem Klick auf irgendein Tabellenblatt wieder öffnen soll, damit ich meine Suche nach dem Richtigen fortsetzen kann. Verwende ich aber die Prozedur

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
frmAuswahl.Show
End Sub

dann öffnet sich zwar sofort beim Klick auf irgendein Tabellenblatt die Userform, doch sobald ich ein passendes Tabellenblatt aus dem Listenfeld angewählt habe, dann erhalte ich den Laufzeitfehler 400.
Versuche doch mal Bitte die Prozedur so wie sie jetzt aktuell in der Datei ist und versuch dann mal Bitte unter "diese Arbeitsmappe" das Hochkomma bei o.g. Prozedur zu entfernen und dir dann das Ergebnis anzuschauen. Dann siehst du, dass immer der Laufzeitfehler 400 kommt.
Ich weiss hier einfach nicht, wie ich ein Tabellenblatt auswählen kann, ohne diesen Fehler zu bekommen. Dafür bin ich einfach zu sehr Anfänger.
https://www.herber.de/bbs/user/13145.xls
Anzeige
AW: Tabellenblatt in Listenfeld
PeterW
Hallo Ronald,
so klappt es:

Private Sub cmdWeiter_Click()
'Dim iCounter As Integer
'Dim arr() As String
'Dim iItems As Integer
'For iCounter = 0 To lstSheets.ListCount - 1
'    If lstSheets.Selected(iCounter) Then
'        iItems = iItems + 1
'        ReDim Preserve arr(1 To iItems)
'        arr(iItems) = lstSheets.List(iCounter)
'    End If
'Next iCounter
'If iItems > 0 Then
'    Worksheets(arr).Select
'End If
Application.EnableEvents = False
Worksheets(lstSheets.ListIndex + 1).Select
Application.EnableEvents = True
Unload Me
End Sub

Gruß
Peter
Anzeige
AW: Tabellenblatt in Listenfeld
08.11.2004 16:33:38
Ronald
Hallo Peter,
Du bist der ALLERBESTE. Vielen Dank
Viele Grüße
Ronald

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige