Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellen XY in anderes Tabellenblatt kopieren wenn..

Zellen XY in anderes Tabellenblatt kopieren wenn..
18.12.2016 14:40:49
Maria
Hallo,
mir eurer Hilfe konnte zuletzt schon folender Code erstellt werden, der auch super funktioniert:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 And Target.Column  9 And Target.Row 

Sub Kopieren()
Dim Li As Worksheet
Dim La As Worksheet
Dim ls As Long
On Error Resume Next
Set Li = Sheets("Light Inspection Check Eingabe")
Set La = Sheets("LIC Langzeitbetrachtung")
ls = La.Cells(2, Columns.Count).End(xlToLeft).Column + 1
With Li
La.Cells(2, ls) = .Range("H5")
La.Cells(3, ls).Resize(8, 1) = .Range("C10:C17").Value
End With
MsgBox "Daten wurden kopiert"
End Sub

Er macht, das wenn in Tabellenblatt "Light Inspection Check Eingabe" in F29 "erfüllt" oder "nicht erfüllt" steht, die Zellen H5 und C10:17 in Tabellenblatt "LIC Langzeitbetrachtung" in Spalte 2 B, Zeile 2 untereinander kopiert werden, fortlaufend, wenn neue Werte kopiert werden.
Nun möchte ich gerne in der selben Datei zwei weitere Tabellenblätter erstellen, die lauten "Qualitätskontrolle Eingabe" und "QC Langzeitbetrachtung". Hier steht in N22 "erfüllt" oder "nicht erfüllt". Und wenn das erscheint, dann sollen diesmal die Zellen P5 und C10:C11 in "QC Langzeitbetrachtung" in Spalte 2 B, Zeile 2 untereinander kopiert werden, fortlaufend, wenn neue Werte dazukommen.
Ich habe auch eine Datei angehängt, wie es momentan aussieht.
https://www.herber.de/bbs/user/110090.xlsm
Kann ich das Makro einfach kopieren? Wie weise ich ihm zu, das das eine Makro sich auf die einen Tabellenblätter bezieht, und das andere dann auf die anderen beiden? Und er jetzt nicht versucht das eine Makro bei den falschen Tabellenblättern anzuwenden? Wie löst sich das elegant?
Danke, liebe Grüße Maria
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
noch aktuell?
21.12.2016 17:13:57
Michael
Hi Maria,
wenn nicht noch x weitere Blätter mit ähnlicher Verarbeitung hinzukommen, kopierst Du einfach das bisherige Sub Kopieren() ins Modul vom neuen Eingabeblatt, benennst sie um (etwa Kopieren2) und machst die entsprechenden Änderungen (also statt .resize(8,1) nur .resize(2,1) usw.).
Aufgerufen wird es dort dann mit dem neuen Namen, eben call Kopieren2.
Bei "vielen" weiteren Blättern ist es wohl eleganter, die Sub Kopieren mit Parametern zu versehen:
' die dann in ein allg. Modul, z.B. Modul1
Sub KopierenVariabel(Blatt As String, R1 As String, R2 As String)
' die Definition von Blatt Li ist überflüssig, da das aktive Blatt
' immer das ist, wo das Worksheet_Change - Ereignis stattgefunden hat.
Dim La As Worksheet
Dim ls As Long
' On Error Resume Next ' Laß das drin, sonst siehst Du nie, daß Fehler waren
Set La = Sheets(Blatt)
ls = La.Cells(2, Columns.Count).End(xlToLeft).Column + 1
La.Cells(2, ls) = Range(R1)
La.Cells(3, ls).Resize(Range(R2).Count, 1) = Range(R2).Value
MsgBox "Daten wurden kopiert"
End Sub

Aufruf im Change-Ereignis dann etwa so:
Call KopierenVariabel("LIC Langzeitbetrachtung", "H5", "C10:C17")
Schöne Grüße,
Michael
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige