Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1100to1104
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-Datenübernahme schlägt fehl

VBA-Datenübernahme schlägt fehl
Sascha
Hallo liebe Excel-Profis,
in einer Datenbank nutze ich zum Auflisten aller gespeicherten Datensätze folgenden VBA-COde:
Private Sub Worksheet_Activate()
'Zielblatt muss immer die höchste Nr. haben!
Dim i As Long
Dim j As Long
On Error GoTo Fehler
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row).ClearContents
ActiveSheet.Columns("C").ClearContents
ActiveSheet.Columns("D").ClearContents
ActiveSheet.Columns("E").ClearContents
ActiveSheet.Columns("F").ClearContents
ActiveSheet.Columns("G").ClearContents
ActiveSheet.Columns("H").ClearContents
ActiveSheet.Columns("AA").ClearContents
ActiveSheet.Columns("AB").ClearContents
With ActiveSheet
For i = 1 To ActiveWorkbook.Sheets.Count - 1 Step 1
Sheets(i).Range("C206:C386").Copy
.Cells(Rows.Count, "B").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Sheets(i).Range("N206:N386").Copy
.Cells(Rows.Count, "C").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Sheets(i).Range("L206:L386").Copy
.Cells(Rows.Count, "D").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Sheets(i).Range("I206:I386").Copy
.Cells(Rows.Count, "E").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Sheets(i).Range("J206:J386").Copy
.Cells(Rows.Count, "F").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Sheets(i).Range("G4:G184").Copy
.Cells(Rows.Count, "G").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Sheets(i).Range("D206:D386").Copy
.Cells(Rows.Count, "H").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Sheets(i).Range("V209:V380").Copy
.Cells(Rows.Count, "AA").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
On Error Resume Next
Selection.SpecialCells(xlCellTypeBlanks).Delete xlUp
On Error GoTo Fehler
Sheets(i).Range("W209:W380").Copy
.Cells(Rows.Count, "AB").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
On Error Resume Next
Selection.SpecialCells(xlCellTypeBlanks).Delete xlUp
On Error GoTo Fehler
Sheets(i).Range("AC209:AC380").Copy
.Cells(Rows.Count, "AC").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
On Error Resume Next
Selection.SpecialCells(xlCellTypeBlanks).Delete xlUp
On Error GoTo Fehler
Next i
End With
Fehler:
Application.CutCopyMode = False
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
ActiveSheet.Range("A1").Select
End Sub

Dieser Code kopiert mir alle notwendigen Daten aus den Spalten der Arbeitsblätter in das letzte Arbeitsblatt der Mappe und listet mir diese untereinander auf.
Bisher ging das soweit ganz gut.
Als ich den aktuellen Datensatz einpflegen wollte, wirft er mir aber nur noch die Daten aus dem ersten Arbeitsblatt der Mappe aus, die anderen werden gekonnt ignoriert.
Da ich mich mit VBA leider gar nicht auskenne hier die Frage an euch, woran das liegen kann.
Am Format der Quelldaten hat sich nichts geändert, wenn ich andere Daten eintrage (z.B. Daten die bereits in der Datenbank vorhanden sind), kommt das gleiche Problem.
Hat jemand eine Idee für mich?
Vielen Dank für eure Hilfe,
Sascha

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA-Datenübernahme schlägt fehl
12.09.2009 20:02:16
fcs
Hallo Sascha,
ohne Informationen zu deiner Datei und insbesondere unter welchem Tabellenblatt diese Prozedur eingefügt ist kann man da wenig sagen. Auch wenn das für eine Datenbank (bei einem Datensatz pro Tabellenblatt und derartiger Streuung der Daten spricht man üblicherweise nicht von Datenbank) ziemlich "wilde" Kopieraktionen sind, scheint es ja im Prinzip zu funktionieren.
Wenn ich das Makro richtig lese, dann soll es ausgeführt werden, wenn man das Blatt aktiviert in dem die Daten zusammengefasst werden. Scheinbar wird jetzt aus welchem Grund auch immer eine der vielen "On Error Goto Fehler" Anweisungen nach beim Kopieren der Daten aus dem 1. Blatt ausgeführt und somit das Makro vorzeitig beendet.
Übrigens kopiert dein Makro auch Daten aus der Spalte AC der Blätter in die Spalte AC der Datenzusammenfassung.
Der Inhalt dieser Spalte wird aber nicht beim Start des Makros gelöscht. Es könnte also sein, dass die Spalte AC fast bis zur letzten Zeile mit Daten gefüllt ist und jetzt keine weiteren Daten mehr unterhalb der Daten eingefügt werden können.
Gruß
Franz
Anzeige
AW: VBA-Datenübernahme schlägt fehl
12.09.2009 20:15:34
Sascha
Hi fcs,
vielen Dank für den Tip, ist mir bisher noch gar nicht aufgefallen ;)
Offensichtlich lag es daran, weil er jetzt ohne probleme wieder alles filtert.
Vielen dank dafür.
LG
Sascha

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige