VBA-Abfrage bei Datei-öffnen?
09.10.2015 09:10:38
Stephan
kurz zu meiner Person:
Ich bin Stephan, neu hier und habe nur durch den Macrorecorder und durch gewisse Stöbereien auf Onkel-Google etwas Kenntnis vom VBA-Programmieren.
Getreu dem Motto "Learning by doing" krieche ich durch die Foren, versuche Codes zu verstehen und umzusetzen, um das Verständnis zu vertiefen!
Nun zu meinem Problem:
Ich berechne in der Zelle "G6" bis "Gx"(unendlich - aber meist nicht mehr als 500 Zeilen, da regelmäßig welche manuell hinzu oder weg kommen) eine Varianz aus 2 Datumswerten.
Mit "Conditional Formatting" habe ich bereits die Zellenformatierung so gelegt, dass beim Übersteigen des schwellenwerts "30" die Schrift Rot gefärbt wird.
Nun möchte ich das ganze erweitern, indem ich eine automatische MsgBox aufpoppen lasse, sobald in entsprechneder Zelle der Wert "30" überschritten wird.
Beim Stöbern hier im Forum habe ich bereits einen ersten Lösungsansatz gefunden, der mir aber nur bedingt weiter hilft.
Dieser sieht wie folgt aus:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Range("g6") > 30 Then
MsgBox ("Wert Zelle G6 überschritten!")
Exit Sub
End If
End Sub
Das Problem wäre hier, dass ich mich nur auf eine einzige Zelle beziehe. Diesen Code müsste ich somit bis Zeile x manuell vervielfältigen & mir würden entsprechend viele MsgBoxen wie Anzahl-Fehler aufpoppen oder?
Nun, gibt es einen Code, in dem ich einen Bereich markieren kann, dieser Code jedoch jede Zelle einzeln wahrnimmt und nicht die Summe dieser markierten Zellen prüft? -> Sprich Zelle A1-10 haben je Wert "1", der Schwellenwert wäre 5, ich möchte also keine Warnmeldung, wenn die Summe der Zellen A1-10 das Ergebnis "10" ergeben.
Meine Frage weil...
====>
Meine Vorstellung:
Beim überschreiten des Schwellenwertes "30" soll(en) alle Fehler-Zelle(n) in der MsgBox angezeigt werden, welche diesen Wert überschritten haben.
Das ganze soll bei einer einmaligen überprüfung beim "Dokument-öffnen" passieren.
Auch hierzu hab ich hier im Forum bereits einen Code gefunden:
Sub Workbook_Open()
blablabla
End Sub
(Allerdings weiß ich an dieser Stelle noch nicht einmal, wie ich diesen Code mit dem ersteren Code zusammenfüge)
Ich habe nun also bereits den Code zum Warnmeldung bringen, der allerdings nicht beim herumrechnen während einer geöffneten Datei aktiviert werden soll, sondern bereits beim Datei-Öffnen.
Euch möchte ich um Hilfe bitten beim Zusammenfügen der beiden Codes "Run when open Document" & "Run MsgBox when Failure".
Sowie ein "nice to have", dass EINE MsgBox alle Fehlerzellen bereits ausspuckt.
Ich weiß, der Code wird etwas aufwändig werden, daher ist letzteres nice to have kein muss. Würde mir aber dennoch helfen, falls ich im worst case bei 100 fehlerwerten 100 MsgBoxen manuell schließen muss....
Danke schon mal für eure Hilfe!
Gruß
Stephan