Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Ausgabe Makro und Update der Inhalte


Betrifft: Ausgabe Makro und Update der Inhalte von: Philipp
Geschrieben am: 03.04.2018 09:25:38

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

  

Betrifft: AW: Ausgabe Makro und Update der Inhalte von: Robert Werner
Geschrieben am: 03.04.2018 11:12:43

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


  

Betrifft: AW: Ausgabe Makro und Update der Inhalte von: Philipp
Geschrieben am: 04.04.2018 07:30:24

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


  

Betrifft: AW: Ausgabe Makro und Update der Inhalte von: Robert Werner
Geschrieben am: 04.04.2018 16:54:35

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


Beiträge aus dem Excel-Forum zum Thema "Ausgabe Makro und Update der Inhalte"