Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Excel vba: Erkennen einer Eingabe in Zellen

05.09.2018 (👁8317)


Wie kann man die Eingabe in einem Excel-Blatt überwachen, wenn eine Zelle in einem bestimmten Bereich geändert wird.

Lösung

Man kann in Excel den Worksheet Change auf Target Range untersuchen

 

Worksheet_Change Event erstellen

Hierzu öffnet man unter Alt-F11 den vba Makrobereich.

Im vbaProject-Bereich wählt man das Arbeitsblatt als Tabelle(xxx)

Dann kann man den Objektbereich Worksheet öffen (zellen oben links)

Und rechts den Event: Change auswählen

Dann kann man den Eingabebereich wie folgt abfragen mit Target.Address

Private Sub Worksheet_Change(ByVal Target As Range)

    '--------< Worksheet_Change(ImputCell) >--------

    '*After_Cell_Input_Change

    If Target.Address Like "$B$*" Then

        MsgBox "treffer"

    End If

    '--------</ Worksheet_Change(ImputCell) >--------

End Sub

Weitere Möglichkeiten zum Prüfen des Eingabebereichs

Folgende vba Code-Möglichkeiten kann man zur Erkennung des Bereichs einer kompletten Spalte anwenden

1) Vergleich der Address

Über Wildcard wie *

2) Vergleich über Intersect(Eingabebereich , Erlaubter_Bereich)

a) über genaue Adressbenennung B1:B1000

b) über Spalten-Adresse ohne Zeilen B:B

c) über Columns Eigenschaft

Private Sub Worksheet_Change(ByVal Target As Range)

    '--------< Worksheet_Change(ImputCell) >--------

    '*After_Cell_Input_Change

    If Target.Address Like "$B$*" Then

        MsgBox "treffer Target.Address Like '$B$*'"

    End If

 

    'oder

    If Not Intersect(Target, Range("B1:B10000")) Is Nothing Then

        MsgBox "treffer Intersect(Target, Range('B1:B10000'))"

    End If

    'oder

    If Not Intersect(Target, Range("B:B")) Is Nothing Then

        MsgBox "treffer Intersect(Target, Range('B:B'))"

    End If

 

 

    If Not Intersect(Target, Columns("B:B")) Is Nothing Then

        MsgBox "treffer Intersect(Target, Columns('B:B'))"

    End If

 

 

    '--------</ Worksheet_Change(ImputCell) >--------

End Sub