PDA

Vollständige Version anzeigen : VBA Bereich auswaehlen bis Zelle aus Zelle


maikoha
03.07.2014, 11:29
Hallo,

folgendes ExcelProblem beschaeftigt mich aktuell:

Ich moechte aus vielen Tabellenblaettern einer Excel-Datei jeweils einen bestimmten Bereich untereinander kopieren. Der Bereich betrifft Zeilen: Von Zeile 1 bis Zeile X (Dieser Wert X steht zB. in Zelle B2).
Funktionsbeschreibung: Erstelle "neues Blatt" - Gehe in Arbeitsblatt1 und kopiere Zeile "1" bis Zeile "Wert der in Zeile "B2" steht" - fuege in "neues Blatt" nach letzter Zeile ein - Gehe in Arbeitsblatt2 usw.

Ich hoffe mal das ist soweit klar ausgedrueckt.

Ich arbeite mit folgendem Code:

Dim i As Integer
Dim rgQuelle As Range
Dim rgZiel As Range
Dim lngZielZeile As Long
Dim wsZiel As Worksheet

With ActiveWorkbook
.Worksheets.Add Before:=.Worksheets(1)
Set wsZiel = ActiveSheet
lngZielZeile = 1

For i = 3 To .Worksheets.Count
If .Worksheets(i).Name <> wsZiel.Name Then
With .Worksheets(i)
Set rgQuelle = .Rows("1:" & .Columns("A").Cells.Find("*", .Range("A1"), xlFormulas, xlWhole, xlByColumns, xlPrevious).Row)
End With

Set rgZiel = wsZiel.Cells(lngZielZeile, "A")
rgQuelle.Copy Destination:=rgZiel
lngZielZeile = lngZielZeile + rgQuelle.Rows.Count
End If
Next i
End With

Die fett markierte Zeile liest im Moment noch den benutzten Bereich aus.
Ich habe versucht sie so umzuschreiben:
Set rgQuelle = .Rows("1:" & .Rows(Cells(2, 2)))
Das klappt aber leider nicht.

Habt ihr einen Vorschlag?
Im Voraus schon Danke!

PS: Ich weis es gibt noch viele ander Codes, um Blaetter untereinander zu kopieren. Aber nur bei diesem wird meine bedingte Formatierung, die ich den einzelnen Arbeitsblaettern habe, auch korrekt mitkopiert.

Hasso
03.07.2014, 16:09
Hallo maikoha,

warum ist es eigentlich so schwer für die Hilfesuchenden zu verstehen, dass von uns ständig darum gebeten wird, eine Mustermappe hochzuladen. Aus einem Codeschnipsel die zugehörige Tabelle zu basteln ist extrem aufwändig und ich habe dazu auch keine Lust, wenn diese Tabelle bei dir schon existiert.

Du bittest schließlich um Hilfe und ich leiste diese auch gerne, aber ein Minimum an Eigeninitiative wäre da schon sehr angenehm.

maikoha
04.07.2014, 11:24
Danke fuer das Angebot, aber hat sich schon erledigt. Einfach eine Variable definieren und dann darueber den Zellenwert einlesen.