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

Makro zum kopieren eines Projektberichtes

Makro zum kopieren eines Projektberichtes
07.02.2024 13:49:06
KaMa
Hallo

Ich beschäftige mich vergeblich mit folgendem Problem:

Ich benötige ein Makro, welches folgenden Prozess ausführt

Ich möchte in einem Tabellenblatt (Vorlage Bericht) einen bestimmten Bereich "D4 bis AD65" (in dem Bericht gibt es verbundene Zellen) kopieren und in ein bestehendes Tabellenblatt Projektberichte einfügen. Dieser Vorgang aus der Vorlage kann immer wieder durchgeführt werden. Somit muss in dem Zielblatt geprüft werden, welches die erste Freie Spalte (recht vom letzten Bericht) ist, in der der nächste Bericht eingefügt werden kann (wenn hier schon ein oder mehrere Bericht/e vorhanden ist/sind).

1. Tabelle Blatt Vorlage ist ausgeblendet.
2. Tabellen Blatt, Projektbericht ist Aktiv. Das Makro soll hier mit einem Button aufgerufen werden (mach ich dann selber)

Erst einmal Danke für die Unterstützung.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zum kopieren eines Projektberichtes
07.02.2024 15:21:23
JoWE
Hallo KaMa (Karma???)
versuch"s mal hiermit:
Option Explicit


Sub kopiereBericht()
Dim zz As String
Dim shQuelle As Worksheet
Set shQuelle = Sheets("Vorlage Bericht")
Dim shZiel As Worksheet
Set shZiel = Sheets("Projektberichte")
With shZiel
zz = shZiel.Cells(1, Columns.Count).End(xlToLeft).Address
shQuelle.Range("D4:AD65").Copy Destination:=.Range(zz)
End With
End Sub

Gruß
Jochen
AW: Makro zum kopieren eines Projektberichtes
07.02.2024 15:48:07
KaMa
Hallo Jochen

Danke für die schnelle Antwort. Leider funktioniert dein Code nicht.

Fehler:
Sub Projektbericht_kopieren()
Dim zz As String
Dim shQuelle As Worksheet
Set shQuelle = Sheets("Vorlage Bericht")
Dim shZiel As Worksheet
Set shZiel = Sheets("Projektberichte")
With shZiel
zz = shZiel.Cells(1, Columns.Count).End(xlToLeft).Address
an dieser Stelle, wird ein Fehler ausgegeben ->: shQuelle.Range("D4:AD65").Copy Destination:=.Range(zz)
End With
End Sub

Wenn es hilft, würde ich die Exceldatei hochladen?
Anzeige
AW: Makro zum kopieren eines Projektberichtes
07.02.2024 15:58:19
JoWE
ja
AW: Makro zum kopieren eines Projektberichtes
07.02.2024 16:16:57
JoWE
neuer Versuch:
Option Explicit


Sub Projektbericht_kopieren()
Dim zz As Long 'Variablentyp verändert
Dim shQuelle As Worksheet
Set shQuelle = Sheets("Vorlage Bericht")
Dim shZiel As Worksheet
Set shZiel = Sheets("Projektberichte")
With shZiel
zz = .Cells(4, Columns.Count).End(xlToLeft).Column + 27 ' hier Änderung weil in der Zeile jeweils nur in der 1. Zelle der Vorlage etwas enthalten ist
shQuelle.Range("D4:AD65").Copy Destination:=.Cells(4, zz) 'Destination geändert, jetzt statt Range eine genaue Zelle
End With
End Sub
Anzeige
AW: Makro zum kopieren eines Projektberichtes
08.02.2024 08:20:05
KaMa
Vielen Dank, nun funktioniert es.
AW: Makro zum kopieren eines Projektberichtes
08.02.2024 08:45:16
JoWE
vllt. noch eine Verbesserung; deine von mir modifizierte Arbeitsmappe enthält den nochmals veränderten Code:
https://www.herber.de/bbs/user/166888.xlsm
Damit funktioniert das Einfügen der Berichte in der Waagerechten m.E. recht ordentlich,
weil jetzt auch die Spaltenbreiten korrekt angepasst werden und so die Berichte tatsächlich alle gleich aussehen..
Was Du unbedingt bedenken solltest:
Irgendwann ist das Ende der Spalten erreicht, die Arbeitsmappe wird überdies richtig gross, was u.U. problematisch werden kann.
Evtl. ist daher zu überlegen, ob es nicht evtl. sinnvoll wäre, die Berichte (mit sinnvoll zu recherchierenden Namen) als pdf-Files in einem Sammelordner zu speichern?
Nun, das liegt ganz bei Dir, hier jedenfalls zusätzlich auch der Makro-Code:
Option Explicit

Sub Projektbericht_kopieren()
Dim zz As Long 'Variablentyp verändert
Dim shQuelle As Worksheet
Set shQuelle = Sheets("Vorlage Bericht")
Dim shZiel As Worksheet
Set shZiel = Sheets("Projektberichte")
With shZiel
zz = .Cells(4, Columns.Count).End(xlToLeft).Column + 27 ' hier Änderung weil in der Zeile jeweils nur in der 1. Zelle der Vorlage etwas enthalten ist
If zz = 30 Then zz = 4
shQuelle.Range("D4:AD65").Copy Destination:=.Cells(4, zz) 'Destination geändert, jetzt statt Range eine genaue Zelle
shQuelle.Columns("D:AD").Copy
.Columns(zz).Resize(, 27).EntireColumn.PasteSpecial _
Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
.Range("A1").Select
End With
End Sub

Gruß
Jochen
Anzeige
AW: Makro zum kopieren eines Projektberichtes
08.02.2024 13:54:11
KaMa
Hallo Jochen, erst mal vielen Dank für deine Zeit und Arbeit. Derzeit benötige ich keine Funktion zum speichern des Projektberichtes als PDF. Daher sehe ich meine Anfrage, mehr als erledigt an. Sollte ich zu einem späteren Zeitpunkt etwas in diese Richtung benötigen, werde ich mich wieder vertrauensvoll an das Forum wenden.
Nochmals vielen Dank!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige