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

VBA- kopieren nach Kriterium / = #WERT!

VBA- kopieren nach Kriterium / = #WERT!
26.05.2019 11:40:00
Fred

Hallo VBA Experten,
Ich möchte einen Bereich innerhalb meiner Arbeitsmappe (von "Export" nach "Plan") kopieren.
Der zu kopierende Bereich liegt in den Spalten "A:G"
Kriterium 1: ab Spalte "H" = #WERT!
Kriterium 2: bis 8 Zeilen darunter
In meiner Beispielmappe wäre der zu kopierende Bereich: "A9:G17"
https://www.herber.de/bbs/user/130030.xlsb
Könnte mal jemand bitte drauf schaun und mir schreiben, wie ich dies umsetze.
Mit freundlichen Gruß
Fred Neumann

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA- kopieren nach Kriterium / = #WERT!
26.05.2019 13:23:31
Hajo_Zi
Hallo Fred,
Option Explicit
Sub Kopieren()
Dim LoZeile As Long
Dim LoI As Long
LoZeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
For LoI = 2 To LoZeile
If IsError(Cells(LoI, 8)) Then
Exit For
End If
Next LoI
Worksheets("Export").Range(Cells(LoI - 1, 1), _
Cells(LoZeile, 7)).Copy Worksheets("Plan").Range("A2")
End Sub

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Erfüllt nicht die Vorgaben. o.w.T.
26.05.2019 14:00:04
Werner
Warum ohne Formeln?
26.05.2019 14:05:11
Werner
Hallo Fred,
warum stellst du hier eine Datei ein, ohne jegliche Formeln? Die Ausgabe in der Originaldatei resultiert ja wohl aus einer sochen.
Da würde ich dann eher in der Formel mit WENNFEHLER arbeiten und bei auftreten des Fehlers ein "" (leer) ausgeben lassen.
Zum kopieren könnte man dann mit Find arbeiten. Das dürfte, auf alle Fälle dann, wenn es sich um eine umfangreiche Datei handelt, auf alle Fälle schneller sein als die Zellen in einer Schleife abzuklappern.
Zeig doch mal die Originaldatei mit den Formeln.
Gruß Werner
Anzeige
AW: VBA- kopieren nach Kriterium / = #WERT!
26.05.2019 14:15:50
Daniel
Hi
Sheets("Export").Columns(8).Cells.SpecialCells(xlCellTypeConstants, 16).Offset(0, -7).Resize(9, 7).Copy Sheets("plan").Cells(2, 1)
Gruß Daniel
Feiner Einzeiler...
26.05.2019 14:40:53
Werner
Hallo Daniel,
...SpecialCells habe ich irgendwie nie auf dem Schirm.
Gruß Werner
Dafür ist so ein Forum ja da, um sich sowas
26.05.2019 14:52:14
Daniel
mal wieder ins Gedächtnis zu rufen.
btw. mit

.Find(what:="#VALUE!", LookIn:=xlValues)

gehts genauso gut und müsste unabhängig davon funktionieren, ob die Werte noch als Formel oder als Fixierte Formelergebnisse in den Zellen stehen.
Gruß Daniel
AW: VBA- kopieren nach Kriterium / = #WERT!
26.05.2019 15:00:17
Fred
Danke Hajo, Werner & Daniel
für das feedback.
Der Code von Hajo hat leider nicht das gewünschte Ergebnis gebracht,- Daniel`s VBA hat gefunzt!!
Werner, ich wollte da nichts "verstecken" und habe mir dabei nicht viel gedacht, dass ich die Formeln mit Werten überschreibe ....
Meine Mappe(n) sind recht umfangreich und der Eintrag #WERT! stöhrt eigentlich überhaupt nicht, da die Zeilen ab einem gewissen Ergebnis meiner Berechnungen ohnehin total gelöscht werden,- brauche also nicht die Formeln mit WENNFEHLER .. ergänzen.
Bitte gestattet mir darauf eine Anschlussfrage;
mit diesem Code
On Error Resume Next
Set rERR = Columns(8).SpecialCells(xlCellTypeConstants, 16)
On Error GoTo 0
If Not rERR Is Nothing Then
Range(rERR, Cells(Rows.Count, 1)).EntireRow.Delete
End If
lösche ich die Zeilen
1) ab dem ersten Wert #WERT! in Spalte 8
2) die darunter liegenden Zeilen
Meine Frage:
In zukünftigen Ausführungen möchte ich, dass nicht ab dem ersten #WERT! in Spalte 8 die darunter liegenden Zeilen gelöscht werden, sondern das ab dem ersten #WERT! in Spalte 8
4 Zeilen weiter unten das löschen beginnt.
Also, habe ich meinen ersten #WERT! in Zeile 9, soll erst ab Zeile 13 und darunter gelöscht werden.
Wie ändere ich dies im Code?
Gruß
Fred
Anzeige
AW: VBA- kopieren nach Kriterium / = #WERT!
26.05.2019 15:23:04
Werner
Hallo Fred,
hier mal mit Find, da ich das jetzt schon hatte.
Public Sub Kopieren()
Dim raFund As Range, loLetzte As Long
With Worksheets("Export").Columns(8)
loLetzte = .Cells(.Rows.Count, 8).End(xlUp).Row
Set raFund = .Find(what:="#VALUE!", LookIn:=xlValues, lookat:=xlWhole)
If Not raFund Is Nothing Then
raFund.Offset(, -7).Resize(9, 7).Copy Worksheets("Plan").Cells(2, 1)
raFund.Offset(4).Resize(loLetzte - 4).EntireRow.Delete
Else
MsgBox "Keine Fehlerwerte vorhanden."
End If
End With
Set raFund = Nothing
End Sub
Gruß Werner
AW: VBA- kopieren nach Kriterium / = #WERT!
27.05.2019 14:21:59
Fred
Hallo Werner,
danke für die à la "Find" Option - funktioniert!
Daniel`s Ergänzung aber unschlagbar :-)
Gruß
Fred
Anzeige
AW: VBA- kopieren nach Kriterium / = #WERT!
26.05.2019 15:35:21
Hajo_Zi
Hallo Fred,
in der hochgeladenen Datei schon.
Gruß Hajo
eben nicht. o.w.T.
26.05.2019 17:20:54
Werner
AW: VBA- kopieren nach Kriterium / = #WERT!
26.05.2019 23:04:20
Daniel
Hi
Range(rErr.Offset(4, 0), ...
Gruß Daniel
AW: VBA- kopieren nach Kriterium / = #WERT!
27.05.2019 14:43:55
Fred
Danke Daniel,
deine Ergänzung knackig kurz und passt!
Gruß
Fred
Danke für dein Feedback
29.05.2019 22:58:10
Daniel
Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige