Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
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

Inhalt nur kopieren wenn Zellwert<>""

Inhalt nur kopieren wenn Zellwert<>""
15.01.2022 00:16:48
Markus
Nabend zusammen,
ich suche nach folgender Lösung:
Ich habe Spalte A1:A10 und B1:B10 in Tab1
Dort stehen in unregelmäßigen Abständen Werte drin.
Diese Werte sollen in Spalte C1:C10 und E1:E10 in Tab2 kopiert werden.
Jetzt enthalten die Zellen C1:C10 und E1:E10 0 aber Formeln.
Wenn in A1 ein Wert steht, soll dieser nach B1 kopiert werden.
Wenn A2 = LEER dann soll kein Wert kopiert werden.
Bei einem normalen copy-paste werden diese Werte ja überschrieben.
Wie ich die ganze Sache mit Schleifen machen kann weiss ich (äussere Schleife geht die Header durch und die innere von Zeilen 1 bis 10)
Die Frage ist: Könnte man das auch mit Arrays machen, da dies vermutlich schneller geht?
Array einlesen müsste so gehen:
Dim Array() As Variant
Array = Range("A1:A10")
Nur wie bekomme ich den Array in Tab2 in B1:B10 ausgelesen und nur die Daten eingetragen, dessen Zellen ungleich "" sind?
Oder gibt es eine Paste-Variante, die nur Daten von gefüllten Zellen kopiert?
Wie immer: Freu mich über jeden Hinweis.
Vielen herzlichen Dank
Markus

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt nur kopieren wenn Zellwert<>""
15.01.2022 00:36:40
GerdL
Hallo Markus,
obwohl es mir bei deinen Level-Angaben "Profi/gut" sehr schwer fällt:
In eine Zelle geht immer nur entweder eine Formel oder ein konstanter Wert.
D.h. mit Eintrag eines Wertes per VBA entfernst du in der Zielzelle eine darin vorhandene Formel
genauso wie beim manuellen Kopieren.
Dies vorausgesetzt, was möchtest du jetzt genau haben?
Gruß Gerd
AW: Inhalt nur kopieren wenn Zellwert<>""
15.01.2022 01:41:13
Markus
Hi Gerd,
die genaue Herausforderung ist:
Ich habe eine Tabelle mit 100 Spalten und ca 2000 Zeilen als Quelle.
Von diesen 200.000 Zellen sind aber nur immer ca 1 % gefüllt.
Ich möchte jetzt diese Daten in eine neue Tabelle übertragen.
Die Reihenfolge der Spalten in Tabelle 2 ist komplett unterschiedlich zu Tabelle 1.
Die Daten anhand der Header von Tabelle 1 zu Tabelle 2 zu kopieren ist kein Problem.
Nur in Tabelle 2 sind einige Spalten mit Formeln hinterlegt.
Jetzt habe ich in Spalte A nur die Zelle A1, A100, A1900 mit Werten.
Der aktuell eingesetzte Befehl, die Daten dann zu kopieren ist wie folgt:
Sheets(QUELLE).Range(SpalteQuelle & "1:" & SpalteQuelle & letztezeile).Copy
Sheets(ZIEL).Range(SpalteZiel & "1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Nur hier wird natürlich auf der Zieltabelle der Bereich in den Zeilen restlichen 1997 Zellen komplett platt gemacht.
Da stehen aber Formeln drin und die dürfen eben nur überschrieben werden, wenn Werte aus der Quelltabelle vorhanden sind.
Über ne Innere Schleife das Ganze zu lösen ist einfach. Nur anhand der schieren Menge an Zellen dauert das natürlich.
Nur meine Frage:
Gibt es eine schnellere Methode z.B. über eine andere Einfügefunktion oder über den Einsatz von Arrays?
Gruß
Markus
Anzeige
AW: Inhalt nur kopieren wenn Zellwert<>""
15.01.2022 09:03:20
{Boris}
Hi,
um Dir einen Array-Ansatz zu liefern - hier mal genau für Deine Beschreibung. Die Codenamen der Tabellen (hier: Tabelle1 für Quellblatt, Tabelle2 für Zielblatt) musst Du bei Bedarf anpassen.

Option Explicit
Sub test()
Dim arr, x As Long, y As Long, z As Long
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
arr = Tabelle1.Range("A1:B10")
z = 1
For y = 3 To 5 Step 2 'Zielspalten 3 (C) und 5 (E)
For x = 1 To UBound(arr)
If arr(x, z)  "" Then
Tabelle2.Cells(x, y) = arr(x, z)
End If
Next x
z = z + 1
Next y
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End Sub
VG, Boris
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige