Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zeilen automatisch kopieren

Betrifft: Zeilen automatisch kopieren von: Andreas
Geschrieben am: 19.08.2004 22:26:03

Ich verzweifle an dem folgendem Skript, welches hier im Forum stand. Vieleicht kann mir ja jemand helfen?

Sub KopiereInMappe()
Dim ber As String
Dim i, lz As Long
ber = ""
lz = Range("A65535").End(xlUp).Row
For i = 1 To lz
If Cells(i, 3).Value >= 0.1 Then
ber = ber & i & ":" & i & ","
End If
Next i
If ber = "" Then
MsgBox "keine Zeile markiert!"
Exit Sub
End If
ber = Left(ber, Len(ber) - 1)
Range(ber).Copy
Workbooks.Add
ActiveSheet.Paste
ActiveSheet.Range("A:A").Delete
Range("A1").Select
End Sub



Eigentlich hat es, bei geringer, zu kopierender Zeilenanzahl wunderbar funktioniert. Da die Datenbank jetzt grösser ist, wird mehr markiert. Leider verursacht das Skript bei mehr als 25 Einträgen in der Datenbank einen Laufzeitfehler in der Zeile "Range(ber).Copy".
Hier kurz die Funktion des Skriptes:

Bestimmte Zeilen werden markiert mit 1 ; wenn 1 dann komplette Zeile in ein neues Arbeitsblatt oder eine neue Arbeitsmappe kopieren. Ansonsten weiter. Schön ist es, wenn Formatierungen mit übernommen werden. Aber das ist nicht nötig.

Kann mir bitte jemand helfen? Andreas
  


Betrifft: Union ist das Stichwort von: Boris
Geschrieben am: 20.08.2004 00:46:41

Hi Andreas,

in dem Code wird der Bereich als Aneinanderreihung von Zelladressen definiert, die wiederum in einem String verkettet werden.
Das geht nur bis zu ner gewissen - sehr kleinen - Anzahl gut.

Wesentlich besser ist es sicherlich, die Bereiche per 'Union' zusammenzufügen. Schau mal diesbezüglich in die VBA-Hilfe.
Alternativ:
Jeden Treffer direkt übertragen - ohne einen Gesamtbereich zu kreieren.

Grüße Boris


 

Beiträge aus den Excel-Beispielen zum Thema "Zeilen automatisch kopieren"