Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1092to1096
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

Message Box starten, wenn...

Message Box starten, wenn...
Sirenia
Hallo liebe Experten,
ich müsste mal wieder auf euch zurückgreifen! :)
Ich bräuchte ein Makro, das startet, wenn in Spalte A oder F bedingt durch Wenn-Funktion der Hinweis "Änderung!" erscheint und eine Message-Box ausgibt, mit den Hinweis auf die Änderung.
Habe auch schon etwas entwickelt, startet allerdings nciht automatisch und ist derzeit nur auf Zelle A1 anwendbar, weil ich keine Ahnung habe, wie ich das umsetzen kann:
Sub Box()
Dim Mldg, Stil, Titel, Hilfe, Ktxt, Antwort, Text1
If Cells(1, 1).Value = "Änderung!" Then
Mldg = "Es gibt Abweichungen zwischen der aktuell geladenen und der eingelesenen Liste.  _
Bitte die Listen anpassen!"           ' Meldung definieren.
Stil = vbOKOnly + vbExclamation  ' Schaltflächen definieren.
Titel = "Abweichungen vorhanden!"          ' Titel definieren.
Antwort = MsgBox(Mldg, Stil, Titel, Hilfe, Ktxt)    ' Meldung anzeigen.
End If
If Antwort = vbYes Then             ' Benutzer hat "Ja" gewählt.
Text1 = "Ja"                    ' Operation ausführen.
Else                          ' Benutzer hat "Nein" gewählt.
Text1 = "Nein"              ' Operation ausführen.
End If
End Sub
Könnte mir jemand helfen?
Vielen Dank schonmal im Voraus!
Sirenia

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Message Box starten, wenn...
05.08.2009 12:00:44
Jogy
Hi.
So wird es nicht funktionieren, da Du nicht weißt, ob das "Änderung!" nicht schon länger in der Zelle steht. Außer Du stellst sicher, dass es in jedem Fall wieder verschwindet, egal was gewählt würde.
Eleganter wäre jedoch die direkte Überwachung der Eingabezellen mit dem Worksheet_Change Ereignis oder die Implementierung des Ganzen als User Defined Function.
Dazu müßte ich aber wissen, welche Zellen überwacht werden sollen und nach welchen Kriterien.
Gruss, Jogy
AW: Message Box starten, wenn...
05.08.2009 12:08:13
Bowl
Soll das ganze auf die gesamte Spalte A oder nur auf A1 anwendbar sein, bzw das gleiche gilt für spalte F?
Wenn das ganze für die gesamte Spalte jeweils gilt:
For i = 1 to 100
If cells(i, 1).value = "Änderung!" OR cells (i, 5).value = "Änderung!" Then
next i
wenn doch nur A1 und F1 entsprechend:
If cells(1,1).value = "Änderung!" OR cells(1,5).value = "Änderung!" Then
Und was meinst du mit Automatisch? Ständige Aktualisierung? Aktualisierung nach Veränderung?
Anzeige
AW: Message Box starten, wenn...
05.08.2009 12:23:32
Sirenia
Ich danke euch, für die Antworten.
Nach Möglichkeit sollte das Makro auf die gesamte Spalte A und auf die Gesamte Spalte F anwendbar sein.
Mit "automatisch" meine ich, dass das Makro erkennt "Ups, da steht "Änderung!" in Spalte A oder in Spalte F, da geb ich mal die MessageBox aus". So in der Art :)
Ständige Aktualisierung halte ich nicht für notwendig.
Ich hab es mir so vorgestellt:
Die genannten Listen liegen im Sheet "Vergleich" - ganz am Ende meiner Dokuments, weil es auch selten benötigt wird.
Da ich davon ausgehe, dass niemand bis ans Ende klickt und sucht, ob da irgendwelche Veränderungen sind, soll das Makro einen Hinweis geben.,
Wie können die Daten verändert werden? Ganz einfach: Sie werden eingelesen durch Verknüpfungen. Der Einfachheit halber werden diese Daten in eine andere Liste hart reinkopiert. Um jedoch einfach feststellen zu können, ob sich da was geändert hat, wird das mit einer Wenn-Funktion überprüft.
Nachdem dann einmal die Box aufgepoppt ist, und den User entsprechenden Hinweis gegeben hat, sollte das Thema eigentlich erledigt sein. Der User soll dann die Liste aktualisieren und dann dürfte auch nirgendwo mehr "Änderung!" stehen.
Ich hoffe, ich konnte euch so weiterhelfen, mir zu helfen :)
Viele Grüße,
Sirenia
Anzeige
AW: Message Box starten, wenn...
05.08.2009 16:29:27
fcs
Hallo Sirena,
mit folgendem Makro, das nach jeder Neuberechnung des Blattes ausgeführt wird. Kannst du entsprechende Wert-Änderungen überwachen.
Ich weiss aber nicht, ob diese Meldung in deinem Arbeitsblatt zur Nervensäge wird. Sie sollte nur einmal angezeigt werden, wenn nach Neuberechnung der Inhalt "Änderung" gefunden wird. Danach erst wieder, wenn nach dem "Verschwinden" aller "Änderungen" erneut Änderungen erscheinen.
Gruß
Franz
'Diese Prozedur im VBA-Editor unter zu prüfenden Tabelle einfügen
Private bolMeldung As Boolean
Private Sub Worksheet_Calculate()
'Inhalt in den Spalten 1 (A) und 6 (F) auf den Inhalt "Änderung" prüfen
With Application.WorksheetFunction
If (.CountIf(Me.Columns(1), "Änderung") > 0 _
Or .CountIf(Me.Columns(6), "Änderung") > 0) _
And bolMeldung = False Then
MsgBox "Achtung Daten wurden geändert. Bitte Daten nach XYZ kopieren"
bolMeldung = True
ElseIf .CountIf(Me.Columns(1), "Änderung") = 0 _
And .CountIf(Me.Columns(6), "Änderung") = 0 Then
'nachdem keine Inhalte "Änderung" mehr vorhanden wird Meldung wieder aktiviert.
bolMeldung = False
End If
End With
End Sub

Anzeige
AW: Message Box starten, wenn...
05.08.2009 16:30:59
Bowl
so ganz sicher bin ich mir dann doch noch nicht was du vorhast.
Du hast ein Blatt "Vergleich", welche Blätter genau werden da verglichen?
Falls es zu einer Änderung gekommen ist kommt, soll auf deinem andern Arbeitsblatt in entsprechenden Zeilen in Spalte A/F Änderung stehen; wenn da Änderung steht, soll eine MSG-Box geöffnet werden die den Benutzer den Hinweis gibt andere Listen (auf anderen Blättern?) anzupassen?
Welche Werte sollen da wie und wo geändert werden durch den Benutzer?
Bin mir noch nicht so ganz sicher, aber für mich klingt des grad nach Umweg um 3 Ecke xD
Grüße
Anzeige
noch offen owT
05.08.2009 16:31:31
Bowl
.
AW: Message Box starten, wenn...
05.08.2009 18:40:19
Daniel
Hi
dazu könntest du eines dieser beiden Makros verwenden:
Sub Makro2()
Dim Zelle As Range
Set Zelle = Range("A:A,F:F").Find(What:="Änderung", After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not Zelle Is Nothing Then MsgBox "Änderung"
End Sub
Sub makro3()
If WorksheetFunction.CountIf(Range("A:A"), "Änderung") _
+ WorksheetFunction.CountIf(Range("F:F"), "Änderung") > 0 Then MsgBox "Änderung"
End Sub
allerdings würde ich das ohne Makros machen, sondern einfach die Zählenwenn-Funktion irgendwo in den sichtbaren Bereich in eine Zelle schreiben und per Bedingter Formatierung eindeutig färben.
die Formel wäre dann:
  • =Wenn(ZählenWenn(A:A;"Änderung")+ZählenWenn(F:F;"Änderung")>0;"Achtung Änderung";"")

  • Gruß, Daniel
    Anzeige
    Tut mir leid...
    06.08.2009 08:13:29
    Tanja
    Guten Morgen zusammen,
    ich finds super klasse, dass ihr mir geholfen habt. Leider funktioniert bis auf die Formel nichts.
    Mir ist sowieso aufgefallen, dass es ziemlich leichtsinnig ist, zwei Spalten mit Wenn-Funktion zu vergleichen.
    https://www.herber.de/bbs/user/63649.xls
    Um aufzuzeigen, was ich meine, habe ich mal eine Beispieldatei hochgeladen (Hätte ich vielleicht viel früher tun sollen). Es tut mir leid, wenn ich euch Umstände bereitet habe :(
    Hat jemand vielleicht eine bessere Idee, wie ich die Listen vergleichen kann und anschließend eine Meldung ausgeben kann, dass sich etwas geändert hat? Bin leider noch ziemlich schwach, was Excel angeht :(
    Wünsche euch noch einen schönen Tag!
    Sirenia
    Anzeige
    AW: Tut mir leid...
    06.08.2009 11:32:39
    Daniel
    HI
    das was du du da machst, ist eigentlich schon das vernüftigste.
    wenn die Datei grösser ist, dann kann man ja mit einem einfachen Autofilter auf Spalte F und A sich die Zeilen mit einer Änderung sofort anzeigen lassen.
    Grossartig mit nem Makro würde ich da nicht rummachen.
    Gruß, Daniel
    AW: Tut mir leid...
    06.08.2009 11:43:08
    Sirenia
    Hallo Daniel,
    es freut mich, wenn du das so siehst. Das bestärkt mich irgendwo darin, dass ich doch nicht so dumm bin, wie ich manchmal vermute ;)
    Ich denke, dass die Fehler sich nicht unbedingt sofort in der Entwicklung zeigen - sondern später.
    Könnte also passieren, dass ich früher oder später mich nochmal zu diesem Thema melden muss ;)
    Vielen Dank nochmal, an alle fleißigen Helferlein!
    Gruß,
    Sirenia
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige