Microsoft Excel

Herbers Excel/VBA-Archiv

Zellenbezug samt Formatierung übernehmen, Tabellen übergreifend.

Betrifft: Zellenbezug samt Formatierung übernehmen, Tabellen übergreifend. von: Daniell Madscher
Geschrieben am: 05.10.2020 11:38:48

Hallo zusammen,

ich brauche mal eure Hilfe, es geht darum das ich eine Arbeitsmappe habe mit mehreren Tabellen.

In Tabelle1 sind alle wichtigen Daten hinterlegt, samt Formatierung wie Hintergrundfarben, welche händisch gesetzt wurde.

In den weiteren Tabellen (Tabelle2-4) Wird immer nur bezug auf Tabelle 1 genommen also =Tabelle1!D6, dabei wird aber nur der Inhalt der refferenzierten Zelle übernommen aber nicht deren Formatierung, es geht eigentlich nur um die händisch gesetzten Hintergrundfarben.

Wie bekomme ich es also jetzt via VBA Script hin das immer wenn ich auf eine Zelle aus Tabelle1 Bezug nehme (=Tabelle1!A2) das dann nicht nur der Zelleninhalt, sondern auch dessen Formatierung übernommen wird ?

Über ein paar Zeilen VBA Code würde ich mich freuen, den ich dann auch analysieren werde um diesen zu verstehen.


Gruß

Daniell

Betrifft: AW: Zellenbezug samt Formatierung übernehmen, Tabellen übergreifend.
von: onur
Geschrieben am: 05.10.2020 17:50:11

"Wie bekomme ich es also jetzt via VBA Script hin das immer wenn ich auf eine Zelle aus Tabelle1 Bezug nehme (=Tabelle1!A2) das dann nicht nur der Zelleninhalt, sondern auch dessen Formatierung übernommen wird ?"
Überhaupt nicht.
Das ginge nur, wenn alle Formeln gelöscht und durch Code ersetzt werden würden.

Betrifft: AW: Zellenbezug samt Formatierung übernehmen, Tabellen übergreifend.
von: Yal
Geschrieben am: 05.10.2020 18:13:19

jein.

Das kannst Du nicht in einem Schritt erledigen, aber ein Makro kann unterstützen.
Ich weiß nicht, ob "Basiskenntnisse in Excel" aussreichend wird, um das hinzubekommen, aber ohne zu probieren erhöht sich den Wissenstand auch nicht.

_ wirft den Makro Recorder an
_ auf Tabelle 2 gehen
_ "suchen und Auswählen" >> "Formeln" anklicken
_ Makro Recorder stoppen

_ Makro Recorder nochmal starten
_ eine Zelle in Tabelle 1 auswählen
_ Kopieren
_ auf die passende Zelle in Tabelle 2 gehen
_ Format einfügen
_ Makro Recorder stoppen

_ Code anschauen
_ beide Teile zusammenbringen
_ dynamisieren

Alles klar?

Am Ende vom Recording hast Du etwas was so aussieht
Sub Makro1()
' Makro1 Makro
    Sheets("Tabelle2").Select
    Selection.SpecialCells(xlCellTypeFormulas, 23).Select
End Sub
Sub Makro2()
' Makro2 Makro
    Range("B4").Select
    Selection.Copy
    Sheets("Tabelle2").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
End Sub
Daraus muss Du etwas machen, dass so aussieht
Sub Makro3()
Dim Z
    Sheets("Tabelle2").Select
    Selection.SpecialCells(xlCellTypeFormulas, 23).Select
    For Each Z In Selection
        If Left(Z.Formula, 10) = "=Tabelle1!" Then
            Worksheets("Tabelle1").Range(Mid(Z.Formula, 2)).Copy
            Z.PasteSpecial Paste:=xlPasteFormats
        End If
    Next
End Sub
Und dann noch für Tabelle3 anpassen

Viel Erfolg
Yal