Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Dynamischen Tabellenbereich kopieren via Button
#1
Hallo werte Excel-Freunde,

Ich arbeite zur Zeit an einem Rechnungslegungssystem für Katasteraufträge auf Basis von Excel und hänge gerade an einem VBA-Problem.

Für die Rechnung muss ich die Auftragsinhalte einfügen. Diese setzen sich vorerst aus 3 separaten Bereichen (Tabellenblätter: FB, GeA und GrW) zusammen.
Die Berechnungen der einzelnen Bereiche werden dabei in den jeweiligen Tabellenblätter ausgeführt, deren Berechnungsdaten mit einem weiteren Tabellenblatt verknüpft sind. Die Reiter FB und GeA sind bereits mit einem VBA-Code zur automatischen Ein- und Ausblendung von bestimmten Zeilen versehen.


Leider bin ich in der schönen VBA-Welt nicht sehr bewandert, habe schon in verschiedenen Foren und Seiten nach interessanten Lösungen geschaut. Allerdings fällt mir die Umsetzung und Anpassung an meine Vorlagen schwer.

Folgende Probleme will ich per VBA lösen:

- Ein Klick-Steuerelement soll in den jeweiligen Berechnungstabellen (FB, GeA, GrW) eingefügt werden. Dieser soll den VBA-Code ausführen in dem er die jeweiligen ausgefüllten Tabellen in das Tabellenblatt "Bescheid" hineinkopiert, und zwar ab der roten Markierung (Zelle A70)
- Die Spaltenanzahl ist fest (A-G, also 7 Spalten), lediglich lassen sich bestimmte Zeilen bereits per VBA ein und ausblenden. (Im Reiter GeA ist dieser mit der Anzahl der Gebäudeteile verknüpft). Diese dynamischen Bereichen sollen beim kopieren dementsprechend berücksichtigt werden. Die Spaltenbreite von A-G stimmen zwischen "Bescheid" und den 3 anderen Tabellenblätter überein.
- Es kann vorkommen, das für manche Aufträge mehrere Tabellen kopiert werden müssen. Hierbei soll das Makro automatisch erkennen ob eine Tabelle bereits eingefügt wurde und die weiteren tabellen immer mit einer Zeile Abstand darunter gesetzt werden. Außerdem soll nach dem Kopiervorgang auf den 3 Berechnungsblättern als Schutz vor versehentlichem mehrfachdrücken das Tabellenblatt "Bescheid" aufgerufen werden.

Ich habe eine Arbeitsmappe für interessierte Helfer vorbereitet und stelle diese zur Verfügung.


Angehängte Dateien
.xlsm   VBA_Test.xlsm (Größe: 52,06 KB / Downloads: 15)
Antworten Top
#2
Hallo

passt es so?

Code:
Sub prc_kopieren()
   Dim lngZiel As Long
   Dim lngLetzte As Long
   Dim rngBereich As Range
   lngLetzte = Cells(Rows.Count, 7).End(xlUp).Row
   Set rngBereich = ActiveSheet.Range("A1:G" & lngLetzte)
   With Sheets("Bescheid")
       lngZiel = .Cells(.Rows.Count, 2).End(xlUp).Row + 2
       If lngZiel < 70 Then lngZiel = 70
''      wenn nur die eingeblendeten Zeilen kopiert werden sollen
       rngBereich.SpecialCells(xlCellTypeVisible).Copy .Range("A" & lngZiel)
''      wenn auch die ausgeblendeten Zeilen kopiert werden sollen
'        rngBereich.Copy .Range("A" & lngZiel)
       Application.CutCopyMode = False
       .Select
   End With
End Sub

MfG Tom
[-] Folgende(r) 1 Nutzer sagt Danke an Crazy Tom für diesen Beitrag:
  • andifreak
Antworten Top
#3
Hallo Tom,

Das ist genau das was ich wollte und es funktioniert einwandfrei. Vielen herzlichen Dank! :100:
Antworten Top


Gehe zu:


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