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

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

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

357 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige