Microsoft Excel

Herbers Excel/VBA-Archiv

VBA-Code | Herbers Excel-Forum


Betrifft: VBA-Code von: Timo
Geschrieben am: 31.01.2010 11:23:51

Hallo zusammen,

ich möchte bei einer Eingabe von einen bestimmten Buchtaben x in einen Zellbereich ein aufgezeichnetes Makro aufrufen.

Mein Code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$6" And Target.Value = "k" Then Call korrektur

End Sub
Dieser Code funtkioniert leider nur für die Zelle C6. Wenn ich den Zellbereich erweitere funktioniert der Code nicht mehr. Gibt es eine Möglichkeit den Zellbereich zu erweitern z.B. C6:I19?

Danke

  

Betrifft: AW: VBA-Code von: Reinhard
Geschrieben am: 31.01.2010 11:28:31

Hallo Timo,

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C6:I19")) Is Nothing Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
If UCase(Target.Value) = "K" Then Call korrektur
End Sub

Gruß
Reinhard


  

Betrifft: AW: VBA-Code von: Josef Ehrensberger
Geschrieben am: 31.01.2010 11:29:57

Hallo Timo


Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("C6:I19")) Is Nothing Then
    If Target(1, 1) = "k" Then Call korrektur
  End If
End Sub




Gruß Sepp



  

Betrifft: AW: VBA-Code von: Timo
Geschrieben am: 31.01.2010 11:41:25

Vielen Dank Sepp funktioniert


  

Betrifft: AW: VBA-Code von: Tino
Geschrieben am: 31.01.2010 11:30:52

Hallo,
in etwa so müsste es gehen.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Intersect("C6:I19", Target)

If Not Bereich Is Nothing Then
    For Each Bereich In Bereich
        Select Case Bereich.Value
            Case "k": Call korrektur
            Case "v": Call Mach_was_anderes
            'usw...
            '...
            '...
        End Select
    Next Bereich
End If

End Sub

Gruß Tino


  

Betrifft: Korrektur ... von: Tino
Geschrieben am: 31.01.2010 11:56:07

Hallo,
fehlt noch Range, kommt davon wenn man nicht testet. ;-(

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Intersect(Range("C6:I19"), Target)

If Not Bereich Is Nothing Then
    For Each Bereich In Bereich
        Select Case Bereich.Value
            Case "k": Call korrektur
            Case "v": Call Mach_was_anderes
            'usw...
            '...
            '...
        End Select
    Next Bereich
End If

End Sub
Gruß Tino


Beiträge aus den Excel-Beispielen zum Thema "VBA-Code"