Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

wieder ein makro





Frage

Hallo zusammen Möchte von Tabelle 1, zellen B1,B5,C3 in die Tabelle 3 schreiben und zwar so, dass in zelle A20=B1, B20=B5, C20=C3. Wenn ich jetzt in Tabelle 1 die Zahlen änder so sollten die neuen Zahlen in A21,B21,C21 kommen. Wer weiss wie das geht? Grüsse Maxli

Antwort 1 von coros

Nabend Maxli,

nachfolgenden Code kopiere in das VBA Projekt von Blatt "Tabelle1".

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim Zeile As Long
Zeile = Sheets("Tabelle3").Range("A65536").End(xlUp).Offset(1, 0).Row
If Target.Address = "$B$1" Or Target.Address = "$B$5" Or Target.Address = "$C$3" Then
If Zeile < 20 Then
Sheets("Tabelle1").Range("B1").Copy
Sheets("Tabelle3").Cells(20, 1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Sheets("Tabelle1").Range("B5").Copy
Sheets("Tabelle3").Cells(20, 2).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Sheets("Tabelle1").Range("C3").Copy
Sheets("Tabelle3").Cells(20, 3).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Else

Sheets("Tabelle1").Range("B1").Copy
Sheets("Tabelle3").Cells(Zeile, 1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Sheets("Tabelle1").Range("B5").Copy
Sheets("Tabelle3").Cells(Zeile, 2).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Sheets("Tabelle1").Range("C3").Copy
Sheets("Tabelle3").Cells(Zeile, 3).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
End If
Application.CutCopyMode = False
End Sub


Bei obigen Code werden immer, wenn Du in Zelle B1oder B5 oder C3 den Inhalt der Zelle änderst, die Daten su den Zellen in das Blatt "Tabelle3" kopiert. Beim Ersten kopieren werden die Daten in Zeile 20, danach immer in die nächste leere Zeile kopiert.
Da Du nicht geschrieben hast, ob der Code immer ausgeführt werden soll wenn in eine der drei zellen eine Änderung eintritt oder nur wenn in einer bestimmten Zelle eintritt, habe ich den Code so erstellt, wie oben beschrieben.

Ich hoffe, Du kannst damit etwas anfangen.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von maxli

Hallo

Das ging ja prompt, danke. Eigentlich wäre es für meinen Zweck besser ich könnte das Makro selber auslösen z.B. mit commandbutton.
Es geht darum, dass ein Zusammenzug verschiedener Offerten für den selben Kunden ich auf einem Blatt habe.

Grüsse
Maxli

Antwort 3 von coros

Moin Maxli,

dann erstelle halt einen Button aus der Symbolleiste Steuerelement-Toolbox und kopiere den Code ab der Zeile

Application.ScreenUpdating = False

bis zur Zeile

Application.CutCopyMode = False

und füge ihn in die Leerzeile zwischen z.B.

Private Sub CommandButton1_Click()

und

End Sub

Dann sollte es so sein, wie Du es wolltest, dass der Code nur ausgeführt wird, wenn DU die Befehlsschaltfläche betätigst.



MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von maxli

Hallo Coros

Es hat super geklappt

Danke nochmals für deine Hilfe

Grüsse Maxli

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: