Code bilden

Hallo

Ist es möglich diesen Code als Range zu definieren ?

Cells(Target.Row + 3, Target.Column)
Cells(Target.Row + 4, Target.Column)
Cells(Target.Row + 5, Target.Column)
Cells(Target.Row + 6, Target.Column)
Cells(Target.Row + 7, Target.Column)
Cells(Target.Row + 8, Target.Column)

Habe leider keine Idee.

Danke
Flexo

Nachfrage

Cells(Target.Row + 3, Target.Column)
Cells(Target.Row + 4, Target.Column)
Cells(Target.Row + 5, Target.Column)
Cells(Target.Row + 6, Target.Column)
Cells(Target.Row + 7, Target.Column)
Cells(Target.Row + 8, Target.Column)

Ist es möglich diesen Code als Range zu definieren ?

Hallo Flexo,

alles als EIN Range oder in jeder Zeile Cells durch Range ersetzen?

Gruß
Reinhard

Guten Tag,

Hallo Reinhard

Ich möchte diesen Range als .Select setzen und dann formatieren. Momentan klappt das nur für eine Zelle und jedesmal den Code copy/paste, bringts ja auch nicht.

a = Cells(Target.Row + 3, Target.Column).Select

If Target.Value = „leer“ Then

With Selection
.Interior.ColorIndex = 44
.Value = „leer“
End With
etc.

Danke & Gruss

Also alles ein Range.

Ich möchte diesen Range als .Select setzen und dann
formatieren. Momentan klappt das nur für eine Zelle und
jedesmal den Code copy/paste, bringts ja auch nicht.
With Selection
.Interior.ColorIndex = 44
.Value = „leer“
End With

Hallo Flexo,

With Target.Offset(3, 0).Resize(6, 1)
 .Interior.ColorIndex = 44
 .Value = "leer"
End With

Gruß
Reinhard

An Offset habe ich gar nicht gedacht.
Wollte immer was mit Range(Target.Column +1 & „:“ … basteln

Danke Dir
Flexo

Ich möchte diesen Range als .Select setzen

With Target.Offset(3, 0).Resize(6, 1)
.Interior.ColorIndex = 44
.Value = „leer“
End With

Hallo Reinhard
Ich hab ein Brett (oder einen Weihnachtsbaum) vor dem Kopf.

Ich habe mit Deinen Angaben folgendes gebastelt:

Private Sub Worksheet\_Change(ByVal Target As Range)
If Target.Value = 1 Then
With Target.Offset(3, 0).Resize(6, 1)
 .Interior.ColorIndex = 44
 .Value = "leer"
End With
End If
End Sub

Wenn ich in eine beliebige Zelle „1“ eingebe, sollen die im Makro bestimmten Zellen eingefärbt und mit „leer“ be-inhaltet werden. Wenn ich die Eingabe „1“ mache, wird das auch vollzogen, aber gleichzeitig erhalte ich eine Meldung Laufzeitfehler 13 (Typen unverträglich).

Deine Sperberaugen erkennen sicher auch aus weiter Ferne, was ich hier in Zürich falsch mache.

Vielen Dank für Deine Hilfe
Niclaus

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = 1 Then
With Target.Offset(3, 0).Resize(6, 1)
.Interior.ColorIndex = 44
.Value = „leer“
End With
End If
End Sub
Wenn ich in eine beliebige Zelle „1“ eingebe, sollen die im
Makro bestimmten Zellen eingefärbt und mit „leer“ be-inhaltet
werden. Wenn ich die Eingabe „1“ mache, wird das auch
vollzogen, aber gleichzeitig erhalte ich eine Meldung
Laufzeitfehler 13 (Typen unverträglich).

Hallo Niclaus,

dadurch daß der Code „leer“ in Zellen schreibt ruft er sich selbst mehrmals auf. Vielleicht stammt der Fehler, in welcher Codezeile eigentlich?, daher.

Also Anfangs des Codes Application.Enableevents=False und am Ende Application.Enableevents=True einbauen.
Hilfts?

Gruß
Reinhard

Deine Sperberaugen erkennen sicher auch aus weiter Ferne, was
ich hier in Zürich falsch mache.

Vielen Dank für Deine Hilfe
Niclaus

Also Anfangs des Codes Application.Enableevents=False und am
Ende Application.Enableevents=True einbauen.
Hilfts?

Ja, das hilft. Herzlichen Dank.
Und frohe Weihnachtstage
Niclaus

Grüezi zusammen

Also Anfangs des Codes Application.Enableevents=False und am
Ende Application.Enableevents=True einbauen.
Hilfts?

Ja, das hilft. Herzlichen Dank.

Darf ich da auch noch etwas anmerken :smile:

Sobald die Events ausgeschaltet werden und der Code sonstwo in einen Fehler läuft besteht die Gefahr, dass die Events anschliessend nicht wieder aktiviert werden.
Des weiteren könnte es auch sein, dass in mehreren Zellen zugleich eine ‚1‘ eingetragen wird.

Die folgenden (erweiterten) Zeilen tragen diesen beiden Punkten Rechnung:

Private Sub Worksheet\_Change(ByVal Target As Range)
 On Error GoTo ErrorHandler
 Application.EnableEvents = False
 Dim rngZelle As Range
 For Each rngZelle In Target

 If rngZelle.Value = 1 Then
 With rngZelle.Offset(3, 0).Resize(6, 1)
 .Interior.ColorIndex = 44
 .Value = "leer"
 End With
 End If
 Next rngZelle
ErrorHandler:
 Application.EnableEvents = True
End Sub

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Darf ich da auch noch etwas anmerken :smile:
Sobald die Events ausgeschaltet werden und der Code sonstwo in
einen Fehler läuft besteht die Gefahr, dass die Events
anschliessend nicht wieder aktiviert werden.
Des weiteren könnte es auch sein, dass in mehreren Zellen
zugleich eine ‚1‘ eingetragen wird.
Die folgenden (erweiterten) Zeilen tragen diesen beiden
Punkten Rechnung:

Salü Thomas
Vielen Dank für Deine Ergänzung. Leuchtet mir ein!
Ich wünsche Dir noch frohe Weihnachtstage und es guets Neus.
Viele Grüsse Niclaus