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

change event funktioniert nicht

change event funktioniert nicht
18.01.2022 10:44:27
Thomas
Hallo zusammen,
ich bin leider noch recht unerfahren in Excel und würde mich über Hilfe sehr freuen.
Mein Problem ist folgendes:
Ich würde gerne aus der Tabelle 1 Zeilen kopieren und in Tabelle 2 einfügen. Die in Zeile I stehenden Zahlen sollen automatisiert mit 1,05 multipliziert werden.
Dafür habe ich den folgenden code aus dem Internet raus gesucht:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 9 Then
On Error GoTo ErrorHandler
Application.EnableEvents = False
Target.Value = Target.Value * 1.05
ErrorHandler:
Application.EnableEvents = True
End If
End Sub
Leider funktioniert dies aber nur, wenn ich Zahlen selber in Zeile I eintrage, bei copy and Paste funktioniert es leider nicht. Warum? Wie kann ich dieses problem lösen?
Vielen Dank vorab!
LG
Thomas K.

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: change event funktioniert nicht
18.01.2022 11:08:10
onur
Wenn du mit Copy/Paste MEHRERE Zellen einfügst, ist Target ein Bereich, der alle geänderten Zellen beinhaltet. Aber "dein" Code verarbeitet nur EINE dieser Zellen.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell
Application.EnableEvents = False
For Each cell In Target
If cell.Column = 9 Then
cell.Value = cell.Value * 1.05
End If
Next
Application.EnableEvents = True
End Sub

AW: change event funktioniert nicht
18.01.2022 11:09:53
migre
Hi!
Meinst Du so?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Application.CutCopyMode Then
For Each c In Target
If c.Column = 9 Then
Application.EnableEvents = False
c.Value = c.Value * 1.05
Application.EnableEvents = True
End If
Next c
End If
Application.CutCopyMode = False
End Sub
LG Michael
Anzeige
AW: change event funktioniert nicht
18.01.2022 11:49:23
Thomas
Vielen Dank für die Vorschläge,
leider ist bei euren Vorschlägen das Problem, dass in jeder Zelle eine 0 steht.
Ich benötige aber nur die Multiplikation, wenn auch ein Wert in Zeile I vorhanden ist.
LG
Thomas K.
AW: change event funktioniert nicht
18.01.2022 11:52:09
onur
Ist ja toll, dass du das schon VORHER erwähnt hast !
Das Change-Event...
18.01.2022 11:55:47
{Boris}
Hi Onur,
...ist doch für das Vorhaben des TE eh ungeeignet:

Ich würde gerne aus der Tabelle 1 Zeilen kopieren und in Tabelle 2 einfügen. Die in Zeile I stehenden Zahlen sollen automatisiert mit 1,05 multipliziert werden.
VG, Boris
Unverständlich
18.01.2022 11:55:07
migre
Hallo Thomas!
Das ist nicht nachvollziehbar:
leider ist bei euren Vorschlägen das Problem, dass in jeder Zelle eine 0 steht.
Das verstehe ich nicht; in den Zielzellen wird das eingefügt, was Du zuvor kopiert hast.
Ich benötige aber nur die Multiplikation, wenn auch ein Wert in Zeile I vorhanden ist.
Das verstehe ich auch nicht; Du wolltest doch jene kopierten Werte, die in Spalte im Ziel-Blatt eingefügt werden jeweils mit 1,05 multiplizieren. Oder geht es nun darum, dass in Spalte I im Ziel-Blatt die bestehenden Werte nicht überschrieben, sondern stattdessen multipliziert werden sollen?
Was gilt?
LG Michael
Anzeige
AW: Unverständlich
18.01.2022 12:04:40
Thomas
Ich entschuldige mich für die unklare Beschreibung. Bin leider nicht so versiert in Excel.
Mein Wunsch ist der folgende:
Im Tabellenblatt 2 sollen alle Zahlen (wenn vorhanden) in Spalte I automatisiert mit 1,05 multipliziert werden. Das funktioniert mit meinem code auch.
Jedoch tritt das Problem auf, wenn ich Zahlen von z.B. Tabellenblatt 1 in Tabellenblatt 2 in die Zeile I kopiere. In diesem Fall bleiben die Zahlen in Zeile I unverändert. Diese sollen aber ebenfalls mit 1,05 multipliziert werden.
Ich hoffe die Beschreibung ist etwas besser.
LG
Thomas K.
AW: Unverständlich
18.01.2022 13:54:09
migre
Hallo!
Hiermit (im Modul der Tabelle2):

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If c.Column = 9 Then
Application.EnableEvents = False
c.Value = c.Value * 1.05
End If
Next c
Application.EnableEvents = True: Set c = Nothing
End Sub
wird ein manuell eingegebener Wert in Spalte I mit 1,05 multipliziert oder auch ein in Spalte I einkopierter Wert. Das müsste sein, was Du anstrebst...
LG Michael
Anzeige
Wie genau...
18.01.2022 12:02:26
{Boris}
Hi,
...möchtest Du die "Zeilen denn kopieren"? Von wo nach wo genau? Willst Du die Zeilen vorher markieren oder...?
Lad doch mal ne Beispielmappe mit Deinen EXAKTEN Zellkoordinaten hoch inkl. Angabe eines Wunschergebnisses.
VG, Boris
AW: Wie genau...
18.01.2022 13:55:37
Thomas
Ist meine Erklärung verständlich?
LG
Thomas K.
Nein...
18.01.2022 16:20:53
{Boris}
Hi,
...meine Fragen hast Du noch nicht beantwortet - lad doch eben eine Beispielmappe hoch.
VG, Boris
AW: Nein...
20.01.2022 14:41:58
Thomas
Hallo zusammen,
hier ist die gewünschte Beispielmappe:
https://www.herber.de/bbs/user/150546.xls
Wie bereits beschrieben möchte ich lediglich, dass alles was in der zweiten Tabelle in Zeile I kopiert oder geschrieben wird mit 1,05 multipliziert wird.
Ich würde mich sehr freuen, wenn mir jemand helfen kann.
LG
Thomas K
Anzeige
AW: Nein...
20.01.2022 19:06:11
{Boris}
Hi,
1) Bennen eine Zelle als Faktor (also vergib für diese Zelle den Namen Faktor)
2) In diese Zelle schreibst Du den gewünschten Faktor (z.B.: 1,05)
3) Füge den unten angegebenen Code in ein allgemeines Modul ein
4) Weise diesen Code einem Button (am Einfachsten einen Button aus den Formularsteuerelementen) auf dem Tabellenblatt 1 (Tabelle1) zu
5) Markiere die fraglichen Werte - z.B. A14:L14 - und starte dann den Code mittels Button
Ist es das, was Du suchst?

Sub alles_mal_Faktor()
With Tabelle2
Selection.Copy .Cells(1, 1)
Range("Faktor").Copy
.Cells(1, 1).Resize(1, .Cells(1, 1).End(xlToRight).Column).PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End With
End Sub
VG, Boris
Anzeige
AW: Nein...
21.01.2022 09:03:26
Thomas
Hallo Boris,
erst einmal vielen deine für deine Hilfe! Leider funktioniert dies auch nicht so wie ich mir das vorgestellt habe.
Also ich versuche es ein letztes mal. Ich möchte einfach, dass alles in Zeile I mit 1,05 multipliziert wird.
Mein Code hat dies auch wie gewünscht gemacht. Das einzige, was noch irgendwie dazu kommen müsste wäre, dass auch kopierte und eingefügte Zahlen in Zeile I multipliziert werden. Dies kann mein Code leider nicht und leider weiß ich auch nicht wie ich dieses Problem lösen soll.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 9 Then
On Error GoTo ErrorHandler
Application.EnableEvents = False
Target.Value = Target.Value * 1.05
ErrorHandler:
Application.EnableEvents = True
End If
End Sub
LG
Thomas K.
Anzeige
AW: Nein...
21.01.2022 09:14:35
{Boris}
Hi,

Leider funktioniert dies auch nicht so wie ich mir das vorgestellt habe.
Dann zeig doch mal bitte Deinem Mappe MIT meinem geposteten Code inkl. Button.
Das von Dir gezeigte Private Sub Worksheet_Change(ByVal Target As Range) reagiert nur auf die direkte Zelleingabe und geht somit nicht für zu kopierende Bereiche.
VG, Boris
AW: Nein...
21.01.2022 12:36:40
Thomas
Hallo Boris,
ich habe eine Lösung aus einem alten Thread gefunden:
Option Explicit

Sub til()
Dim C As Range
For Each C In Range("B3:B100, D3:D100")
If C  "" Then
C = C * 10
End If
Next C
End Sub
Die Lösung stammt sogar von dir!
Ich danke dir für deine Mühe!
MfG
Thomas K.
Anzeige
;-)) ...oT
21.01.2022 13:17:21
{Boris}
VG, Boris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige