Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
836to840
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
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Automatisiertes Worksheet öffnen

Automatisiertes Worksheet öffnen
15.01.2007 15:52:36
Daniel
Hallo Excelcracks,
nach eingehender Internetsuche bin ich bei folgendem Problem noch nicht zu einer befriedigenden Lösung gekommen.
Es existieren mehrere Exceldateien (35 Stk) in 35 Ordnern mit jeweils 12 Arbeitsblättern (Januar, Februar, März......)
Die Exceldateien werden zur Zeit von den jeweiligen Personen mit Daten gefüttert. (Umsatz....)
Da es in letzter Zeit zu vermehrten Diskrepanzen bei der Eingabe kam, möchte ich eine einzige Excel-Datei als Eingabemaske erstellen, sodass die jeweilige Person über eine ComboBox1 (in der alle Namen verzeichnet sind) seinen Namen auswählt.
In ComboBox 2 den betreffenden Monat und in ComboBox3 (im nachfolgenden Beispiel noch nicht eingepflegt) den relevanten Tag.
Bei klick auf OK (Command Button) hab ich folgende Routine stehen:
Sub CommandButton1_Click()
Call ComboBox1_Change
'MsgBox Prompt:="Ihr Name lautet " & mName
Call ComboBox2_Change
'MsgBox Prompt:="Abrechnungsmonat ist " & mMonat
Call Blattausw
Call Tabauswahl
End Sub
Die Variablen sind im Modul1 definiert:
Option Explicit
Public mName As Object
Public mMonat As Object
Wobei ich auch die Deklarierung als Value durchprobiert habe. (Dürfte ja egal sein, Hauptsache es sind globale Variablen die nicht beim Wechsel des Workbooks, des Worksheets verloren gehen)
Die aufgerufenen Prozeduren ComboBox1 und ComboBox2 beinhalten Folgendes:
Sub ComboBox1_Change()
Set mName = ComboBox1
End Sub
Sub ComboBox2_Change()
Set mMonat = ComboBox2
End Sub
Nach meinem Verständnis wird der aktuelle Inhalt der Auswahlfelder in den Wert mName, mMonat eingespeichert. (Deshalb auch die msgBox zur Kontrolle)
Der nächste call im CommandButton ruft die Prozedur Blattausw auf(für Euch vielleicht zu umständlich, aber anders wußte ich mir nicht zu helfen):

Private Sub Tabauswahl()
' Bedingte If...Then...Else-Anweisung
Application.ScreenUpdating = False
If mName = "Name1" Then Workbooks.Open Filename:="C:\Dokumente und
Einstellungen\...\Name1\Name1.xls"
Call Blattausw
ElseIf mName = "Name2" Then Workbooks.Open Filename:="C:\Dokumente und
Einstellungen\...\Name2\Name2.xls"
Call Blattausw
ElseIf mName = "Name3" Then Workbooks.Open Filename:="C:\Dokumente und
Einstellungen\...\Name2\Name3.xls"
Call Blattausw
End If
End Sub

(Wie gesagt 35x für jeden Namen)
Bis dahin funktioniert der Code auch super. Nun mein Problem!!!
Das Worksheet bleibt immer auf Januar, die anderen Monate werden nicht berücksichtigt, obwohl die msgBox den gewählten Monat richtig ausgibt.
Hinter dem dargestellten call Blattausw. verbirgt sich:
Sub Blattausw()
MsgBox Prompt:="Abrechnungsmonat ist " & mMonat
If mMonat = Januar Then
Worksheets("Januar").Activate
ElseIf mMonat = Februar Then
Worksheets("Februar").Activate
ElseIf mMonat = März Then
Worksheets("März").Activate
ElseIf mMonat = April Then
Worksheets("April").Activate
ElseIf mMonat = Mai Then
Worksheets("Mai").Activate
ElseIf mMonat = Juni Then
Worksheets("Juni").Activate
ElseIf mMonat = Juli Then
Worksheets("Juli").Activate
ElseIf mMonat = August Then
Worksheets("August").Activate
ElseIf mMonat = September Then
Worksheets("September").Activate
ElseIf mMonat = Oktober Then
Worksheets("Oktober").Activate
ElseIf mMonat = November Then
Worksheets("November").Activate
ElseIf mMonat = Dezember Then
Worksheets("Dezember").Activate
End If
End Sub
Wie gesagt, die jeweilige Excel-Datei wird geöffnet, nur das Worksheet wird nicht aktiviert.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisiertes Worksheet öffnen
15.01.2007 15:58:39
Jürgen
Hallo Daniel,
versuch es einfach mal mit
Worksheets (mMonat).select
Gruß
Jürgen
AW: Automatisiertes Worksheet öffnen
15.01.2007 16:09:14
Daniel
Hallo Jürgen,
danke für die schnelle Antwort, aber leider kommt bei Deiner Lösung folgende Fehlermeldung: Laufzeitfehler 9. Index außerhalb des Gültigkeitsbereiches.
Ist mMonat vielleicht doch nicht global?
AW: Automatisiertes Worksheet öffnen
15.01.2007 16:16:54
Daniel
Super!!!
Hat alles geklappt. Die Fehlermeldung kam bei meiner Sub-Routine Blattausw.
Bei der Tabauswahl funktioniert es tadellos.
Danke nochmal.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige