Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA wenn ... dann... Verzweigung

Forumthread: VBA wenn ... dann... Verzweigung

VBA wenn ... dann... Verzweigung
03.01.2006 14:00:43
Horst H
Hallo nette Leute im Forum,
wie müsste ein script aussehen, das ich einigen jetzigen OnAction (Menü)voranstellen möchte: sinngemäss: führe xy()[die bisherigen VBAs] nur aus, wenn nur main.xls und Monat.xls offen sind. Es könnte auch in den bisherigen scripts voran eingebunden werden. Ziel: Wenn mehrere Mappen offen sind und zwischen den Menü-Unterpunkten zwecks Bearbeitung hin- und hergesprungen wird, soll sichergestellt sein, dass nur diese beiden Mappen offen sind. Die VBAs sind alle in der Main.xls. Die meisten OnAction sind Abläufe, die auf die geöffnete Monat.xls einwirken - jedoch können andere User auch andere Mappen über das Menü öffnen. Ich möchte , dass aufeinander abgestimmte Menü-Unterpunkte (mal best. Abspeichern, versch. Be- und Verarbeitungsroutinen nach einander etc.) nur ausgeführt werden, wenn nur beide Mappen offen sind. Sonst soll keine Action stattfinden.
Wer hilft mir bitte mit einem script? Danke im voraus!
Gruß Horst
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA wenn ... dann... Verzweigung
03.01.2006 14:38:15
Eugen
hi
dim bMain as boolean
bMain = false
if workbooks.count = 2 and ((workbooks(1).name="main.xls and workbooks(2).name = "monat.xls") or (workbooks(2).name="main.xls and workbooks(1).name = "monat.xls")) then
bMain = true
endif
'Build your custom style menu here!
With myCmdBar.Controls.Add _
(Type:=msoControlButton, temporary:=True)
.Caption = "Steuergerät editieren"
.OnAction = "Mask"
.BeginGroup = True
.Enabled = bMain
End With
mfg
Anzeige
AW: VBA wenn ... dann... Verzweigung
04.01.2006 10:00:39
Horst H
Hallo Eugen,
danke! War gestern nachmittags auswärts. Gebe Rückmeldung, wenn ich mich nachher (zeitlich) damit befasst habe. Bei Fragen würde ich gerne noch einmal darauf zuückkommen.
Gruß Horst
AW: VBA wenn ... dann... Verzweigung
04.01.2006 10:41:07
Horst H
Hallo Eugen,
ich muss doch rückfragen: An welche Position genau kommt "With myCmdBar.Controls..."? Habe es in den Menü-Unterpunkt mit eingebunden - Fehlermeldung 424 Objekt erforderlich.
Kompilierungsfehler in

Sub Mask() - die If-Anweisung 8Die Datei hat einen Blank im Dateinamen ?deshalb?
Bist du mir bitte behilflich und zeigst die genau Position der Einbindung - hab ich sicher nicht richtig. Auszüge:
zu 1)
Const MenüName = "QSB_Menü"
'M0.01

Sub Menü_QSB()
Call Menü_Zurücksetzen
Sheets("Startbild").Select
Application.Run "AlleOptionenWeg"
Application.Run "TitelInFenster"
Application.CommandBars("Worksheet Menu Bar").Enabled = False
Windows("QSB.xls").Activate
ActiveWindow.Zoom = 100
Sheets("Startbild").Select
Application.Run "Start_Reinigen"
ActiveSheet.Protect "2005"
Application.Run "Kontext"
Application.Run "KontextEintragHinzufügen1"
Application.Run "KontextEintragHinzufügen2"
Application.Run "KontextEintragHinzufügen3"
Application.Run "KontextEintragHinzufügen4"
Application.Run "KontextEintragHinzufügen5"
Application.Run "KontextEintragHinzufügen6"
Set MB = CommandBars.Add(name:=MenüName, MenuBar:=True)
Set M1 = MB.Controls.Add(Type:=msoControlPopup)
Set M2 = MB.Controls.Add(Type:=msoControlPopup)
Set M3 = MB.Controls.Add(Type:=msoControlPopup)
Set M4 = MB.Controls.Add(Type:=msoControlPopup)
Set M5 = MB.Controls.Add(Type:=msoControlPopup)
Set M6 = MB.Controls.Add(Type:=msoControlPopup)
Set M7 = MB.Controls.Add(Type:=msoControlPopup)
M1.Caption = "&Dateien öffnen/ansehen/beenden"
M2.Caption = "&Reinigungsdaten eingeben/bearbeiten"
M3.Caption = "&Kalender/Grafiken"
M4.Caption = "&Drucken/Email/Sicherung"
M5.Caption = "Daten &einlesen"
M6.Caption = "&Objekte bearbeiten"
M7.Caption = " ? "
'M1 Dateien öffnen/ansehen/beenden
'Set cmdButton = M1.Controls.Add
Set cmdButton = M1.Controls.Add(Type:=msoControlButton, ID:=1)
With cmdButton
.Caption = "Ansehen:     aktuelle Monatsliste"
'      .OnAction = "Data_Open_Quell_Monatslisten1"
.Style = msoButtonIconAndCaption
.FaceId = 142
End With
Set cmdButton = M1.Controls.Add(Type:=msoControlButton, ID:=1)
With cmdButton
.Caption = "Ansehen:     aktuelle Jahreszusammenfassung"
'      .OnAction = "Data_Open_Quell_Jahreslisten"
.Style = msoButtonIconAndCaption
.FaceId = 142
End With
Set cmdButton = M1.Controls.Add
With cmdButton
.Caption = "-------------------------------------------------------------------"
End With
Set cmdButton = M1.Controls.Add(Type:=msoControlButton, ID:=1)
With cmdButton
.Caption = "Öffnen:       öffnen anderer Excel-Dateien"
.OnAction = "Data_Open_Fixed_Path"
.Style = msoButtonIconAndCaption
.FaceId = 23
End With
Set cmdButton = M1.Controls.Add(Type:=msoControlButton, ID:=1)
With cmdButton
.Caption = "Frage:         sind weitere Dateien geöffnet"
.OnAction = "Geöffnete_Mappen"
.Style = msoButtonIconAndCaption
.FaceId = 49
End With
Set cmdButton = M1.Controls.Add(Type:=msoControlButton, ID:=1)
With cmdButton
.Caption = "Schließen:   alle Dateien schließen außer QSB-Programm"
.OnAction = "Alle_Schließen_Außer_Dieser_oSp"
.Style = msoButtonIconAndCaption
.FaceId = 840
End With
Set cmdButton = M1.Controls.Add
With cmdButton
.Caption = "-------------------------------------------------------------------"
End With
Set cmdButton = M1.Controls.Add(Type:=msoControlButton, ID:=1)
With cmdButton
.Caption = "Beenden:    das QSB-Programm beenden und verlassen"
.OnAction = "Beenden"
.Style = msoButtonIconAndCaption
.FaceId = 1640
End With
'M2 Reinigungsdaten eingeben/bearbeiten
Set cmdButton = M2.Controls.Add(Type:=msoControlButton, ID:=1)
With cmdButton
.Caption = "Schritt 1:  Eingeben:          Termine + Säcke in die Monatsliste eintragen"
.OnAction = "Station_Monatsliste_ÖffnenBearbeiten" 'Station
'      .OnAction = "Monatsblätter_ÖffnenBearbeiten" 'Zentrale
.Style = msoButtonIconAndCaption
.FaceId = 592
End With
With myCmdBar.Controls.Add(Type:=msoControlButton, temporary:=True)
.Caption = "Steuergerät editieren"
.OnAction = "Mask"
.BeginGroup = True
.Enabled = bMain
End With
Set cmdButton = M2.Controls.Add(Type:=msoControlButton, ID:=1)
With cmdButton
.Caption = "Schritt 2:  Aktualisieren:     Eingaben in der Monatsliste aktualisieren"
.OnAction = "Station_Monatsliste_Aktualisieren" 'Station
'      .OnAction = "Monatsformeln" 'Zentrale
.Style = msoButtonIconAndCaption
.FaceId = 560 '459
End With
usw.
zu 2)
in einem Modul:

Sub Mask()
Dim bMain As Boolean
bMain = False
if workbooks.count = 2 and ((workbooks(1).name="QSB.xls and workbooks(2).name = "QSB Monatslisten.xls") or (workbooks(2).name="QSB.xls and workbooks(1).name = "QSB Monatslisten.xls")) then
bMain = True
End If
End Sub

Kannst Du einem "Lehrling" zeigen, wo genau eingebunden wird? Danke in jedem Falle!
Gruß Horst
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige