Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1576to1580
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

UserForm bedienen durch öffnen eines Tabellenblatt

UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 13:15:25
reiner
bei Anwahl eines beliebigen Tabellenblatts wird die dem Tabellenblatt zugeordnete Befehlsschaltfläche auf der UF "gelb" eingefärbt.
Es können auch andere Tabellenblätter angewählt werden, die zugehörige Befehlsschaltfläche wird immer passend eingefärbt.
Private Sub Worksheet_Activate()
UserForm1.Show
dem Tabellenblatt zugeordnete Befehlsschaltfläche "gelb" einfärben, und alle anderen  _
Befehlsschaltflächen "grau" einfärben
End Sub
Jedoch wird nach Betätigung eines der Bedienelemente auf der UF und Anwahl eines anderen Tabellenblattreiters zwar das entsprechende Tabellenblatt geöffnet, die zugeordnete Befehlsschaltfläche wird dann aber nicht mehr entsprechend eingefärbt.
Ich weiß nicht woran dieses Verhalten liegt, vielleicht hat jemand im Forum eine Idee wie dieses Verhalten geändert werden kann?
mfG
reiner

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 13:57:22
Marcel
Hallo Reiner,
folgenden Code in die UserForm1 einfügen. Die Buttons sind beim Erstellen standardmäßig grau, das kannst du so lassen. Der jeweils zum Tabellenblatt zugehörige Button wird dann entsprechend umgefärbt.

Private Sub UserForm_Initialize()
UserForm1.Controls("CommandButton" & ActiveSheet.Index).BackColor = RGB(243, 218, 11)
End Sub
In die Tabellenblätter dann einfach folgendes eingeben:

Private Sub worksheet_activate()
UserForm1.Show
End Sub
LG,
Marcel
AW: UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 14:10:41
reiner
hallo Marcel, das hilft mir nicht weiter, Die UF ist dauerhaft geöffnet, durch die Anwahl der Tabellenblattreiter soll lediglich die Farbe der einelnen cmd "grau" bzw. "gelb" eingefärbt werden.
Selbst wenn ich die UF ausblende wird durch Anwahl eines Tabellenblattreiters UserForm_Initialize nicht angesprochen
Anzeige
AW: UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 14:21:28
Matthias
Moin! Ich würde das so lösen. Ist jetzt nur ein Beispiel und muss / kann noch angepasst bzw. erweitert werden. VG
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Select Case Sh.Name
Case "Tabelle1"
UserForm1.CommandButton1.BackColor = vbRed
Case "Tabelle2"
UserForm1.CommandButton1.BackColor = vbYellow
Case Else
End Select
End Sub

AW: UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 14:30:54
reiner
hallo Matthias,
leider hilft mir das auch nicht.
Was ich nicht verstehe ist, dass der Programmcode auf den jeweiligen Tabellenblättern am gesetztetn Haltepunkt nicht angesprungen wird.
Ich denke da liegt das Problem.
Die Farbumschaltung funktioniert ja auch nach Aufruf der Datei einwandfrei, wenn ich jedoch eine Schaltfläche auf der UF betätige klaptt die Farbumschaltung mittels Tabellenblattreitern nicht mehr, das ist das Problem.
Anzeige
AW: UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 14:52:47
Matthias
Kannst du ggf. mal die Tabelle hochladen? ICh wüßte jetzt nicht, woran das Problem liegt.
AW: UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 15:02:24
reiner
die Datei ist wohl zu groß zum Hochladen, 3,5 MB
AW: UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 15:15:58
Matthias
Es würde ja schon deine Tabelle ohne Daten reichen. Es sollten nur die Blätter (leer) und die UF da sein. DAmit könnte man dann erkennen, wie der Code genau aussieht und was die UF macht / blockiert. Ich habe mir zwar eine Datei mit UF gebastelt aber da klappt es. VG
AW: UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 15:34:25
reiner
hallo matthias,
https://www.herber.de/bbs/user/115671.xlsm
hier habe ich die Datei hochgeladen, du wirst wohl Fehlermeldungen erhalten, ignoriere sie, ich habe die Datei abgespeckt, es geht ja nur um die beschriebene Problematik
beim ersten Öffnen und "Sichtbarmachung" der Blattregisterkarten kannst du sehen wie sich die Farben der Befehlsschaltflächen beim Blattwechsel ändern; nach Betätigung einer Schaltfläche auf dcer UF klappt das nicht mehtr, das ist das Problem
Anzeige
AW: UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 14:26:06
Marcel
Das hier in ein allg. Modul:

Sub cmd_colorchange()
Dim i As Integer
For i = 1 To ActiveWorkbook.Worksheets.Count
UserForm1.Controls("CommandButton" & i).BackColor = RGB(239, 239, 239)
Next i
UserForm1.Controls("CommandButton" & ActiveSheet.Index).BackColor = RGB(243, 218, 11)
End Sub
Die Sub beim Worksheet_activate Ereignis ausführen lassen.
AW: UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 14:36:29
reiner
hallo Marcel,
meine Farbumschaltung funktioniert nach Aufruf der Datei einwandfrei, wenn ich jedoch eine Schaltfläche auf der UF betätige klaptt die Farbumschaltung mittels Tabellenblattreitern nicht mehr, das ist das Problem.
Wenn der Programmcode nicht angesprochen wird dann hilft auch dein Vorschlag nicht weiter, weil er nicht abgearbeitet werden kann!! das ist leider so
Anzeige
AW: UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 14:49:28
Marcel
Hallo Reiner,
Was genau bewirken/machen deine Schaltflächen denn?
Wenn man manuell auf ein Tabellenblatt wechselt, während die UserForm noch nicht aufgerufen ist, was soll dann alles passieren?
LG,
Marcel
AW: UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 14:57:21
reiner
hallo marcel,
lies dir bitte noch mal meinen ersten Beitrag mit der entsprechenden Frage durch, da habe ich beschrieben was durch den Blattwechsel ausgelöst werden soll.
Ein anderer Nutzer hatte ein ähnliches Problem, ich habe seinen Text mal eingefügt da auch hier die gleiche Problematk wie bei mir besteht:
Im Eigentlichen geht es nur darum, dass das Makro nur beim ersten Wechsel in eine andere Tabelle aufgerufen wird. anschliessend scheint es, als ob "Private Sub Worksheet_Activate() " gar nicht mehr berücksichtigt wird.
Leider wurde zu dieser Frage keine Antwort erteilt
Anzeige
AW: UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 14:54:30
EtoPHG
Hallo Reiner,
Zitat: Jedoch wird nach Betätigung eines der Bedienelemente auf der UF und Anwahl eines anderen Tabellenblattreiters zwar das entsprechende Tabellenblatt geöffnet, die zugeordnete Befehlsschaltfläche wird dann aber nicht mehr entsprechend eingefärbt.
Natürlich nicht, wenn dein Code nur im _Initalize der Userform abläuft.
Du musst die in dem Code-Teil vornehme, in dem du auch das Blatt wechselst!
Gruess Hansueli
AW: UserForm bedienen durch öffnen eines Tabellenblatt
23.08.2017 15:01:20
reiner
hallo Hansueli,
kannst du mir deinen Vorschlag bitte etwas ausführlicher beschreiben?
Grundsätzlich funktioniert mein Code nach Aufruf der Datei, solange bis ich eine Schaltfläche auf der UF betätige; danach reagiert der den einzelnen Tabellenblättern zugeordnete Code nicht mehr, das ist das Problem.
Anzeige
Grundsätzlich sehe ich deinen Code nicht! (owT)
23.08.2017 15:30:17
EtoPHG

AW: Grundsätzlich sehe ich deinen Code nicht! (owT)
23.08.2017 15:36:08
reiner
hallo hansueli,
ich habe gerade als Antwort an Matthias die Datei hochgeladen, vieleicht hilft dir das mein Problem nachzuvollziehen
AW: Grundsätzlich sehe ich deinen Code nicht! (owT)
23.08.2017 16:00:52
EtoPHG
Hallo Reiner,
1. Korrigier zuerst die Kompilierungsfehler!
2. Man sollte schon genau wissen, was der Befehl
Application.EnableEvents = False
verursacht und wenn nicht, könnte man in der VBA-Hilfe nachschauen!
Das ist der Befehl, der verhindert, dass die _Activate auf die Blätter ausgelöst wird!
Gruess Hansueli
AW: Grundsätzlich sehe ich deinen Code nicht! (owT)
23.08.2017 16:21:14
reiner
ja Hansueli, das war's
danke
reiner

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige