Anzeige
Archiv - Navigation
1320to1324
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

VBA-Code bearbeiten

VBA-Code bearbeiten
01.07.2013 07:31:46
Thomas
Hallo zusammen,
ursprünglich sah der Code so aus:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
On Error GoTo Ende
For Each Zelle In Intersect(Range("B4:H11"), Target).SpecialCells(xlCellTypeConstants, 1)
Sheets("Tabelle2").Range(Zelle.Address).Value = Cells(Target.Row, 1).Value
Next
Ende:
End Sub
Geändert habe ich jetzt Range("B11:NC100)trotzdem werden noch die Zellen bis B4 druch den Code geändert.
Weiß jemand woran es liegt?
Schönen Gruß
Thomas

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Code bearbeiten
01.07.2013 08:58:58
Justin
Guten Morgen,
hast du nachdem Range die (" ") beiden "" gesetzt? In deinem Post hast du das am Ende vergessen.

AW: VBA-Code bearbeiten
01.07.2013 09:03:04
Thomas
Hallo Justin,
sorry, aber ich habe es nur in dem Post vergessen. Im Code ist es mit "".
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
On Error GoTo Ende
For Each Zelle In Intersect(Range("B11:NC100"), Target).SpecialCells(xlCellTypeConstants, 1)
Sheets("DPP").Range(Zelle.Address).Value = Cells(Zelle.Row, 1).Value
Next
Ende:
End Sub

AW: VBA-Code bearbeiten
01.07.2013 09:14:03
Klaus
Hallo Thomas,
dein Code greift nicht bei B4, bzw der gezeigte Codeteil nicht. Du wirst wohl eine Musterdatei hochladen müssen, in der sich der Fehler reproduzieren lässt.
Grüße,
Klaus M.vdT.

Anzeige
AW: VBA-Code bearbeiten
01.07.2013 09:15:55
Luschi
Hallo Thomas,
Du mußt die Proedure so umschreiben:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range, Bereich As Range
'prüfen, ob Target im bestimmten Bereich liegt
Set Bereich = Range("B13:NC100")
If Not (Intersect(Bereich, Target) Is Nothing) Then
For Each Zelle In Bereich.SpecialCells(xlCellTypeConstants, 1)
Sheets("Tabelle2").Range(Zelle.Address).Value = Cells(Target.Row, 1).Value
Next
End If
End Sub
Intersect gibt die Schnittpunktzellen von 2 Bereichen zurück. Im Fall von
'Intersect(Range("B11:NC100"), Target) ist das genau 1 Zelle, nämlich Target selbst, wenn die Eingabe im genannten Bereich erfolgt. Also hätte man auch gleich Target.SpecialCells(xlCellTypeConstants, 1)
schreiben können. Und hier macht Excel dann die von Dir beobachtete Merkwürdigkeit.
Was soll es auch bringen, SpecialCells auf 1 Zelle anzusetzen. Da nimmt Excel eben alle Zellen, die ab Spalate 'B' einen nummerischen konstanten Wert haben, Spalte 'A' berücksichtigt Excel nicht, dafür aber auch alle Zellen über Zeile 100.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: VBA-Code bearbeiten
01.07.2013 10:23:12
Thomas
Hallo Luschi,
vielen Dank! Ist so perfekt!
Kleine Änderung habe ich vorgenommen, statt:
Cells(Target.Row, 1).Value

geädnert in:
Cells(Zelle.Row, 1).Value
Vielen Dank nochmal
Gruß
Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige