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

Tabellenbereich horizontal spiegeln

Tabellenbereich horizontal spiegeln
30.04.2017 11:36:36
Frank
Einen schönen guten Morgen,
ich möchte der Übersichtlichkeit einen Bereich hier CY2:DH40 kopieren und horizontal gespiegelt wieder ab CY41 einfügen. Die Lösungen aus dem Netz mit dem Transponieren funktionieren nicht,da ich weder die Schaltfläche noch die Menüs habe.
Auch die Excel-Hilfe gibt mal wieder nix gescheites an Infos her.
Lg Frank

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenbereich horizontal spiegeln
30.04.2017 11:48:05
Sepp
Hallo Frank,
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Function TransposeRange(ByRef Bereich As Range, Optional ByVal TauscheZeilen As Boolean = True, _
  Optional ByVal TauscheSpalten As Boolean = False) As Variant

Dim varA As Variant, varB() As Variant
Dim lngRow As Long, lngIndex As Long
Dim intCol As Integer, intIndex As Integer

If Not TauscheZeilen And Not TauscheSpalten Then Exit Function

varA = Bereich

Redim varB(1 To Bereich.Rows.Count, 1 To Bereich.Columns.Count)

For intCol = Bereich.Columns.Count To 1 Step -1
  If TauscheSpalten Then
    intIndex = intIndex + 1
  Else
    intIndex = intCol
  End If
  lngIndex = 0
  For lngRow = Bereich.Rows.Count To 1 Step -1
    If TauscheZeilen Then
      lngIndex = lngIndex + 1
    Else
      lngIndex = lngRow
    End If
    varB(lngIndex, intIndex) = varA(lngRow, intCol)
  Next
Next

TransposeRange = varB

End Function

Sub test()
Range("CY41:DH79") = TransposeRange(Range("CY2:DH40"), False, True)
End Sub

Gruß Sepp

Anzeige
AW: Tabellenbereich horizontal spiegeln
30.04.2017 12:41:48
Frank
Hallo Sepp,
wenn ich deine Lösungen mal so schnell zum Laufen bringen würde,wie du sie erstellst.
Egal in welcher Kombination ich deine Codes einfüge,es passiert nix.Nicht einmal ne Fehlermeldung oder so.Wenigstens das Macro müsste doch laufen.
Lg Frank
AW: Tabellenbereich horizontal spiegeln
30.04.2017 12:54:46
Sepp
Hallo Frank,
mein Code wurde nach deinen Vorgaben erstellt. Er bezieht sich auf die aktive Tabelle.
Lade mal eine Beispieldatei hoch.
Gruß Sepp

AW: Tabellenbereich horizontal spiegeln
30.04.2017 13:02:13
Frank
Hey Sepp,
ich bin davon überzeugt,das der Fehler bei mir liegt.
Hier die Datei:
https://www.herber.de/bbs/user/113209.xls
Lg Frank
Anzeige
AW: Tabellenbereich horizontal spiegeln
30.04.2017 13:21:30
Sepp
Hallo Frank,
logisch, mein Code Transponiert nur Werte, bei Dir geht's aber um die Formatierung.
Teste mal.
Sub Transponieren()
Dim rngSource As Range, rngTarget As Range
Dim lngRow As Long, lngCol As Long, lngRowC As Long, lngColC As Long

With Sheets("Turnier-Board")
  Set rngSource = .Range("CY2:DH40")
  Set rngTarget = .Range("CY41:DH79")
  lngRowC = rngSource.Rows.Count
  lngColC = rngSource.Columns.Count
  For lngRow = 1 To lngRowC
    For lngCol = 1 To lngColC
      rngSource(lngRow, lngCol).Copy rngTarget(lngRowC - lngRow + 1, lngCol)
    Next
  Next
End With

End Sub

Gruß Sepp

Anzeige
AW: Tabellenbereich horizontal spiegeln
30.04.2017 14:52:44
Daniel
Hi
Kommt darauf an.
Du willst den Zellbereich spieglen.
Dafür gibt es noch keine eigene Funktion in Excel, weil man das auch relativ einfach durch auf- oder absteigendes sortieren erreichen kann, wenn man in einer Hilfsspalte die Zeilennummer dazu schreibt und als sortierkriterium verwendet.
Die gezeigte Funktion ist Transponieren, dh der Tausch von Zeilen und Spalten. Das lässt sich nicht mit Sortieren erreichen, daher gibt es dafür eine eigene Funktion.
Diese sollte aber in jeder Excelversion vorhanden sein. (Ganz alte Versionen mal ausgenommen)
Gruß Daniel
Anzeige
Formatierung durch Sortieren spiegeln
30.04.2017 16:42:46
lupo1
Hinter die Daten eine lfdNr
Man kopiere den oberen Block darunter mit einer Zeile Abstand (also in Zeile 42 statt 41).
Den unteren Block absteigend nach lfdNr
Zeile 41 löschen
Hinweis: Über die verschiedenen Excel-Versionen hinweg war das Sortieren von Formaten nicht gleichartig! Es könnte also auch daneben gehen.
AW: Tabellenbereich horizontal spiegeln
30.04.2017 18:20:41
Frank
Hi Sepp,
wie bei jeden Code,den ich für gut und vorallem nützlich finde,habe ich auch diesen in mein "Test-Center mit einem Beispiel rein kopiert. Wissbegierig wie ich nunmal bin,habe ich mal ein wenig rumgespielt.Was mit dem Bereich aus dem Beispiel geht,muss dann auch mit einem anderen gehen. Gesagt getan,ein neues Beispiel rein kopiert,den Code entsprechend angepasst und KLICK gemacht.Was dabei raus kam,entzieht sich jeglicher Logik oder mein dreidimensionales Denken lässt nach.
Aber sieh selbst ;-)
https://www.herber.de/bbs/user/113210.xls
Anzeige
AW: Tabellenbereich horizontal spiegeln
30.04.2017 18:37:07
Sepp
Hallo Frank,
wieso passt doch!
Das der Rahmen oben dann auch bei der gespiegelten Zelle oben ist, ist doch logisch.
Da müsste man für jede Zelle abfragen, ober der Rahmen nur oben ist und in dann unten setzen.
Gruß Sepp

AW: Tabellenbereich horizontal spiegeln
30.04.2017 18:47:11
Frank
Hallo Sepp,
mit dem oberen Rahmen hab ich mir sowas schon gedacht,wobei für mich spiegeln Rahmen oben = Rahmen unten bedeutet. Aber warum setzt Excel aber in Zeile M12 noch nen zusätzlichen Rahmen,wo es doch im anderen Beispiel perfekt passt und die Position quasi identisch ist?
Wie gesagt in meiner Datei klappt deine Lösung perfekt und mit der anderen kann man zur Not trotzdem arbeiten.Ging mir jetzt nur ums Verständnis.
Danke nochmals.
Lg Frank
Anzeige
AW: Tabellenbereich horizontal spiegeln
30.04.2017 18:52:52
Sepp
Hallo Frank,
weil der Rahmen den du bei M10 oben siehst, nicht zu M10 gehört, sondern der untere Rahmen von M9 ist!
Gruß Sepp

AW: Tabellenbereich horizontal spiegeln
30.04.2017 19:11:29
Frank
Ich kanns jetzt zwar nachvollziehen,verstehen tu ich es trotzdem nicht. Zelle M10 ist doch identisch mit Zelle D40 im anderen Beispiel und da macht Excel das doch nicht. Excel zu verstehen ist gar nicht so einfach :-D
Lg Frank
AW: Tabellenbereich horizontal spiegeln
30.04.2017 19:18:54
Sepp
Hallo Frank,
das hat nichts mit "Excel verstehen" zu tun, sondern ist sozusagen eine optische Täuschung.
Da die Rahmen um D39:D40 sich ergänzen ist auch bei der Spiegelung kein Unterschied erkennbar.
Bei M9:M10 ist das nicht der Fall, weshalb der Unterschied dann eben auffällt.
Und Excel ist nun mal ein Tabellenkalkulationsprogramm und kein Grafikwerkzeug.
Gruß Sepp

Anzeige
AW: Tabellenbereich horizontal spiegeln
30.04.2017 19:34:28
Frank
Auch wenn du mich jetzt gerade völlig verwirrst,lass ich das mal so stehen,denn du bist hier der Profi.
Ich seh lediglich die Zelle M10 und D40,die beide identisch sind als Quell-Zelle und beide identisch gespiegelt werden. :-O
Lg Frank
AW: Tabellenbereich horizontal spiegeln
02.05.2017 11:02:45
Daniel
Hi
naja, du spiegelst aber auch die Zellen M9 und D39, und die sind nicht identisch.
du würdest das im Formatierungsassistenten sehen, wenn du nicht gerade weiss als Rahmenfarbe ausgewählt hättest.
M9 hat einen unteren Rahmen, D39 hat keinen unteren Rahmen.
des weiteren ist es so, dass nach dem Spiegeln nicht mehr die Zellen M10/D39 unter M9/D39 liegen, sondern M8/D38, welche keine oberen Rahmenlinien haben und somit die unteren Rahmenlinien von M9/D39 sichtbar werden.
Gruß Daniel
Anzeige
AW: Tabellenbereich horizontal spiegeln
06.05.2017 19:40:44
Frank
Hi Daniel,
sorry hab deine Antwort jetzt erst gesehen.
Also,das sind zwei verschiedene Beispiele und hängen nicht irgendwie zusammen. Was ich mit "identisch" meinte ist, das es zwei Zellen sind,die den gleichen Rahmen und dieselbe Farbe haben und von keiner anderen Zelle umgeben sind. Deshalb verwunderte es mich,das es bei D39 im linken Beispiel geht und bei M10 nen zusätzlichen Rahmen gibt. Habs mittlerweile aber lösen können indem ich in M9 Linie unten gelöscht und in M10 oben die Linie neu gesetzt habe.
Lg Frank
Oder per Formel
30.04.2017 13:03:25
Sepp
Hallo Frank,
oder folgende Formel in CY41:DH79 einfügen.

=INDEX($CY$2:$DH$40;ZEILE(A1);SPALTEN($CY$1:$DH$1)-SPALTE(A1)+1)
Gruß Sepp

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen