Microsoft Excel

Herbers Excel/VBA-Archiv

Zellen aktualisieren mit VBA

Betrifft: Zellen aktualisieren mit VBA von: Markus
Geschrieben am: 25.08.2004 09:34:23

Hallo,

Folgende Aufgabe
in einem Tabellenblatt Zelle (A) können über eine Liste einer Gültigkeitsregel bestimmte Eingaben (Taxi, Bahn, Tanken....) ausgewählt werden.
Beim Verlassen möchte ich nun in einer der daneben liegenden Zelle (B) dann entsprechend die dazu passenden Werte anzeigen lassen:

Bsp:

(A) (B)
Taxi 77
Bahn 99


Den Befehl SVerweis kenne ich, möchte es aber mit VBA und Case...Select machen
Wie rufe ich das auf, damit jeweils beim Verlassen der Zelle(A) die Zelle (B) aktualisiert wird??

Zelle (A) habe ich den Namen Fahrtkosten1 definiert.

Ich habe so mal angefangen, das klappt aber leider nur im Einzelschrittmodus:
(Makro steht im betreffenden Tabellenblatt)


Private Sub Fahrtkosten1_Change()
Fahrtkosten = Range("B30").Value
Select Case Fahrtkosten
Case "Bahn"
Range("H30") = "99"
Case "Tankbeleg"
Range("H30") = "88"
Case Default
Range("H30") = ""
Case "Taxi"
Range("H30") = "77"
End Select
End Sub



Stimmt der Aufruf:
Private Sub Fahrtkosten1_Change()??


Für Hilfe Danke im voraus,

Gruß
Markus


  


Betrifft: AW: Zellen aktualisieren mit VBA von: Reinhard
Geschrieben am: 25.08.2004 09:59:28

Hi Markus,probiers mal so (ungetestet)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub 'A=1,B=2;C=§,usw
Fahrtkosten = Target.Value
Select Case Fahrtkosten
    Case "Bahn"
        Target.Address.Offset(0, 6) = 99
    Case "Tankbeleg"
        Target.Address.Offset(0, 6) = 88
    Case "Taxi"
        Target.Address.Offset(0, 6) = 77
    Case Else
        Target.Address.Offset(0, 6) = ""
End Select
End Sub

Gruß
Reinhard


  


Betrifft: AW: Zellen aktualisieren mit VBA von: Markus
Geschrieben am: 25.08.2004 14:33:04

Hallo Reinhard,

GENIAL!

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub 'A=1,B=2;C=3,usw
Fahrtkosten = Target.Value
Select Case Fahrtkosten
    Case "KFZ"
        Target.Offset(0, 6) = "4662"
    Case "Bahn"
        Target.Offset(0, 6) = "4663"
    Case "Flug"
        Target.Offset(0, 6) = "4664"
    Case "Sonstiges"
        Target.Offset(0, 6) = "4667"
    Case "Sonstiges-KFZ"
        Target.Offset(0, 6) = "4530"
    Case Else
        Target.Offset(0, 6) = ""
End Select
End Sub


Funktioniert prima!

VIELEN DANK!

Gruß
Markus


 

Beiträge aus den Excel-Beispielen zum Thema "Zellen aktualisieren mit VBA"