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

Nur bestimmte werte kopieren

Nur bestimmte werte kopieren
23.11.2022 13:33:41
David
Hallo Excelfreunde,
ich benötige eine Makro, die alle Werte 0 aus der Spalte BF kopiert , alle ''0'' Werte aus der Spalte BF überspringt und die aus der Spalte BF kopierte Werte in der Spalte AF einfügt.
Der erste Wert nach dem Überschriften befindet sich in der Zelle BF6.
Ich habe es selber versucht aber leider ohne Erfolg.
Kann mir bitte jemand helfen?
Danke im Voraus.

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur bestimmte werte kopieren
23.11.2022 14:03:39
Yal
Hallo David,
Wenn nur Wert (und nicht Formeln) kopiert werden sollen, dann so:

Sub Kopieren()
Dim Z As Range 'Z wie Zelle
Application.ScreenUpdating = False
Applicaiton.EnableEvents = False
With Worksheets("xyz")
For Each Z In Range(.Range("BF1"), .Cells(Rows.Count, "BF").End(xlUp)).Cells
If Z.Value  0 Then Z.Offset(0, -1) = Z.Value
Next
End With
Applicaiton.EnableEvents = True
Application.ScreenUpdating = True
End Sub
VG
Yal
AW: Nur bestimmte werte kopieren
23.11.2022 14:47:04
David
Hallo Yal,
ich habe es versucht aber es hat leider nicht funktioniert :(.
Ich bekomme diesen Fehler :
"Lauzeitsfehler 424"
Objekt erforderich
VG
Anzeige
AW: Nur bestimmte werte kopieren
23.11.2022 15:49:34
Yal
Hallo David,
diese Fehler kommt nicht einfach so, sondern auf eine bestimmten Zeile. Diese bestimmte Zeile ist wahrscheinlich sehr ähnlich wie eine andere Zeile, die nicht angemekert worden ist. Dann kann man die beiden "vergleichen". Und vielleicht entdecken, dass in eine "Application" steht und in die andere "Applicaiton".
Wir können ein Fahrrad zur Verfügung stellen, aber für das Ausbalancieren musst Du selber sorgen. Denn niemand wird neben Dir mitlaufen ;-)
VG
Yal
AW: Nur bestimmte werte kopieren
23.11.2022 14:10:55
GerdL
Hallo David,
eine weitere Variante zum Testen.

Sub Unit()
Dim C As Range, R As Range
For Each C In Range(Cells(6, 58), Cells(Rows.Count, 58).End(xlUp)).Cells
If IsNumeric(C.Text) Then
If C  0 Then
If R Is Nothing Then
Set R = C
Else
Set R = Union(R, C)
End If
End If
End If
Next C
If Not R Is Nothing Then
For Each C In R.Areas
Call C.Copy
Call C.Offset(, -26).PasteSpecial(Paste:=pastexlvalues)
Application.CutCopyMode = False
Next
Set R = Nothing
End If
End Sub
Gruß Gerd
Anzeige
AW: Nur bestimmte werte kopieren
23.11.2022 14:52:14
David
Hallo Gerd,
es hat leider nicht funktioniert :(
ich habe diesen Fehler bekommen:
Fehler beim Kompilieren
Variable nicht definiert
VG David
AW: Nur bestimmte werte kopieren
23.11.2022 15:29:24
GerdL
Hallo David,
ändere
Call C.Offset(, -26).PasteSpecial(Paste:=xlPasteValues)
Gruß Gerd
AW: Nur bestimmte werte kopieren
23.11.2022 15:57:02
David
Hallo Gerd,
es hat nun funktioniert.
Ich hätte noch bitte eine kleine Frage und zwar, was müsste ich in dem Code ändern, um die Werte in der Spalte AH anstatt AF zu kopieren?
Danke schon mal
Grüß David
AW: Nur bestimmte werte kopieren
23.11.2022 16:03:49
GerdL
Hallo David,
nimm beim Offset dann statt -26 nur -24
Gruß Gerd
AW: Nur bestimmte werte kopieren
23.11.2022 16:12:20
David
Hallo Gerd,
genau das habe ich getan. Danke für die schnelle Rückmeldung und die Hilfe.
Gruß David
Anzeige
AW: Nur bestimmte werte kopieren
23.11.2022 16:08:09
David
Ich habe das mit Spalte ändern selber gelöst. Nochmal Vielen Dank!!!
Gruß David
AW: Nur bestimmte werte kopieren
23.11.2022 15:13:56
Daniel
Hi
ich würde erstmal alles kopieren und dann die 0-Werte löschen:

Range("BF:BF").Copy
Range("AF1").PasteSpecial xlpastevalues
With Range("AF:AF")
.Replace "0", True, xlwhole
if Worksheetfunction.Countif(.cells, True) > 0 Then  .SpecialCells(xlcelltypeconstants, 4).Delete shift:=xlup
end with
wenn die 0-Werte nur gelöscht werden sollen ohne das die anderen Werte nach oben rutschen, dann ersetze das .Delete Shift:=xlup durch .ClearContents
Gruß Daniel
Anzeige
AW: Nur bestimmte werte kopieren
23.11.2022 15:33:24
Daniel
bzw, wenn die Zellen, die nicht 0 enthalten die Zeile behalten und nicht nach oben rutschen sollen, dann reicht:

Range("BF:BF").Copy
Range("AF1").PasteSpecial xlpastevalues
Range("AF:AF").Replace "0", "", xlwhole
Gruß Daniel
AW: Nur bestimmte werte kopieren
23.11.2022 15:21:47
Daniel
als reine VBA-Lösung so

dim arr1, arr2
dim z1 as long, z2 as long
arr1 = Range("BF6:BF" & cells(rows.count, "BF").End(xlup).row).value
redim arr2(1 to ubound(arr1, 1), 1 to 1)
for z1 = 1 to ubound(arr1, 1)
if arr1(z1, 1)  0 then
z2 = z2 + 1
arr2(z2, 1) = arr1(z1, 1)
end if
next
Range("AF6").Resize(ubound(arr2, 1), 1) = arr2
Gruß Daniel
Anzeige
AW: Nur bestimmte werte kopieren
23.11.2022 15:46:39
David
Hallo Daniel,
die Makro funktioniert zwar aber macht leider noch nicht ganz, was ich möchte. Ich möchte, dass die kopierte Werte aus der Spalte BF nur in den dazugehörigen Zellen in der Spalte AF kopiert werden. ( BF6 in AF6, BF18 in AF18, BF1001 in AF1001 usw. )
ginge es auch?
Danke im Voraus
AW: Nur bestimmte werte kopieren
23.11.2022 16:08:33
Daniel
Hi
wenn die Zellen mit 0 im Ziel leer bleiben sollen, kannst du hier einfach folgendes verwenden:

 arr2(z1, 1) = arr1(z1, 1)
also mach aus dem z2 ein z1, dann werden die Daten im Zielarray in die gleiche Zeile geschrieben wie im Quellarray,
das z2 = z2 + 1 kannst du dann auch weglassen
Gruß
Anzeige

322 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige