Microsoft Excel

Herbers Excel/VBA-Archiv

Worksheet_Change(ByVal Target As Excel.Range) | Herbers Excel-Forum


Betrifft: Worksheet_Change(ByVal Target As Excel.Range) von: René
Geschrieben am: 16.02.2012 18:02:40

Hallo Excelgemeinde

Ich habe folgenden Code auf dem Tabellenblatt.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'
If Target.Address = "$T$6" Then
  Range("D7:J37").ClearContents
    Range("A1").Select
End If
'
If Target.Address = "$J$7:$J$37" = "Ü" Then
  Cells(ActiveCell.Row, ActiveCell.Column + 1).Select
End If

End Sub
Der erste Teil (if) klappt problemlos.
Bei dem zweiten if bekomme ich fehlerhaften Abbruch (Typenunverträglich).
Mir ist auch irgendwie klar, das der Code so Blödsinn ist.
Ich wollte mich halt rantesten, aber packe es nicht.

Es soll einfach die Nachbarzelle der aktiven Zelle ausgewählt werden, wenn ich in der aktiven Zelle ein "Ü" eintippe.
Die Range beschränkt sich aber auf D7:D37, in der ein Ü eingetippt werden könnte.

Wie kann man das lösen?

Liebe Grüße, René

  

Betrifft: AW: Worksheet_Change(ByVal Target As Excel.Range) von: hary
Geschrieben am: 16.02.2012 18:21:26

Hallo
eine Moeglichkeit.

        If Target.Count > 1 Then Exit Sub
     If Not Intersect(Target, Range("D7:D37")) Is Nothing Then
        If Target = "Ü" Then Target.Offset(, 1).Select
     End If

gruss hary


  

Betrifft: Ergänzung zu Hary & zur Verdeutlichung von: Luc:-?
Geschrieben am: 16.02.2012 20:10:46

Hi, René;
weißt du eigentlich, was du mit Target.Address = "$J$7:$J$37" = "Ü" angewiesen hast? Sicher nicht, sonst wäre dir der Fehler klar gewesen. ;->
Was du geschrieben hast, läuft daraus hinaus, dass das Pgm untersuchen soll, ob die Adresse der geänderten Zelle dem Wahrheitswert entspricht, der beim Vergleich des Textes "$J$7:$J$37" mit dem Text "Ü" entsteht, also stets FALSCH. Da Adressen nun mal keine Wahrheitswerte, sondern Texte sind, entsteht der Fehler…
Gruß Luc :-?