Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1696to1700
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

VBA Daten in letzte zeile verschiedener Tabellen

VBA Daten in letzte zeile verschiedener Tabellen
04.06.2019 15:11:51
Felix
Hallo zusammen,
ich beschäftige mich erst seit kurzer zeit mit der VBA Programmierung und stoße gerade leider an meine Grenzen. Leider habe ich bisher auchn och keine adäquaten Lösungen gefunden.
Zum Problem. ich habe eine Arbeitsmappe mit mehreren Tabellenblättern in welchen jeweils Berichte erstellt und ausgedruckt werden. Nun möchste ich in einem letzten Modul auf jedem Arbeitsblatt mein ausgefülltes Formular Ausdrucken und zusätzlich mir dem gleichen Button einige der eingegeben Daten in ein weiteres Tabellenblatt übertragen. In diesem Arbeitsblatt möchte ich die Daten für meinen Monatsabschluss bündeln. Das thema mit dem Drucken is natürlich kein Problem. Allerdings habe ich das Problem, dass ich in dem letzten Arbeitsblatt drei verschiedene Tabellen benötige, die dann von unterschiedlichen Makros angesprochen werden sollen. Es soll dann letztendlich bei Eingabe der Daten auf dem Ausgangsdatenblatt und anschließendem Betätigen des Buttons die Daten in die letzte Zeile der passenden Tabelle geschrieben werden. Die tabelle soll sich dabei um eine Zeile erweitern.
Ich hoffe ich konnte meine Frage präzise genug formulieren und würde mich sehr freuen wenn mir jemand weiterhelfen kann.
Anbei noch ein Screenshot, welches zeigt wie ich mir das letzte Arbeitsblatt in etwa inhaltlich vorstelle.
Userbild

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Daten in letzte zeile verschiedener Tabellen
04.06.2019 15:46:18
Beverly
Hi Felix,
vom Prinzip her so:
    With ActiveSheet.ListObjects(1)
' Zeile anfügen
.ListRows.Add alwaysinsert:=True
' Bereich H3:K3 in die neu angefüte Zeile kopieren
Range("H3:K3").Copy .DataBodyRange.Cells(.DataBodyRange.Rows.Count, 1)
End With
Range("H3:K3") musst du natrürlich an deine Bedingungen anpassen.
Anstelle ListObjects(1) kannst du auch den Namen der formatierten Tabelle verwenden - z.B. ListObjects("MeineTabelle1")


AW: VBA Daten in letzte zeile verschiedener Tabellen
06.06.2019 13:35:25
Felix
Hi Beverly, zunächst einmal vielen Dank. Damit bekomme ich meine Daten in die entsprechenden Tabellen. Jetzt habe ichn ur noch ein kleines Problem. Und zwar übernimmt Excel die Formatierung (Schriftgröße, Hintergrundfarbe usw aus der alten tabelle. Und da die Werte teilweise verschieden formatiert waren sieht das natürlich sehr bescheiden aus. Gibt es eine Möglichlkeit direkt beim Einfügen der Werte auch gleich das Format festzulegen. Bspw. mit "Font.Size" oder ähnlichem ?Wenn das geht, dann weiß ich gerade einfach nur nicht an welcher Stelle ich den Befehl unterbringen soll.
Grüße
Felix
Anzeige
AW: VBA Daten in letzte zeile verschiedener Tabellen
06.06.2019 17:51:46
Beverly
Hi Felix,
in diesem Fall musst du das mittels PasteSpecial lösen, zuerst nur die Werte einfügen und anschließend die Zellen entsprechend formatiern.
Solle jede Zelle ein anderes Format erhalten, muss auch jede Zelle einzeln entsprechend angesprochen und formatiert werden - nach diesem Prinzip:
    With ActiveSheet.ListObjects(1)
.ListRows.Add alwaysinsert:=True
Range("H3:K3").Copy
' nur Werte einfügen
.DataBodyRange.Columns(1).Cells(.DataBodyRange.Columns(1).Cells.Count).PasteSpecial  _
Paste:=xlValues
' 1. Zelle formatieren
.DataBodyRange.Columns(1).Cells(.DataBodyRange.Columns(1).Cells.Count).NumberFormat = "@ _
' 2. Zelle formatieren
.DataBodyRange.Columns(2).Cells(.DataBodyRange.Columns(1).Cells.Count).Font.Size = 16
' 3. Zelle formatieren
.DataBodyRange.Columns(3).Cells(.DataBodyRange.Columns(1).Cells.Count).Font.Bold = True
' 4. Zelle formatieren
.DataBodyRange.Columns(4).Cells(.DataBodyRange.Columns(1).Cells.Count).Font.Bold = True
End With

Sollen alle Zellen dasselbe Format erhalten, kann man es so lösen:
    Dim rngBereich As Range
With ActiveSheet.ListObjects(2)
.ListRows.Add alwaysinsert:=True
Range("I3:L3").Copy
.DataBodyRange.Columns(1).Cells(.DataBodyRange.Columns(1).Cells.Count).PasteSpecial  _
Paste:=xlValues
Set rngBereich = Range(.DataBodyRange.Columns(1).Cells(.DataBodyRange.Columns(1).Cells. _
Count), _
.DataBodyRange.Columns(4).Cells(.DataBodyRange.Columns(1).Cells.Count))
With rngBereich
.Font.Size = 15
.Font.Bold = True
End With
End With
Set rngBereich = Nothing


Anzeige

327 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige