Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
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 Anzahl Zeilen in Makro übernehmen

VBA Anzahl Zeilen in Makro übernehmen
07.01.2021 16:48:48
Marko
Hallo,
wie kann ich in dieses Makro folgende Abfrage einbauen?
Die erste Zeile in der Tabelle "Nobilia" Spalte DC14 bis DC1000 ermitteln, deren Wert 0 ist. Als Beispiel sind die Zellen DC14 bis DC550 größer als 0. Diesen Zeilenwert (z.B. 551) möchte ich in dieses Makro einarbeiten, um das Kopieren von der Zeile 14 bis zu der ermittelten Zeile (z.B. 551) vorzunehmen.
Wie kann ich das lösen? Vielen Dank für Eure Unterstützung.
Sub Uebertragen()
Dim Daten As Variant
Dim BV As Variant
Dim raBereich As Range
Dim leereZeile
Dim X As Variant
Dim i As Long
Daten = Sheets("Nobilia").Range("DB14").Value
Application.ScreenUpdating = False
Sheets("Nobilia").Range("DB14,DC14,LA14:LH14").Copy
Sheets("BV").Activate
leereZeile = Sheets("BV").Cells(Rows.Count, 1).End(xlUp).Row + 1
For i = 1 To Sheets("BV").Cells(Rows.Count, 1).End(xlUp).Row
BV = Sheets("BV").Cells(i, 1).Value
If Daten = BV Then
X = Sheets("Nobilia").Range("DB14").Value
If WorksheetFunction.CountIf(Sheets("BV").Columns("A"), X) > 0 Then
If MsgBox("Der Block " & CStr(X) & " ist bereits vorhanden. Trotzdem einfügen?", vbYesNo) =  _
vbNo Then Exit Sub
End If
Else
Sheets("BV").Range("A" & leereZeile).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:= _
False
End If
Next
Application.CutCopyMode = False
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Anzahl Zeilen in Makro übernehmen
07.01.2021 17:13:16
onur
"um das Kopieren von der Zeile 14 bis zu der ermittelten Zeile (z.B. 551) vorzunehmen" - und WOHIN ?
VBA Anzahl Zeilen in Makro übernehmen
07.01.2021 17:45:27
Marko
Hallo Onur,
das Makro kopiert aktuell den Wert aus dem Sheet ("Nobilia").Range("DB14,DC14,LA14:LH14").Copy in das Sheet ("BV") in die erste leere Zeile. (Sheets("BV").Range("A" & leereZeile).Select)...
Durch das Auslesen des Wertes z.B.551 möchte ich den Kopierprozess auf von "DB14,DC14,LA14:LH14" bis zur ermittelten Zeile z.B.551 "DB551,DC551,LA551:LH551"eingrenzen.
AW: VBA Anzahl Zeilen in Makro übernehmen
07.01.2021 18:45:32
onur
Am Anfang der Sub:
Dim lz, RNG
lz = WorksheetFunction.Match(0, Sheets("BV").Range("A14:A1000"), 0) + 13

Statt:

Sheets("Nobilia").Range("DB14,DC14,LA14:LH14").Copy

Das:
Set RNG = Sheets("Nobilia").Range("DB14:DB" & lz & ",DC14:DC" & lz & ",LA14:LH" & lz)
RNG.Copy

Anzeige
VBA Anzahl Zeilen in Makro übernehmen
07.01.2021 19:05:42
Marko
Vielen Dank.
Das Makro habe ich entsprechend ergänzt und in der Codezeile "lz = WorksheetFunction.Match(0, Sheets("BV").Range("A14:A1000"), 0) + 13" erhalte ich einen Laufzeitfehler 1004.
Woran kann das liegen?
Sub Uebertragen()
Dim Daten As Variant
Dim BV As Variant
Dim raBereich As Range
Dim leereZeile
Dim X As Variant
Dim i As Long
Dim lz, RNG
lz = WorksheetFunction.Match(0, Sheets("BV").Range("A14:A1000"), 0) + 13
Daten = Sheets("Nobilia").Range("DB14").Value
Application.ScreenUpdating = False
Set RNG = Sheets("Nobilia").Range("DB14:DB" & lz & ",DC14:DC" & lz & ",LA14:LH" & lz)
RNG.Copy
Sheets("BV").Activate
leereZeile = Sheets("BV").Cells(Rows.Count, 1).End(xlUp).Row + 1
For i = 1 To Sheets("BV").Cells(Rows.Count, 1).End(xlUp).Row
BV = Sheets("BV").Cells(i, 1).Value
If Daten = BV Then
X = Sheets("Nobilia").Range("DB14").Value
If WorksheetFunction.CountIf(Sheets("BV").Columns("A"), X) > 0 Then
If MsgBox("Der Block " & CStr(X) & " ist bereits vorhanden. Trotzdem einfügen?", vbYesNo) =  _
vbNo Then Exit Sub
End If
Else
Sheets("BV").Range("A" & leereZeile).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:= _
False
End If
Next
Application.CutCopyMode = False
End Sub

Anzeige
AW: VBA Anzahl Zeilen in Makro übernehmen
07.01.2021 19:06:49
onur
Poste mal die Datei.
AW: VBA Anzahl Zeilen in Makro übernehmen
07.01.2021 19:27:40
onur
Wahrscheinlich hast du keine einzige 0 im Bereich.
Mach es so:
On Error Resume Next
lz = WorksheetFunction.Match(0, Range("A14:A1000"), 0) + 13
On Error GoTo 0
If IsEmpty(lz) Then
MsgBox "Abbruch - Nix gefunden!"
Exit Sub
End If

statt
lz = WorksheetFunction.Match(0, Sheets("BV").Range("A14:A1000"), 0) + 13

VBA Anzahl Zeilen in Makro übernehmen
07.01.2021 19:42:47
Marko
Hallo Onur,
WOW, damit hattest Du recht. In dem Zellenbereich habe ich mit WENNFEHLER alles auf "" gesetzt, jetzt auf 0 und das Makro funktioniert. Vielen, vielen Dank.
Gruß, Marko
Anzeige
gerne!
07.01.2021 19:44:08
onur

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige