Veröffentlicht 11. August 201114 j Sehr geschätztes Forum, Ich beschäftige mich seit gestern mit VBA. Habe nun einen Fehler, den ich nicht zu beheben weiß. Vorab der Code: Sub ZeileKopieren() Dim i As Integer Sheets("Tabelle1").Activate For i = 2 To 1200 If Cells(i, 1).Value = "Test" Then Range(Cells(i, 1).Value, Cells(i, 256)).Select Selection.Copy Sheets("Tabelle7").Range("A1:A1200").Find("").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End If Sheets("Tabelle1").Activate ActiveCell.Offset(i + 1, 2).Select Next i End Sub Nun die Fehlermeldung: Index außerhalb des gültigen Bereichs Sinn und Zweck der ganzen Geschichte ist, das ich eine Tabelle mit etlichen Datensätzen habe. Diese Datensätze haben sehr viele Leerstehende Attribute (Spalten). Damit man einen schnelleren und besseren Überblick bekommt, versuche ich nun einen Datensatz zu filtern, indem die leerstehenden Attribute wegfallen. Als Ansatz hierfür habe ich mir zunächst überlegt einen ganzen Tupel der einer Bedingung (In diesem Fall "Test" irgendwo in Spalte1) entspricht, herüber zu kopieren. Vielen Dank für eure Hilfe! Visit Me at Turorials - A. Menger
11. August 201114 j Bitte benutze Codeeinrückungen. Möglicherweise liegt es an Cells(i, 1).Value; soll dieses ein Zellbereich des Sheets sein oder ist das eine Variable? Gruß Martin
11. August 201114 j Autor Sorry, hatte ich vergessen! Nun ist´s zu spät um zu Bearbeiten. Cells(i, 1).Value sollte ein Zellbereich sein
11. August 201114 j Und wo? In welchem Sheet? Muß man den dann nicht auch über das Sheet adressieren?
11. August 201114 j Autor Naja, dies habe ich doch schon mit: Sheets("Tabelle1").Activate gemacht oder nicht?!
11. August 201114 j Autor Achso, ich dachte, nachfolgendes würde sich auf diesen Sheet dann beziehen. Naja wenn dem so nicht ist sollte es ja mit: Sheets("Tabelle1").Range(Cells(i, 1).Value, Cells(i, 256)).Select laufen, aber es erscheint immernoch dieselbe Fehlermeldung
12. August 201114 j Autor Sub banane() Dim i As Integer Sheets("Tabelle1").Activate For i = 2 To 300 If Sheets("Tabelle1").Cells(i, 1).Value = "123" Then Sheets("Tabelle1").Range(Cells(i, 1).Value, Cells(i, 256)).Select Selection.Copy Sheets("Tabelle7").Range("A1:A1200").Find("").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End If Sheets("Tabelle1").Activate ActiveCell.Offset(i + 1, 2).Select Next i End Sub Das isser
12. August 201114 j Autor Wenn ich ihn in Einzelschritten debuggen lasse, wird mir keine direkte Zeile angegeben ... Die ersten drei Zeilen sind Okay, nur wenns dann in die For-Schleife geht, kommt die Fehlermeldung ...
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.