Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

einzelne Zellen in anderes Blatt kopieren

einzelne Zellen in anderes Blatt kopieren
15.09.2017 16:54:46
Thomas
Hallo zusammen,
ich beschäftige mich seit kurzem mit den Möglichkeiten von VBA Makros, da ich für einige Operationen die ich in Excel ausführen wollte,ohne nicht mehr auskam. Da ich in den vorhandenen Forumsbeiträgen leider keine funktionierende Lösung für mein aktuelles Problem gefunden habe, wende ich mich nun an euch.
Aufgabenstellung:
Ich habe eine Arbeitsmappe mit mehreren Arbeitsblättern, jetzt würde ich gerne von Blatt "RTI" die Werte aus Spalte "C" in die erste freie Zeile von Spalte "A" von Arbeitsblatt "Fortschrittsüberwachung" kopieren, sofern in Spalte "BG" aus dem Arbeitsblatt "RTI" ein "ja" steht.
Ich hoffe ihr könnt mir weiterhelfen. Schonmal vielen Dank im Voraus!
Gruß Thomas

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: einzelne Zellen in anderes Blatt kopieren
15.09.2017 16:57:45
Hajo_Zi
Halo Thomas,
das geht nicht da eine Spalte 1.048.576 Zelle hat und eine Zeile nur 16.384 Zellen.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
AW: einzelne Zellen in anderes Blatt kopieren
15.09.2017 17:07:54
Thomas
Danke für die schnelle Rückmeldung,
leider kann ich nicht nachvollziehen, was die Zellenbegrenzung von Excel mit meinem Problem zutun hat, da ich ja theoretisch nur ausgewählte Werte aus Spalte1 von Blatt1 nach Spalte2 von Blatt2 kopieren möchte, sofern die geforderte Bedingung erfüllt ist.
Gruß Thomas
Anzeige
AW: einzelne Zellen in anderes Blatt kopieren
15.09.2017 17:14:51
Hajo_Zi
Hallo Thomas,
lies den ersten Beitrag
Werte aus Spalte "C" 

da steht Spalte C nichts von ausgefüllten Zellen und darauf bezog sich meine Antwort.
Gruß Hajo
AW: einzelne Zellen in anderes Blatt kopieren
15.09.2017 17:28:54
Thomas
Hallo Hajo,
danke für den Hinweis, aufgrund fehlender Programmiererfahrung mit VBA fehlt mir scheinbar noch ein bißchen das Gefühl für kleine aber entscheidende Ergänzungen in meinen Problembeschreibungen. Daher nochmal die korrigierte Aufgabenstellung.
Aufgabenstellung:
Ich habe eine Arbeitsmappe mit mehreren Arbeitsblättern, jetzt würde ich gerne von Blatt "RTI" den Zelleninhalt aus Spalte "C" (nur die nicht leeren Zellen) in die erste freie Zeile von Spalte "A" von Arbeitsblatt "Fortschrittsüberwachung" kopieren, sofern in Spalte "BG" aus dem Arbeitsblatt "RTI" ein "ja" steht und somit die geforderte Bedingung erfüllt. Das Makro sollte so gestaltet sein, dass es bei wiederholtem Aufruf überprüft, ob der Wert schon in Spalte "A" von Blatt "Fortschrittsüberwachung" eingetragen ist, sodass keine Doppeleintragungen möglich sind. Sollte der Wert noch nicht eingetragen sein, weil die Bedingung in Spalte "BG" erst nach dem letzten Makrodurchlauf verändert wurde, soll dieser Wert nun beim nächsten Durchlauf in die erste freie Zelle von Spalte "A" auf Blatt "Fortschrittsüberwachung" kopiert werden.
Ich hoffe meine Vorstellung ist so eindeutiger.
Gruß Thomas
Anzeige
AW: einzelne Zellen in anderes Blatt kopieren
15.09.2017 17:39:46
Werner
Hallo Thomas,
es wäre schön gewesen alle Bedingungen gleich von Anfang an zu wissen. Hier jetzt noch mit Prüfung, ob die Zelle in Spalte C leer ist oder nicht und nach dem Kopiervorgang werden dann noch im Zielblatt die Duplikate entfernt.
Option Explicit
Public Sub Kopieren()
Dim loLetzteQ As Long, loLetzteZ As Long, i As Long
Dim wsQuelle As Worksheet, wsZiel As Worksheet
Set wsQuelle = Worksheets("RTI")
Set wsZiel = Worksheets("Fortschrittsüberwachung")
loLetzteQ = wsQuelle.Cells(wsQuelle.Rows.Count, 3).End(xlUp).Row
loLetzteZ = wsZiel.Cells(wsZiel.Rows.Count, 1).End(xlUp).Row + 1
With wsQuelle
For i = 2 To loLetzteQ
If .Cells(i, 3)  "" Then
If .Cells(i, 59) = "ja" Then
wsZiel.Cells(loLetzteZ, 1) = .Cells(i, 3)
loLetzteZ = loLetzteZ + 1
End If
End If
Next i
End With
With wsZiel
loLetzteZ = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("A2:A" & loLetzteZ).RemoveDuplicates Columns:=1, Header:=xlNo
End With
Set wsQuelle = Nothing
Set wsZiel = Nothing
End Sub
Gruß Werner
Anzeige
AW: einzelne Zellen in anderes Blatt kopieren
15.09.2017 17:52:41
Thomas
Super vielen Dank! Das Makro funktioniert genauso wie ich mir das vorgestellt habe.
Schönes Wochenende Gruß
Thomas
Gerne u.Danke für die Rückmeldung. o.w.T.
15.09.2017 17:55:35
Werner
AW: einzelne Zellen in anderes Blatt kopieren
15.09.2017 17:24:28
Luschi
Hallo Thomas,
natürlich kannst Du das machen, aber eben nicht so wie Du das beschrieben hast:
- ganze Spalte 'C' in 1. freie Zelle von 'A' nach unten kopieren; da spielt Excel nicht mit.
Sicher willst Du nur die vorhandenen Daten unter der beschriebernen Bedingung nach 'A' kopieren.
Mache eine kleine Demo-Datei mit unverfänglichen Daten und lade sie hier hoch. Dann zeigen wir Dir das und Du kannst es im Vba-Code viel besser nachvollziehen.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: einzelne Zellen in anderes Blatt kopieren
15.09.2017 17:42:13
Thomas
Danke für die vielen Rückmeldungen.
https://www.herber.de/bbs/user/116276.xlsx
So wie in dieser Demo Datei stelle ich mir das vor.
Gruß Thomas
PS: die Lösung von Werner probiere ich jetzt direkt mal aus, vielleicht bringt mich das ja schon zum Ziel
AW: einzelne Zellen in anderes Blatt kopieren
15.09.2017 17:23:51
Werner
Hallo Thomas,
je nachdem von wievielen Zeilen in Blatt RTI auszugehen ist, wäre eine Lösung per VBA über den Autofilter und anschließendem Kopieren des Filterergebnisses schneller als die Lösung hier mit einer Schleife.
Im Übrigen bin ich davon ausgegangen, dass der Datenbereich, sowohl im Blatt "RTI" als auch im Blatt "Fortschrittsüberwachung", jeweils in Zeile zwei beginnt weil in der Zeile 1 Überschriften stehen.
Option Explicit
Public Sub Kopieren()
Dim loLetzteQ As Long
Dim loLetzteZ As Long
Dim i As Long
Dim wsQuelle As Worksheet
Dim wsZiel As Worksheet
Set wsQuelle = Worksheets("RTI")
Set wsZiel = Worksheets("Fortschrittsüberwachung")
loLetzteQ = wsQuelle.Cells(wsQuelle.Rows.Count, 3).End(xlUp).Row
loLetzteZ = wsZiel.Cells(wsZiel.Rows.Count, 1).End(xlUp).Row + 1
With wsQuelle
For i = 2 To loLetzteQ
If .Cells(i, 59) = "ja" Then
wsZiel.Cells(loLetzteZ, 1) = .Cells(i, 3)
loLetzteZ = loLetzteZ + 1
End If
Next i
End With
Set wsQuelle = Nothing
Set wsZiel = Nothing
End Sub
Gruß Werner
Anzeige
AW: Datenauszug
15.09.2017 18:55:07
Gerd
Hallo Thomas,
Field:= 59 steht für Spalte "BG"; Spalte "D" wäre Field:= 4
Sub test()
With Worksheets("RTI")
.Rows(1).AutoFilter Field:=59, Criteria1:="ja"
Intersect(.AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible), .Columns("C")).Copy _
Worksheets("TFortschrittsüberwachung").Cells(Rows.Count, 1).End(xlUp).Offset(1)
.Rows(1).AutoFilter
End With
End Sub

Gruß Gerd

327 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige