Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1564to1568
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte in zwei Tabellenblätter schreiben

Werte in zwei Tabellenblätter schreiben
25.06.2017 21:26:57
Manni
Hi Leute,
ich bin fast fertig mit meiner Tankbestandstabelle mir fehlt jetzt "nur" noch ein Punkt.
Ich habe hier meinen Eintrage Code, ich wähle in meiner Combo Box einen Tank aus und durch diese Auswahl trage ich die unteren Werte (Fast alle Werte kommen aus den Textfeldern bis auf einen den ich aus den beiden Tankbeständen des aktuellen und vorherigen Bestand errechne). Soweit so gut.
Nun habe ich aber noch ein Tabellenblatt in dem ich alle Werte aus allen Tankbeständen eintragen möchte. Hier funktioniert meine Berechnung natürlich nicht, da in der Gesamttabelle ja die Werte kreuz und quer stehen.
Wie gehe ich am besten vor, dass die aktuellen Werte die ich eingebe, auch richtig (mit den errechneten Kanälen) auch in die "Rohdatentabelle" eingetragen werden?
Kopieren der Zeilen?
Ich hoffe ihr könnt mir helfen, stehe so kurz vorm Abschluss...
VG
Manni
Private Sub Eintragen()
'Pfad für die Dateneintragung
Dim VorherigerEintrag As Long
Dim lngLastRow As Long
Dim Verbrauch As Integer
Dim wsRohdaten As Worksheet
Set wsRohdaten = ThisWorkbook.Sheets(Me.cmbTank_Zufuhr.Value)
With wsRohdaten
VorherigerEintrag = (.Cells(Rows.Count, 1).End(xlUp).Row)
lngLastRow = (.Cells(Rows.Count, 1).End(xlUp).Row) + 1
.Cells(lngLastRow, 1).Value = Me.cmbTank_Zufuhr.Text
.Cells(lngLastRow, 2).Value = CDate(Me.txtDatum_Zufuhr)
.Cells(lngLastRow, 3).Value = CDate(Me.txtUhrzeit_Zufuhr)
.Cells(lngLastRow, 4).Value = CDbl(Me.txtTankbestand_Zufuhr)
.Cells(lngLastRow, 5).Value = UCase(Me.txtErfasser_Zufuhr)
.Cells(lngLastRow, 6).Value = CDbl("0")
.Cells(lngLastRow, 8).Value = UCase(Me.txtFahrer_Zufuhr)
.Cells(lngLastRow, 9).Value = UCase(Me.txtKennzeichen_Zufuhr)
.Cells(lngLastRow, 10).Value = UCase(Me.txtAufsicht_Zufuhr)
.Cells(lngLastRow, 11).Value = UCase(Me.txtKommentar_Zufuhr)
a = CDbl(.Cells(lngLastRow, 4).Value)
b = CDbl(.Cells(VorherigerEintrag, 4).Value)
.Cells(lngLastRow, 7).Value = a - b
End With
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte in zwei Tabellenblätter schreiben
26.06.2017 00:01:59
fcs
Hallo Manni,
mit nachfolgenden zusätzlichen Anweisung kannst du die Eingabe-Daten aus dem Blatt des jeweiligen Tanks in das Blatt mit den Daten aller Tanks eintragen/kopieren.
Die nicht benötigte Variante für das Kopieren kannst du löschen.
Gruß
Franz
Private Sub Eintragen()
'Pfad für die Dateneintragung
Dim VorherigerEintrag As Long
Dim lngLastRow As Long
Dim Verbrauch As Integer
Dim wsRohdaten As Worksheet
Dim wsAlle As Worksheet
Set wsRohdaten = ThisWorkbook.Sheets(Me.cmbTank_Zufuhr.Value)
Set wsAlle = ThisWorkbook.Sheets("Rohdaten")                'Blatt-Name ggf.anpassen
With wsRohdaten
VorherigerEintrag = (.Cells(.Rows.Count, 1).End(xlUp).Row)
lngLastRow = (.Cells(.Rows.Count, 1).End(xlUp).Row) + 1
.Cells(lngLastRow, 1).Value = Me.cmbTank_Zufuhr.Text
.Cells(lngLastRow, 2).Value = CDate(Me.txtDatum_Zufuhr)
.Cells(lngLastRow, 3).Value = CDate(Me.txtUhrzeit_Zufuhr)
.Cells(lngLastRow, 4).Value = CDbl(Me.txtTankbestand_Zufuhr)
.Cells(lngLastRow, 5).Value = UCase(Me.txtErfasser_Zufuhr)
.Cells(lngLastRow, 6).Value = CDbl("0")
.Cells(lngLastRow, 8).Value = UCase(Me.txtFahrer_Zufuhr)
.Cells(lngLastRow, 9).Value = UCase(Me.txtKennzeichen_Zufuhr)
.Cells(lngLastRow, 10).Value = UCase(Me.txtAufsicht_Zufuhr)
.Cells(lngLastRow, 11).Value = UCase(Me.txtKommentar_Zufuhr)
a = CDbl(.Cells(lngLastRow, 4).Value)
b = CDbl(.Cells(VorherigerEintrag, 4).Value)
.Cells(lngLastRow, 7).Value = a - b
.Rows(lngLastRow).Copy
End With
With wsAlle
'wenn nur die Werte kopiert werden sollen
wsRohdaten.Rows(lngLastRow).Copy
.Rows(.Cells(.Rows.Count, 1).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues
'oder wenn alles kopiert werden soll
wsRohdaten.Rows(lngLastRow).Copy Destination:= _
.Rows(.Cells(.Rows.Count, 1).End(xlUp).Row + 1)
End With
End Sub

Anzeige
AW: Werte in zwei Tabellenblätter schreiben
26.06.2017 00:44:19
Manni
Hallo Franz,
vielen herzlichen Dank für deine Hilfe!!!!!!! funktioniert super.
Hätte ne Frage bzgl. der Tabelle in die die Werte rein sollen.
Im Einzelsheet des Tanks werden sie ja reingeschrieben und somit erweitert sich die Tabelle
automatisch, in der mit den Rohdaten tut sie das nicht, ein Tipp wie ich das ändern kann?
VG
Manni
AW: Werte in zwei Tabellenblätter schreiben
26.06.2017 05:59:52
fcs
Hallo Manni,
probiers mal mit einer der beiden Varianten für das Übertragen der Werte.
Wenn sich die Tabelle im Blatt dann immer noch nicht automatisch erweitert, dann muss das Makro nach dem Übertragen der Werte zusätlich den Zellbereich der Tabelle erweitern.
LG
Franz
Private Sub Eintragen()
'Pfad für die Dateneintragung
Dim VorherigerEintrag As Long
Dim lngLastRow As Long
Dim Verbrauch As Integer
Dim wsRohdaten As Worksheet
Dim wsAlle As Worksheet
Dim lngZeile As Long, lngSpalte As Long
Set wsRohdaten = ThisWorkbook.Sheets(Me.cmbTank_Zufuhr.Value)
Set wsAlle = ThisWorkbook.Sheets("Rohdaten")                'Blatt-Name ggf.anpassen
With wsRohdaten
VorherigerEintrag = (.Cells(.Rows.Count, 1).End(xlUp).Row)
lngLastRow = (.Cells(.Rows.Count, 1).End(xlUp).Row) + 1
.Cells(lngLastRow, 1).Value = Me.cmbTank_Zufuhr.Text
.Cells(lngLastRow, 2).Value = CDate(Me.txtDatum_Zufuhr)
.Cells(lngLastRow, 3).Value = CDate(Me.txtUhrzeit_Zufuhr)
.Cells(lngLastRow, 4).Value = CDbl(Me.txtTankbestand_Zufuhr)
.Cells(lngLastRow, 5).Value = UCase(Me.txtErfasser_Zufuhr)
.Cells(lngLastRow, 6).Value = CDbl("0")
.Cells(lngLastRow, 8).Value = UCase(Me.txtFahrer_Zufuhr)
.Cells(lngLastRow, 9).Value = UCase(Me.txtKennzeichen_Zufuhr)
.Cells(lngLastRow, 10).Value = UCase(Me.txtAufsicht_Zufuhr)
.Cells(lngLastRow, 11).Value = UCase(Me.txtKommentar_Zufuhr)
a = CDbl(.Cells(lngLastRow, 4).Value)
b = CDbl(.Cells(VorherigerEintrag, 4).Value)
.Cells(lngLastRow, 7).Value = a - b
.Rows(lngLastRow).Copy
End With
With wsAlle
lngZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
'nur die Spalten mit Werten koieren
wsRohdaten.Range(.Cells(lngLastRow, 1), .Cells(lngLastRow, 11)).Copy
.Cells(lngZeile, 1).PasteSpecial Paste:=xlPasteValues
'oder Einzelwerte in einer Schleife übertragentragen
For lngSpalte = 1 To 11
.Cells(lngZeile, lngSpalte).Value = wsRohdaten.Cells(lngLastRow, lngSpalte).Value
Next
End With
End Sub

Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige