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

Spalten verbinden

Spalten verbinden
Jens
Guten morgen,
ich würde gern über eine Makro Spalten miteinander verbinden.
Der Grund ist, ich möchte gern für Verschiedene Jahre Summen über die Kalenderwochen
eines Monats bilden. Da ich immer nur drei Jahre anzeigen möchte und im komenden Jahr dann alles um eine Zeile nach oben rutscht, passen die Verbundenen Zellen nicht mehr. Deshalb hätte ich das gern ein wenig variable.
Ich habe hier eine Tabelle, mit zwei Tabellenblättern, im ersten stehen die Jahre mit den Wochen und den Werten darunter sollten dann die Summen in der richtigen Spaltenbreite erscheinen. Im zweiten Tabellenblatt haben ich schon vorbereitet wieviele Wochen ich pro Monat möchte, wo die Zelle dann anfängt und Endet und den Wert den ich darin haben möchte.
Ich hatte auch schon ein kleines Makro angefangen, habe aber schnell gemerkt das ich da leider noch nicht weiter komme. Ich wäre sehr froh menn mir da jemand helfen könnte.
https://www.herber.de/bbs/user/78505.zip
Aktuell sind nur zwei Jahr vorhanden, das dritte würde dann analog der beiden anderen eingeügt werden.
Vielen herzlichen Dank.
Jens

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

Betreff
Benutzer
Anzeige
AW: Spalten verbinden
19.01.2012 13:53:27
fcs
Hallo Jens,
es ist nicht optimal hier mit "Zellen verbinden" zu arbeiten.
Insgesamt wird es einfacher, wenn in der Formatierung der Zellen mit den Summen "Zentrieren über Auswahl" verwendet wird.
Die Darstellung in den Vorgaben in Tabelle2 kann man auch vereinfachen als Basis für ein Makro. Die Buchstaben der Spalten braucht man nicht. Die Spalten kan man aus den Wochenzahlen berechnen.
Gruß
Franz
https://www.herber.de/bbs/user/78521.xls
AW: Spalten verbinden
19.01.2012 16:21:20
Jens
Guten abend Franz,
vielen Dank für deine Hilfe.
Leider kann ich die Datei auf meinem Rechner nicht öffnen, bekomme da eine schwere Fehlermeldung. Würdest du die Datei nochmal erstellen möglichweise in einem anderen Excel Format als dem welches du benutzt, bei mir läuft nur Excel 2003.
Vielen Dank
Jens
Anzeige
AW: Spalten verbinden
19.01.2012 18:17:45
fcs
Hallo Jens,
die Datei wurde von mir unter Excel2007 bearbeitet aber Format Excel 97-2003 gespeichert (Kompatibilitätsmodus).
Neu speichern und hochladen dürfte also nichts bringen.
Hier einige Screenshots und das Makro.
Die Tabellen muss du dann entsprechend anpassen.
In Tabelle1 im Bereich B3:BB5 die verbundenen Zellen wieder vereinzen und das Zellformat "Horizotale Ausrichtung" ändern in "Zentrieren über Auswahl".
Gruß
Franz
Tabelle1:
Userbild
Tabelle2:
Userbild
'Makro in einem allgemeinen Modul
Sub aaTest()
Dim wksZiel As Worksheet, wksQuelle As Worksheet
Set wksZiel = Worksheets("Tabelle1")
Set wksQuelle = Worksheets("Tabelle2")
Dim ZeileQ As Long, SpalteQ As Long
Dim ZeileZ As Long, SpalteZ As Long
Const ZeileZ1 = 3 'Zeile des 1. Jahres
Const SpalteZ1 = 2 'Spalte der 1. Woche
Const ZeileQ1 = 3 'Zeile des 1. Jahreszahl
Const SpalteQ1 = 2 'Spalte der 1. Jahreszahl
With wksZiel
.Range(.Cells(ZeileZ1, SpalteZ1), .Cells(ZeileZ1 + 2, SpalteZ1 + 52)).ClearContents
.Range(.Cells(ZeileZ1, SpalteZ1), .Cells(ZeileZ1 + 2, SpalteZ1)).Value = " "
.Range(.Cells(ZeileZ1, SpalteZ1 + 52), .Cells(ZeileZ1 + 2, SpalteZ1 + 52)).Value = " "
End With
ZeileZ = ZeileZ1
With wksQuelle
For SpalteQ = SpalteQ1 To SpalteQ1 + 2 * 2 Step 2
SpalteZ = SpalteZ1
If Not IsEmpty(.Cells(ZeileQ1, SpalteQ)) Then
ZeileQ = ZeileQ1 + 2 'Zeile 1. Monat
wksZiel.Cells(ZeileZ, SpalteZ1 - 1).Value = .Cells(ZeileQ1, SpalteQ).Value
Do
With wksZiel
.Range(.Cells(ZeileZ, SpalteZ), _
.Cells(ZeileZ, SpalteZ + wksQuelle.Cells(ZeileQ, SpalteQ).Value - 1)). _
ClearContents
.Cells(ZeileZ, SpalteZ).Value = wksQuelle.Cells(ZeileQ, SpalteQ + 1).Value
End With
SpalteZ = SpalteZ + wksQuelle.Cells(ZeileQ, SpalteQ).Value
ZeileQ = ZeileQ + 1
Loop Until ZeileQ - ZeileQ1 = 14
ZeileZ = ZeileZ + 1
End If
Next
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige