Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Problemlösung?
#1
Hallo zusammen.

Ich habe folgendes VBA Problem:

Ich habe in die Tabelle folgendes Makro stehen:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Farbe

If Target.Address = "$X$31" Then
  Select Case Target.Value
 
    Case 50 To 54
        Call Niveau1
       
    Case 55 To 59
        Call Niveau2
   .......

.........

.......   
   
  End Select
End If

End Sub

Die Zelle "X31" ist eine Verbindung, z.B: =A1+A2 ... Wenn ich was in die Zelle "X31" direkt eintippe, dann funktioniert mein "obenstehendes Makro", aber wenn ich denn Wert("X31") durch A1 oder A2 verändere, dann blickt das Makro nicht, dass sich der Wert in der Zeile "X31" verändert hat?!?!  Confused

Hoffentlich ist meine Problem verständlich.

Bitte um Hilfe wie ich das problem lösen kann?  Huh

MfG
Andre
Antworten Top
#2
Hallo,

dafür musst du statt Worksheet_Change() das Worksheet_Calculate()-Ereignis verwenden. Eine Formelberechnung löst nämlich kein Change-Ereignis aus.
Oder du änderst halt den abgefragten Addressbereich auf
Code:
If Target.Address = "$A$1" Or Target.Address = "$A$2" Then
Alternativ dazu
Code:
If Not Application.Intersect(rgTarget, .Range("A1:A2")) Is Nothing Then
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Andrek
Antworten Top
#3
Hallo,
das Change_Ereignis reagiert nur auf manuelle Veränderungen, nicht auf Ergebnisänderungen einer Formel. Wenn sich dei Werte in A1 oder A2 ändern, muss Dzu auch darauf prüfen:
PHP-Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Farbe

If Target.Address "$A$1" Or Target.Address "$A$2" Then
  Select 
Case Range("X31").Value
 
    
Case 50 To 54
        Call Niveau1
       
    
Case 55 To 59
        Call Niveau2
   
.......

.........

.......
   
  End Select
End 
If

End Sub

Gruß Regina 
[-] Folgende(r) 1 Nutzer sagt Danke an ReginaR für diesen Beitrag:
  • Andrek
Antworten Top
#4
@Berni & Regina

Vielen herzlichen Dank euch, funktioniert SUPER!  :23: :28:

Liebe Grüße
Andre
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste