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

Ausgabe Makro und Update der Inhalte

Ausgabe Makro und Update der Inhalte
03.04.2018 09:25:38
Philipp
Mahlzeit in die Runde,
ich stehe vor folgenden Problemen.
Ich habe 16 Tabellenblätter mit gleicher Struktur, die ich in einem 17. Tabellenblatt mittels Makro untereinander kopiert habe.
Allerdings möchte ich nicht jedesmal, wenn sich in einer der Tabellenblättert etwas ändert, dass das Makro in einem zusätzlichen Tabellenblatt ausgegeben wird, sondern in dem 17. (Master) Tab. Ist das möglich?
Die zweite Frage schließt sich daran an. Lässt sich das Makro mit Verknüpfungen/Beziehung innerhalb der Datei verbinden, so dass mir das MAster Tab immer den aktuellen Abzug liefert, ohne dass das Makro neu gestartet werden muss?
War das verständlich ausgedrückt?
Hier noch das verwendete Makro:
Sub Combine()
'UpdateByKutools20151029
Dim i As Integer
Dim xTCount As Variant
Dim xWs As Worksheet
On Error Resume Next
LInput:
xTCount = Application.InputBox("The number of title rows", "", "1")
If TypeName(xTCount) = "Boolean" Then Exit Sub
If Not IsNumeric(xTCount) Then
MsgBox "Only can enter number", , "Kutools for Excel"
GoTo LInput
End If
Set xWs = ActiveWorkbook.Worksheets.Add(Sheets(1))
xWs.Name = "Combined"
Worksheets(2).Range("A1").EntireRow.Copy Destination:=xWs.Range("A1")
For i = 2 To Worksheets.Count
Worksheets(i).Range("A1").CurrentRegion.Offset(CInt(xTCount), 0).Copy _
Destination:=xWs.Cells(xWs.UsedRange.Cells(xWs.UsedRange.Count).Row + 1, 1)
Next
End Sub

Wäre super wenn da jemand Hilfe anbieten kann, vielen Dank!
Grüße Philipp

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

Betreff
Datum
Anwender
Anzeige
AW: Ausgabe Makro und Update der Inhalte
03.04.2018 11:12:43
Robert
Hallo Philipp,
nachstehendes Makro prüft zunächst, ob es das Tabellenblatt "Combined" gibt. Ist dies der Fall, werden die alten Daten gelöscht. Ansonsten wird das Tabellenblatt erstellt.
In dieser Tabelle werden dann die einzufügenden Daten mit den Herkunftszellen verknüpft, so dass Änderungen (aber keine neuen Zeilen oder Spalten) direkt in der Tabelle Combined erscheinen.
Zu beachten ist noch, dass leere Zellen in den Herkunftstabellen in der Tabelle Combined mit 0 dargestellt werden. Die Anzeige der 0 kannst Du ggfs. über die Optionen ausstellen.
Sub Combine()
'UpdateByKutools20151029
Dim i As Integer
Dim xTCount As Variant
Dim xWs As Worksheet
LInput:
xTCount = Application.InputBox("The number of title rows", "", "1")
If TypeName(xTCount) = "Boolean" Then Exit Sub
If Not IsNumeric(xTCount) Then
MsgBox "Only can enter number", , "Kutools for Excel"
GoTo LInput
End If
'prüfen ob Tabelle "Combined" exisitiert
If IsError(Application.Evaluate("Combined!A1")) Then
Set xWs = ActiveWorkbook.Worksheets.Add(Sheets(1))
xWs.Name = "Combined"
Else
Set xWs = ActiveWorkbook.Worksheets("Combined")
xWs.UsedRange.EntireRow.Delete
End If
Worksheets(2).Range("A1").EntireRow.Copy Destination:=xWs.Range("A1")
For i = 2 To Worksheets.Count
'Verknüpfungen einfügen
With Worksheets(i).Range("A1").CurrentRegion.Offset(CInt(xTCount), 0)
.Resize(.Rows.Count - 1, .Columns.Count).Copy
End With
xWs.Cells(xWs.UsedRange.Cells(xWs.UsedRange.Count).Row + 1, 1).Select
xWs.Paste Link:=True
Next
End Sub

Gruß
Robert
Anzeige
AW: Ausgabe Makro und Update der Inhalte
04.04.2018 07:30:24
Philipp
Hallo Robert,
vielen Dank für deine Hilfe und Erläuterung. Leider spuckt mir VBA nun einen Anwendungs- bzw- Objektdefinierten Fehler aus. Ich habe aber keine Ahnug wo ich da ansetzen müsste.
Hast du eine Idee?
Danke und Grüße
Philipp
AW: Ausgabe Makro und Update der Inhalte
04.04.2018 16:54:35
Robert
Hallo,
das liegt möglicherweise daran, dass in der Datei Tabellenblätter ohne Inhalt vorhanden sind. Ergänze den Teile ab 'Verknüpfungen einfügen wie folgt:
'Verknüpfungen einfügen
If Worksheets(i).Range("A1").CurrentRegion.Rows.Count > 1 Then
With Worksheets(i).Range("A1").CurrentRegion.Offset(CInt(xTCount), 0)
.Resize(.Rows.Count - 1, .Columns.Count).Copy
End With
xWs.Activate
xWs.Cells(xWs.UsedRange.Cells(xWs.UsedRange.Count).Row + 1, 1).Select
xWs.Paste Link:=True
End If
Gruß
Robert
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige