![]() |
|
|
Banner und Co. |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
![]() Neuer Benutzer |
![]() Hallo liebe Experten,
ich hoffe jemand von euch kann einer VBA Anfängerin bei folgendem Problem helfen: ich habe eine MsgBox in Tabelle 12 geschrieben, die folgendermaßen aussieht: Code: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static m1 As Boolean If Not m1 And Cells(2, 5).Value > 100 And Cells(2, 5).Value < 200 Then m1 = True MsgBox "blablabla!", vbExclamation, "bla!" End If Wie funktioniert das, dass eine Messagebox aufpoppt auch wenn ich mich grade auf z.B. Tabellenblatt 9 befinde? Geändert von Klaudia95 (08.09.2017 um 12:29 Uhr). |
![]() |
![]() ![]() |
![]() |
#2 |
![]() MOF Guru |
![]() __________________ Signatur in jedem Beitragm Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst. Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen. Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus. Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit. |
![]() |
![]() ![]() |
![]() |
#3 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Danke für deine Antwort, aber es tut sich leider nichts.
Muss ich noch etwas ergänzen in meinem Code? |
![]() |
![]() ![]() |
![]() |
#4 |
![]() MOF Guru |
![]() Nein.
nur wenige schauen auf Deinen Rechner und sehen die Datei. Ich möchte gerne den Fehler im Original sehen. Ich baue keine Datei nach. Die Zeit hat schon jemand investiert. Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden. Der Dateiname sollte nicht Test…, Beispiel…, Mappe--- oder Muster… sein. Es sollte ein aussagekräftiger Name sein. Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren. Die entsprechende Aktion wurde ja benutzt. Gruß Hajo __________________ Signatur in jedem Beitragm Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst. Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen. Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus. Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit. |
![]() |
![]() ![]() |
![]() |
#5 |
![]() MOF Meister |
![]() Moin!
Mal im Ernst! Du willst bei JEDER Änderung einer Zellauswahl eine MsgBox, wenn eine Bedingung erfüllt ist? Ich würde Dir den Rechner vor die Füße knallen! Wofür gibt es eigentlich eine benutzerdefinierte Datenüberprüfung? Gruß Ralf __________________ Meine Logik war nicht fehlerhaft, nur meine Interpretation!Tuvok |
![]() |
![]() ![]() |
![]() |
#6 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() @RPP63
die MsgBox kommt nur einmal nachdem die Mappe geöffnet wurde und ist ein Hinweis darauf, ein Makro zu betätigen. Kommt somit nach dem Betätigen des Makros nicht mehr. @Hajo Im Fenster "DieseArbeitsmappe" befindet sich nur der folgende Code. Dabei wurde nur der Inhalt der Message Box zensiert. Code: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static m1 As Boolean, m2 As Boolean, m3 As Boolean, m4 As Boolean If Not m1 And Cells(2, 5).Value > 100 And Cells(2, 5).Value < 200 Then m1 = True MsgBox "Blabla1", vbExclamation, "Bla1" End If If Not m2 And Cells(2, 5).Value > 200 Then m2 = True MsgBox "Blabla2", vbCritical, "Bla2" End If If Not m3 And Cells(2, 6).Value > 100 And Cells(2, 6).Value < 200 Then m3 = True MsgBox "Blabla3", vbExclamation, "Bla3" End If If Not m4 And Cells(2, 6).Value > 200 Then m4 = True MsgBox "Blabla4", vbCritical, "Bla4" End If End Sub - Modulfenster mit einem Makro ist vorhanden, steht aber in keiner Verbindung mit meinem MessageBox Vorhaben. |
![]() |
![]() ![]() |
![]() |
#7 |
![]() MOF Guru |
![]() meinen Tipp wolltest Du also nicht umsetzen. Da kann ich Dir leider nicht helfen. Du benutzt eine Aktion die für die einzelne Tabelle vorgesehen ist.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Gruß Hajo __________________ Signatur in jedem Beitragm Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst. Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen. Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus. Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit. |
![]() |
![]() ![]() |
![]() |
#8 |
![]() MOF Meister |
![]() @Hajo:
Du solltest nach Möglichkeit mehr lesen als die Threadüberschrift. @Klaudia: Vielleicht solltest Du Dich zunächst mal in die absoluten Grundlagen von VBA einarbeiten! Jedenfalls zeigt Dein #6, dass es Dir an so ziemlich allem fehlt. Wenn ein Makro nur beim Öffnen der Datei laufen soll, gehört es ins Workbook_Open() in DieseArbeitsmappe. Zusätzlich ist in diesem Fall eine Schleife über alle Worksheets notwendig. Gruß Ralf __________________ Meine Logik war nicht fehlerhaft, nur meine Interpretation!Tuvok |
![]() |
![]() ![]() |