Range eines Arbeitsblattes definieren ??
Liebe Leute,
bitte um eure Hilfe bezüglich der untenstehenden Makro. Diese Makro funktioniert zwar, nur werden die Arbeitsblætter nicht vollstændig kopiert.
Bitte um Erweiterungsvorschlæge für diese Makro mit der folgenden Kriterie.
1) Die Tabelle soll angefangen von A4 bis F4 und nach unten bis zur letzten reihe im A bis F kopiert werden.
Private Sub Workbook_Open()
Dim trz As Integer
Dim sayToplam As Integer
Dim i As Integer
Sheets("yedek").Range("A1:LA65536").ClearContents
For i = 1 To 2 'sayfa sayısı
trz = WorksheetFunction.CountA(Worksheets(Worksheets(i).Name).Range("A4:F4"))
sayToplam = WorksheetFunction.CountA(Worksheets("yedek").Range("A:A"))
Worksheets(Worksheets(i).Name).Range("A4:F" & trz).Copy _
Worksheets("yedek").Range("A" & sayToplam + 1)
Next i
End Sub
Danke im Voraus für eure Bemühungen und Lösungsvorschlæge.
Lg.
Ali
bitte um eure Hilfe bezüglich der untenstehenden Makro. Diese Makro funktioniert zwar, nur werden die Arbeitsblætter nicht vollstændig kopiert.
Bitte um Erweiterungsvorschlæge für diese Makro mit der folgenden Kriterie.
1) Die Tabelle soll angefangen von A4 bis F4 und nach unten bis zur letzten reihe im A bis F kopiert werden.
Private Sub Workbook_Open()
Dim trz As Integer
Dim sayToplam As Integer
Dim i As Integer
Sheets("yedek").Range("A1:LA65536").ClearContents
For i = 1 To 2 'sayfa sayısı
trz = WorksheetFunction.CountA(Worksheets(Worksheets(i).Name).Range("A4:F4"))
sayToplam = WorksheetFunction.CountA(Worksheets("yedek").Range("A:A"))
Worksheets(Worksheets(i).Name).Range("A4:F" & trz).Copy _
Worksheets("yedek").Range("A" & sayToplam + 1)
Next i
End Sub
Danke im Voraus für eure Bemühungen und Lösungsvorschlæge.
Lg.
Ali
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 265546
Url: https://administrator.de/forum/range-eines-arbeitsblattes-definieren-265546.html
Ausgedruckt am: 05.05.2025 um 18:05 Uhr
10 Kommentare
Neuester Kommentar

With Worksheets(Worksheets(i).Name)
.Range("A4:F" & .Cells(Rows.Count,1).End(xlUp).Row).Copy Worksheets("yedek").Range("A" & Worksheets("yedek").Cells(Rows.Count,1).End(xlUp).Row +1)
End with
p.s. hatten wir gerade schon hier:
Bereich Markieren und Kopieren (Verständnis)

Also, Ali von'e schleuse ...
Geht problemlos wenn man es denn richtig anwendet
Hier mal dein gebümmsel optimiert ....
Gruß jodel32
http://de.m.wikibooks.org/wiki/VBA_in_Excel
http://www.herber.de/mailing/Die_letzte_Zeile_des_aktiven_Blattes_in_an ...
Geht problemlos wenn man es denn richtig anwendet
Hier mal dein gebümmsel optimiert ....
Private Sub Workbook_Open()
Dim wsTarget as Worksheet
' Zielsheet definieren
set wsTarget = Worksheets("yedek")
' Inhalt des Zielsheets löschen
wsTarget.UsedRange.Clear
' Inhalte der Ranges A4:Fx von Sheets 1-2 ins Zielsheet untereinander kopieren
For i = 1 To 2
With Worksheets(i)
.Range("A4:F" & .UsedRange.SpecialCells(xlCellTypeLastCell).Row).Copy Destination:=wsTarget.Cells(wsTarget.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1, 1)
End with
End Sub
tut mir sehr leid für diese Fragen aber kenn mich mit VBA überhaupt nicht aus.
Wie wärs dann mal mit einem Kurs für die Grundlagen ?!http://de.m.wikibooks.org/wiki/VBA_in_Excel
http://www.herber.de/mailing/Die_letzte_Zeile_des_aktiven_Blattes_in_an ...

die Makro funktioniert zwar, nur wird beım ersten arbeitsblatt nur die erste Zeile genommen
Wo ist denn auf dem ersten Blatt in Spalte A die letzte Zelle mit einem Wert ? Wenn in Spalte A nur ein Wert in Zeile 150 steht und darunter nichts mehr kommt dann wäre das Verhalten klar.Willst du die Absolut letzte belegte Zeile des Blattes ermitteln, egal ob in Spalte A nach Zeile 150 ein Wert kommt oder nicht, machst du das mit
.Range("A150:F" & .UsedRange.Rows.Count).Copy wsTarget.Cells(Rows.Count,1).End(xlUp).Offset(1,0)
p.s. Bitte nutze endlich die Code Formatierung !!!!!!!!!

Zitat von @Saphire:
Die Inhalte des zweitten Arbeitsblattes werden komplett übernommen, die Inhalte des ersten Arbeitsblattes werden mit der
letzten ænderung aber gar nicht übernommen. Ich glaube, dass ich mich am Anfang nicht genau ausgedrückt habe. İch
habe ca. 1200 Arbeitsblætter die ich untereinander kopieren muss um im Target Arbeitsblatt die Daten zu filtern.
Die Inhalte des zweitten Arbeitsblattes werden komplett übernommen, die Inhalte des ersten Arbeitsblattes werden mit der
letzten ænderung aber gar nicht übernommen. Ich glaube, dass ich mich am Anfang nicht genau ausgedrückt habe. İch
habe ca. 1200 Arbeitsblætter die ich untereinander kopieren muss um im Target Arbeitsblatt die Daten zu filtern.
Und wieso hast du dann die Schleife dann nur von 1 -2 definiert ?? Kopfschüttel !
An welcher Poition liegt dein Zielsheet ?
Leider bringst du hier zu wenig Infos aus deinen Sheets ....

die Inhalte sind leider nicht als Tabelle formatiert aber sie besitzen eine bestimmte Formatierung. Wenn möglich würde ich sie mit diesem Format übernehmen wollen.
aha, super Erklärung, und was heißt bei dir eine "bestimmte Formatierung". Range.Copy kopiert alles mit. Ich seh schon bei dir kommt man ohne Demo-Datei nicht weiter ... Biddeschön, daran kannst du's dir abschauen Demo-DateiWie du feststellen kannst geht einwandfrei !!
Dim ws As Worksheet, wsTarget As Worksheet
'Name des Zielsheets / bitte anpassen !!
strNameTargetSheet = "TARGETSHEET"
Set wsTarget = Worksheets(strNameTargetSheet)
'Zielsheet löschen
wsTarget.UsedRange.Clear
'Für jedes Sheet in der Arbeitsmappe, außer dem Zielsheet
For Each ws In Worksheets
If Not ws.Name = strNameTargetSheet Then
' kopiere die belegten Daten von A4:Fx ins Zielsheet
ws.Range("A4:F" & ws.UsedRange.SpecialCells(xlCellTypeLastCell).Row).Copy Destination:=wsTarget.Cells(wsTarget.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1, 1)
End If
Next
Gruß jodel32