Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1716to1720
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

Fehler beim Zellen Verschieben

Fehler beim Zellen Verschieben
21.10.2019 16:20:04
Keetza5
Hallo,
ich habe neulich in meine Datei einen Code eingefügt, der jegliche Änderung in ein separates Tabellenblatt schreibt:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value  PreviousValue Then
Sheets("Mielke").Cells(65000, 1).End(xlUp).Offset(1, 0).Value = _
Application.UserName & " changed cell " & Target.Address _
& " from " & PreviousValue & " To " & Target.Value
End If
End Sub

Leider erhalte ich nun immer eine Typen unverträglich Fehler, wenn ich mehrere Zellen gemeinsam verschieben möchte. Kann mir jemand bei diesem Problem helfen bzw. liegt es vllt. daran, dass im Code nur ein Wert angesprochen wird?
Besten Dank

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler beim Zellen Verschieben
21.10.2019 17:50:00
onur
Du must um die If-Schleife eine
For each cell in Target.cells

-Schleife bauen und die geänderte Zelle mit cell ansprechen statt mit Target.
AW: Fehler beim Zellen Verschieben
22.10.2019 12:31:18
Keetza5
Hi, vielen Dank für Eure Hilfe. Die Erklärungen machen absolut Sinn. Einziges Problem, dass ich jetzt noch habe: Er zeigt mir den Kompilierungsfehler an, dass eine Bibliothek nicht gefunden wurde und markiert dabei das "Cell" und die erste Zeile, in der ByVal target as Range steht.
Private Sub Worksheet_Change(ByVal Target As Range)
For Each Cell In Target
If Target.Value PreviousValue Then
Sheets("Mielke").Cells(65000, 1).End(xlUp).Offset(1, 0).Value = _
Application.UserName & " changed cell " & Cell.Address _
& " from " & PreviousValue & " To " & Cell.Value
End If
Anzeige
AW: Fehler beim Zellen Verschieben
22.10.2019 12:36:41
onur
Das ist ja auch nicht das, was ich dir geschrieben habe.
Ich schrieb
For each cell in Target.cells
Und
Überall in der äusseren Schleife:
Statt target: cell benutzen.
Wenn du schon hier Rat willst, solltest du dich auch dran halten.
AW: Fehler beim Zellen Verschieben
22.10.2019 13:42:24
Keetza5
Tut mir leid, wenn ich deine Anweisungen nicht gefolgt bin, aber es war und ist leider noch etwas unklar. Habe jetzt jedes target in der If Schleife mit Cells ersetzt. Trotzdem wird die Bibliothek laut Fehlermeldung nicht gefunden:
Private Sub Worksheet_Change(ByVal Cell As Range)
For Each Cell In Cells.Target
If Cell.Value PreviousValue Then
Sheets("Mielke").Cells(65000, 1).End(xlUp).Offset(1, 0).Value = _
Application.UserName & " changed cell " & Cell.Address _
& " from " & PreviousValue & " To " & Cell.Value
End If
Anzeige
AW: Fehler beim Zellen Verschieben
21.10.2019 18:01:12
Daniel
HI
Target umfasst ja als Range-Variable alle geänderten Zellen.
wenn du jetzt mehrere Zellen änderst, dann ergibt Target.Value keinen Einzelwert, sondern ein zweidimenionales Array mit den Werten der geänderten Zellen.
Da man mit einem zweidimensionalen Array anders umgehen muss als mit einem Einzelwert, kommt es dann zu dem Fehler, wenn man das nicht berücksichtigt.
die einfachste Lösung ist wie von onur gezeigt, die Schleife über alle Zellen von Target, weil dort wieder nur einzelnen Zellen bearbeitet werden das .Value einen Einzelwert ergibt.
Gruß Daniel
AW: Fehler beim Zellen Verschieben
23.10.2019 11:54:41
Keetza5
Hi Daniel, vielen Dank für deine Hilfe. Deine Erklärung war sehr verständlich und ich habe die Schleife für alle Zellen eingefügt. Leider bekomme ich nun bei diesem Code immernoch einen Fehler ("Bibliothek oder Projekt nicht gefunden").
Private Sub Worksheet_Change(ByVal Cell As Range)
For Each Cell In Cells.Target
If Cell.Value  PreviousValue Then
Sheets("Mielke").Cells(65000, 1).End(xlUp).Offset(1, 0).Value = _
Application.UserName & " changed cell " & Cell.Address _
& " from " & PreviousValue & " To " & Cell.Value
End If
End Sub
Habe ich noch einen Fehler iwo?
Anzeige
AW: Fehler beim Zellen Verschieben
23.10.2019 12:33:01
onur
Ich gebe es auf - als würde man mit der Wand reden!
Habe ich irgendwo etwas wie
cells.Target

geschrieben ?
AW: Fehler beim Zellen Verschieben
23.10.2019 13:32:29
Keetza5
Ne stimmt schon, mein Fehler. Tut mir leid. Habs jetzt so, funktioniert aber immer noch nicht ohne Fehlermeldung.
Private Sub Worksheet_Change(ByVal Target As Range)
For Each Cell In Target.Cells
If Cell.Value PreviousValue Then
Sheets("Mielke").Cells(65000, 1).End(xlUp).Offset(1, 0).Value = _
Application.UserName & " changed cell " & Cell.Address _
& " from " & PreviousValue & " To " & Cell.Value
End If
Anzeige
AW: Fehler beim Zellen Verschieben
23.10.2019 17:45:56
onur
Würdest du evtl auch verraten, welche Fehlermeldung genau wo genau kommt?
Abgesehen davon: Wo genau hast du Variable
PreviousValue
dimensioniert und wo wird sie womit befüllt?
AW: Fehler beim Zellen Verschieben
24.10.2019 14:10:08
Keetza5
Nach dem ich die Zellen verschoben haben (bzw. die Zelleninhalte) ensteht der follgende Fehler: "Fehler beim Kompilieren: Bibliothek oder Projekt nicht gefunden".
Dazu ist im Code die erste Zeile (Private Sub Worksheet_Change(ByVal Target As Range) gelb markiert und das Wort "Cell" in der For-Schleife hervorgehoben.
PreviousValue wurde vorab global dimensioniert, allerdings nur mit "Dim PreviousValue". Da Bin ich mir unsicher, als welchen Typen. Würdest du String empfehlen?
Anzeige
AW: Fehler beim Zellen Verschieben
24.10.2019 15:14:19
onur
"PreviousValue wurde vorab global dimensioniert, allerdings nur mit "Dim PreviousValue""?
Global geht nur so (in einem MODUL):
Public PreviousValue

Und wo hast du cell dimensioniert?
"das Wort "Cell" in der For-Schleife hervorgehoben!! - das Wort cell taucht in der Schleife VIER mal auf!
Und eine Frage (die letzte Frage) hast wieder mal nicht beantwortet!
Liest du eigentlich das, was man dir postet, mal RICHTIG durch?
AW: Fehler beim Zellen Verschieben
25.10.2019 09:00:48
Keetza5
PreviousValue wird vorab gar nicht befüllt. Und das erste Cell in "For Each Cell" ist hervorgehoben.
Den Code hat zuvor ein Kollege von mir eingefügt, deshalb bin ich dazu etwas unsicher, wie es gedacht war. Aber "global dimensioniert" ist dann wohl Quatsch. Cell ist dann genauso wenig dimensioniert. Das ist der gesamte Code:
Dim PreviousValue
Private Sub Worksheet_Change(ByVal Target As Range)
For Each Cell In Target.Cells
If Cell.Value  PreviousValue Then
Sheets("Mielke").Cells(65000, 1).End(xlUp).Offset(1, 0).Value = _
Application.UserName & " changed cell " & Target.Address _
& " from " & PreviousValue & " To " & Target.Value
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
PreviousValue = Target.Value
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige