Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten aus Userfom in eine ausgeblendete Tabelle

Daten aus Userfom in eine ausgeblendete Tabelle
16.09.2008 12:28:00
Ramon
Hallo alle zusammen,
ich möchte nach Klick auf den Command_Button "cb_send" Eingabewerte aus einer
Userform in eine Tabelle schreiben.
In Abhängigkeit der eingegebenen Werte sollen die Daten entweder in das Tabllenblatt
"data_booked" oder in "data_planned" geschrieben werden, und zwar immer am Ende. Also
erste freie Zeile.
Nachfolgender Code funktioniert wunderbar. Alles was mich stört ist das "ws.Activate".
Er soll die Daten quasi im Hintergrund in die Tabelle schreiebn, ohne das man etwas sieht.
Lasse ich das ws.Activate einfach weg, dann rafft er nicht, in welchem tabellenblatt er nach der
ersten freien Zeile suchen soll . . .
Habt Ihr eine Idee ?
Option Explicit

Private Sub cb_send_Click()
Dim newRow As Long
Dim ws As Worksheet
'Je nach Auswahl im TabStrip1 sollen die Eingaben in ein bestimmtes Tabellenblatt geschrieben  _
werden
If TabStrip1.Value = 0 Then Set ws = Worksheets("data_booked")
If TabStrip1.Value = 1 Then Set ws = Worksheets("data_booked")
If TabStrip1.Value = 2 Then Set ws = Worksheets("data_planned")
If TabStrip1.Value = 3 Then Set ws = Worksheets("data_planned")
ws.Activate     ' Das ist mein Problem. Er soll nicht auf dieses Blatt wechseln!
For newRow = 1 To Range("A65536").End(xlUp).Row: Next
'Werte aus Textboxen ins Tabellenblatt übertragen
ws.Cells(newRow, 1).Value = Me.Tb_kat1.Value
ws.Cells(newRow, 2).Value = Me.Tb_month1.Value
ws.Cells(newRow, 3).Value = Me.tb_dat1.Value
ws.Cells(newRow, 4).Value = Me.tb_cust1.Value
ws.Cells(newRow, 5).Value = Me.Tb_mat1.Value
ws.Cells(newRow, 6).Value = Me.Tb_mg1.Value
ws.Cells(newRow, 7).Value = Me.Tb_comments1.Value
If Tb_mat2.Value = "" Then GoTo ende Else:
ws.Cells(newRow + 1, 1).Value = Me.Tb_kat2.Value
ws.Cells(newRow + 1, 2).Value = Me.Tb_month2.Value
ws.Cells(newRow + 1, 3).Value = Me.Tb_dat2.Value
ws.Cells(newRow + 1, 4).Value = Me.Tb_cust2.Value
ws.Cells(newRow + 1, 5).Value = Me.Tb_mat2.Value
ws.Cells(newRow + 1, 6).Value = Me.Tb_mg2.Value
ws.Cells(newRow + 1, 7).Value = Me.Tb_comments2.Value
ende:
Unload UserForm1
End Sub


4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus Userfom in eine ausgeblendete Tabelle
16.09.2008 12:41:00
Beverly
Hi Ramon,
verwende eine With-Anweisung nach diesem Prinzip (ungetestet):

If TabStrip1.Value = 0 Then Set ws = Worksheets("data_booked")
If TabStrip1.Value = 1 Then Set ws = Worksheets("data_booked")
If TabStrip1.Value = 2 Then Set ws = Worksheets("data_planned")
If TabStrip1.Value = 3 Then Set ws = Worksheets("data_planned")
With ws
For newRow = 1 To .Range("A65536").End(xlUp).Row: Next
'Werte aus Textboxen ins Tabellenblatt übertragen
.Cells(newRow, 1).Value = Me.Tb_kat1.Value
.Cells(newRow, 2).Value = Me.Tb_month1.Value
.Cells(newRow, 3).Value = Me.tb_dat1.Value
.Cells(newRow, 4).Value = Me.tb_cust1.Value
.Cells(newRow, 5).Value = Me.Tb_mat1.Value
.Cells(newRow, 6).Value = Me.Tb_mg1.Value
.Cells(newRow, 7).Value = Me.Tb_comments1.Value
If Tb_mat2.Value = "" Then GoTo ende Else:
.Cells(newRow + 1, 1).Value = Me.Tb_kat2.Value
.Cells(newRow + 1, 2).Value = Me.Tb_month2.Value
.Cells(newRow + 1, 3).Value = Me.Tb_dat2.Value
.Cells(newRow + 1, 4).Value = Me.Tb_cust2.Value
.Cells(newRow + 1, 5).Value = Me.Tb_mat2.Value
.Cells(newRow + 1, 6).Value = Me.Tb_mg2.Value
.Cells(newRow + 1, 7).Value = Me.Tb_comments2.Value
End With




Anzeige
AW: Daten aus Userfom in eine ausgeblendete Tabelle
16.09.2008 12:43:00
Rudi
Hallo,
sollte klappen:

Private Sub cb_send_Click()
Dim newRow As Long
Dim ws As Worksheet
'Je nach Auswahl im TabStrip1 sollen die Eingaben in ein bestimmtes Tabellenblatt geschrieben _
werden
Select Case TabStrip1.Value * 1
Case 0, 1: Set ws = Worksheets("data_booked")
Case 2, 3: Set ws = Worksheets("data_booked")
End Select
newRow = ws.Range("A65536").End(xlUp).Row
'Werte aus Textboxen ins Tabellenblatt übertragen
ws.Cells(newRow, 1).Value = Me.Tb_kat1.Value
ws.Cells(newRow, 2).Value = Me.Tb_month1.Value
ws.Cells(newRow, 3).Value = Me.tb_dat1.Value
ws.Cells(newRow, 4).Value = Me.tb_cust1.Value
ws.Cells(newRow, 5).Value = Me.Tb_mat1.Value
ws.Cells(newRow, 6).Value = Me.Tb_mg1.Value
ws.Cells(newRow, 7).Value = Me.Tb_comments1.Value
If Tb_mat2.Value = "" Then
Else
ws.Cells(newRow + 1, 1).Value = Me.Tb_kat2.Value
ws.Cells(newRow + 1, 2).Value = Me.Tb_month2.Value
ws.Cells(newRow + 1, 3).Value = Me.Tb_dat2.Value
ws.Cells(newRow + 1, 4).Value = Me.Tb_cust2.Value
ws.Cells(newRow + 1, 5).Value = Me.Tb_mat2.Value
ws.Cells(newRow + 1, 6).Value = Me.Tb_mg2.Value
ws.Cells(newRow + 1, 7).Value = Me.Tb_comments2.Value
End If
Unload UserForm1
End Sub


Gruß
Rudi

Anzeige
wichtige Korrektur
16.09.2008 12:46:00
Rudi
newRow = ws.Range("A65536").End(xlUp).Row + 1
AW: wichtige Korrektur
16.09.2008 12:55:00
Ramon
Super, funktioniert einwandfrei! Außerdem is' die Select Case-Variante sowieso
viel besser. Danke!!!

334 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige