Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1392to1396
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Abänderung vom Code

Abänderung vom Code
20.11.2014 17:50:31
Carl
Hallo,
ich würde gern diesen Code so abändern, dass er nur in bestimmten Spalten und Zellen greift.

Public r As Range
Private Sub Worksheet_Change(ByVal Target As Range)
For Each r In Target
With r
.HorizontalAlignment = xlCenter
If (.Value - Int(.Value)) = 0 Then
.NumberFormat = "0"
Else
.NumberFormat = "# ?/?"
End If
End With
Next r
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set r = Target
End Sub
Siehe auch hier: https://www.herber.de/forum/archiv/1380to1384/t1383320.htm#1383320

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Target.Rows & Target.Columns
21.11.2014 10:44:22
Frank
Hallo Carl,
Target as Range hat die Eigenschaften Rows und Columns, die man auswerten kann.
dazu müsstest Du den Code innerhalb der WITH-Anweisungen in zwei weitere IF-Abfrage einschliessen:
if .Rows=DeineZeile Then
if .Columns=DeineSpalte Then
.HorizontalAlignment = xlCenter
End If
end if
end if
Grüsse,
Frank

AW: Target.Rows & Target.Columns
22.11.2014 12:41:03
Carl
Hallo Frank,
irgendwie komme ich da nicht ganz zurecht. Deshalbe führe ich die Zellen auf, wo der Code greifen soll. Es sind genau die Zellen, die auch im verlinkten Posting aufgeführt sind. Und zwar diese Zellen: A4 - M4, A11 - M11, A18 - M18 und A25 - M25. Ich habe leider erst jetzt bemerkt, dass es Probleme gibt, wenn man den Code in der kompletten Tabelle (Datei) verwendet. Denn es gibt auch Zellen, da stehen noch andere Kommazahlen drin. Und die sollen nicht verändert werden. Aber wenn ich in diese Zellen z.B 2,4 eingebe, dann wird aus der Zahl 2,4 die Zahl 2 2/5. Klar, ich könnte die betroffen Zellen entsprechen formatieren. Aber durch den Code fehlt auch noch "Rückgängig". Und darauf möchte ich nicht verzichten.

Anzeige
AW: Target.Rows & Target.Columns
22.11.2014 12:51:28
Crazy
Hallo
so kannst du die Ausführung eines Makros nur auf bestimmte Bereiche einschränken
    Dim rngBereich As Range
Set rngBereich = Range("A4:M4, A11:M11, A18:M18, A25:M25")
If Not Intersect(Target, rngBereich) Is Nothing Then
'###hier dein Code###
End If

MfG Tom

AW: Target.Rows & Target.Columns
23.11.2014 11:21:03
Carl
Hallo Tom,
danke, aber leider ist mir unbekannt, welchen Teil vom Code ich wo und wie im Bereich '###hier dein Code### einzusetzen habe.

AW: Target.Rows & Target.Columns
23.11.2014 11:30:20
Crazy
Hallo Carl
vielleicht passt es so?
Option Explicit
Public r As Range
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngBereich As Range
Set rngBereich = Range("A4:M4, A11:M11, A18:M18, A25:M25")
If Not Intersect(Target, rngBereich) Is Nothing Then
For Each r In Target
With r
.HorizontalAlignment = xlCenter
If (.Value - Int(.Value)) = 0 Then
.NumberFormat = "0"
Else
.NumberFormat = "# ?/?"
End If
End With
Next r
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set r = Target
End Sub

MfG Tom

Anzeige
AW: Target.Rows & Target.Columns
24.11.2014 11:07:53
Carl
Hallo Tom,
das funktioniert super. Vielen Dank. Nur noch eine kurze Frage:
Könnte man denn auch ohne "Nebenwirkungen" den Bereich im Code so gestalten, wenn die Eingabe trotzdem nur in den vorher benannten Zellen erfolgt?
Set rngBereich = Range("A4:M25")

AW: Target.Rows & Target.Columns
24.11.2014 11:21:05
Crazy
Hallo
hierbei
Set rngBereich = Range("A4:M25")

wirkt der Code ohne "Nebenwirkungen" ;-) im kompletten Bereich von A4 bis A25
und das wolltest du laut deiner Vorgabe ja nicht
MfG Tom

AW: Target.Rows & Target.Columns
24.11.2014 13:12:56
Carl
Hallo Tom,
"und das wolltest du laut deiner Vorgabe ja nicht..."
Dein Code passt schon. Und "Rückgängig" funktioniert auch in den Zellen wo Dein Code nicht greifen soll. Aber der Hintergedanke von meiner Frage war der:
Der ursprüngliche Code wirkt sich ja auf alle Zellen der Tabelle aus. Und in (z.B.) A29:M29 stehen Zahlen, da soll dieser Code nicht greifen (siehe meine Antwort an Frank). Fest sind nur die Zellen A4:M25. Zwischen A4:M25 steht zwar auch Text, und auch Wochentage in Zahlen (z.B. 04.10.), aber da wirkt sich ja der Code nicht negativ aus.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige