Es dürfte nicht schwierig sein, doch bisher ist mir keine Lösung eingefallen...
Ich möchte zwei Tabellenblätter (Tabelle4 und Tabelle5, auf Worksheets bastle ich später um) per VBA löschen und dabei von allen möglichen 'Missetaten' wie Formeln usw. befreien. Tabelle4 soll nun ausschließlich den UsedRange der ersten Zeile von Tabelle1 erhalten, Tabelle5 soll den kompletten UsedRange von Tabelle1. Bei dem Füllen per For-Schleife habe ich die EXCEL-Fehlermeldung "Die Methode '_Default' für das Objekt Range ist fehlgeschlagen" hinnehmen müssen...
Der Fehler taucht auf in der Quellcode-Zeile 25: "Tabelle5.Cells(i, j) = Tabelle1.Cells(i, j)" in Zeile i=490 und Spalte j=4
Quellcode:
Public Sub TabellenFuellen()
Dim i, j As Long
For i = 3 To Tabelle3.UsedRange.Rows.Count
Tabelle3.Rows(i).Clear
Next i
For i = 1 To Tabelle4.UsedRange.Rows.Count
Tabelle4.Rows(i).Clear
Next i
For i = 1 To Tabelle5.UsedRange.Rows.Count
Tabelle5.Rows(i).Clear
Next i
For i = 1 To Tabelle6.UsedRange.Rows.Count
Tabelle6.Rows(i).Clear
Next i
For i = 1 To Tabelle7.UsedRange.Rows.Count
Tabelle7.Rows(i).Clear
Next i
If (Tabelle4.UsedRange.Count < 2 And Tabelle5.UsedRange.Count < 2) Then
For i = 1 To Tabelle1.UsedRange.Columns.Count
Tabelle4.Cells(1, i) = Tabelle1.Cells(1, i)
Tabelle5.Cells(1, i) = Tabelle1.Cells(1, i)
Next i
For i = 2 To Tabelle1.UsedRange.Rows.Count
For j = 1 To Tabelle1.UsedRange.Columns.Count
Tabelle5.Cells(i, j) = Tabelle1.Cells(i, j)
Next j
Next i
Else
MsgBox ("Fehler: Tabellen 4 und 5 sind bereits gefüllt!")
Warteschleife
frmEinstellungen.lblZustand.Caption = "Fehler: Tabellen 4 und 5 sind bereits gefüllt!"
'Abbruch
End If
If (Tabelle6.UsedRange.Count < 2 And Tabelle7.UsedRange.Count < 2) Then
For i = 1 To Tabelle2.UsedRange.Columns.Count
Tabelle6.Cells(1, i) = Tabelle2.Cells(1, i)
Tabelle7.Cells(1, i) = Tabelle2.Cells(1, i)
Next i
For i = 2 To Tabelle2.UsedRange.Rows.Count
For j = 1 To Tabelle2.UsedRange.Columns.Count
Tabelle7.Cells(i, j) = Tabelle2.Cells(i, j)
Next j
Next i
Else
MsgBox ("Fehler: Tabellen 6 und 7 sind bereits gefüllt!")
Warteschleife
frmEinstellungen.lblZustand.Caption = "Fehler: Tabellen 6 und 7 sind bereits gefüllt!"
'Abbruch
End If
End Sub
Jedoch möchte ich eigentlich keine For-Schleifen nutzen, brauche andererseits aber die ordnungsgemäßen UsedRange-Angaben...
Bereits jetzt besten Dank für eure Hilfe
Jürgen