Userform - Indexfehler
#1
Hallo zusammen,

ich habe mich einmal an eine Userform gewagt. Der Aufruf und die Eingabe der Daten funktioniert auch einwandfrei. Wenn ich jedoch die erfassten Daten in die entsprechende Tabelle, Button "Daten übernehmen", übertragen möchte bekomme ich folgende Fehlermeldung:

Index außerhalb des gültigen Bereichs und die Zeile "Worksheets("Tabelle6").Select" wird markiert. 

Folgender Code ist beim Button "Daten übernehmen" hinterlegt

Code:
Private Sub CommandButton1_Click()
Dim A As String
 Dim B As String
 Dim C As String
 Dim D As String
 Dim E As String
 Dim F As String
 A = TextBox1.Text
 B = TextBox2.Text
 C = TextBox3.Text
 D = TextBox4.Text
 E = TextBox5.Text
 F = TextBox6.Text
 Worksheets(„Tabelle6“).Select
 Cells(1048576, 1).End(xlUp).Offset(1, 0) = A
 Cells(1048576, 2).End(xlUp).Offset(1, 0) = B
 Cells(1048576, 3).End(xlUp).Offset(1, 0) = C
 Cells(1048576, 4).End(xlUp).Offset(1, 0) = D
 Cells(1048576, 5).End(xlUp).Offset(1, 0) = E
 Cells(1048576, 6).End(xlUp).Offset(1, 0) = F
 Unload Me
End Sub


Da habe ich doch bestimmt irgendwo nicht aufgepasst, oder?

VG
Rudi
Antworten Top
#2
Hallo,

dann gibt es die Tabelle6 nicht.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Hallo,

die Tabelle gibt es. In der VBA-Übersicht wird sie so angezeigt:

Tabelle6(Erfassung)

VG
Rudi
Antworten Top
#4
Hallo Rudi,

da hast du offenbar auch sonst nicht aufgepasst:

Warum willst du die Daten in die letzte Zeile des Tabellenblattes schreiben?
Warum weist du jedem Textfeld eine Variable zu? Das ist überflüssig.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#5
Hallo Klaus-Dieter,

ich habe den Code aus einer Vorlage übernommen. Es war halt ein Versuch Confused

Wäre es sehr vermessen zu fragen, wie der Code korrekt auszusehen hat?

VG
Rudi
Antworten Top
#6
Hallo Rudi,


Zitat:die Tabelle gibt es. In der VBA-Übersicht wird sie so angezeigt:

Tabelle6(Erfassung)


dann musst du entweder Worksheets("Erfassung").Select, oder Tabelle6.Select schreiben. Wobei Selektieren überflüssig ist. Versuche es mal so:

Code:
With Tablelle6
.Cells(1048576, 1).End(xlUp).Offset(1, 0) = A
.Cells(1048576, 2).End(xlUp).Offset(1, 0) = B
.Cells(1048576, 3).End(xlUp).Offset(1, 0) = C
.Cells(1048576, 4).End(xlUp).Offset(1, 0) = D
.Cells(1048576, 5).End(xlUp).Offset(1, 0) = E
.Cells(1048576, 6).End(xlUp).Offset(1, 0) = F

End Select
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#7
Wenn die CodeName 'Tabelle6' ist, reicht

Code:
Private Sub CommandButton1_Click()
  Tabelle6.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 6) = Array(TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6)
End Sub

Wenn die TabelleName 'Tabelle6' ist, reicht
Code:
Private Sub CommandButton1_Click()
  Sheets("Tabelle6").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 6) = Array(TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6)
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#8
Danke

werde das mal testen und berichten.

VG
Rudi
Antworten Top
#9
Vielen Dank für die Hilfe,

jetzt funktioniert es.

VG
Rudi
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste