Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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


Anzeige

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!!!
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige