Komplikationen zwischen Makro und Wenn-Funktion

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Komplikationen zwischen Makro und Wenn-Funktion
von: stephan w
Geschrieben am: 26.08.2015 11:09:19

Hallo liebe Community,
ich habe folgendes Makro:


Private Sub Worksheet_Calculate()
If ActiveSheet.Range("B39").Value = "Windows Server: 2008 R2" Then
MsgBox "Achtung, diese Version wird nicht länger unterstützt!" & vbNewLine & _
"This version is not longer supported!"
End If
End Sub

Dieses funktioniert so weit auch wunderbar. Jetzt ist allerdings das Problem, dass jede wenn-Funktion die Auswahl wieder auf B39 lenkt und man erneut benachrichtigt wird.
zb:

=WENN(B29="Außenstandort";"Wo?";WENN(B29="outside location";"Where?";""))

Beste Grüße und vielen Dank

Bild

Betrifft: AW: Komplikationen zwischen Makro und Wenn-Funktion
von: Daniel
Geschrieben am: 26.08.2015 12:07:40
Hi
Worksheet_Calculate wird bei jeder neuberechnung auf dem Tabellenblatt ausgelöst.
Wahrscheinlich solltest du dir lieber ein anderes Event für diese Prüfung aussuchen.
wie wird denn der Wert in B39 erstellt?
per Formel oder von Hand?
Gruß Daniel

Bild

Betrifft: AW: Komplikationen zwischen Makro und Wenn-Funktion
von: stephan w
Geschrieben am: 26.08.2015 13:01:53
Per Hand, man kann es aus einer Liste auswählen

Bild

Betrifft: AW: Komplikationen zwischen Makro und Wenn-Funktion
von: stephan w
Geschrieben am: 26.08.2015 14:41:05
okay,
Lösung selbst gefunden. Danke aber nochmal für die Hilfestellung :)
Für Leute mit gleichem Problem:


Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range
    Set KeyCells = Range("B39")
    
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then
If ActiveSheet.Range("B39").Value = "Windows Server: 2008 R2" Then
MsgBox "Achtung, diese Version wird nicht länger unterstützt!" & vbNewLine & _
"This version is not longer supported!"
        End If
    End If
End Sub


Bild

Betrifft: AW: Komplikationen zwischen Makro und Wenn-Funktion
von: Daniel
Geschrieben am: 26.08.2015 14:51:03
dann wäre das Change-Event das passende Event.
im Change-Event werden auch die veränderten Zellen in einer Variable (Target) gesammelt, so dass du prüfen kannst, ob die Eingabezele gerade verändert wurde oder nicht

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B39")) is nothing then
   ... hier dann der weitere Code
end if
End Sub
gruß Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Komplikationen zwischen Makro und Wenn-Funktion"