Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
684to688
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
684to688
684to688
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen verbinden mit VBA

Zellen verbinden mit VBA
25.10.2005 07:35:40
Thomas
Hallo
ich habe eine Zeile mit dem Datum vom 1.1.2005 bis 31.12.2005. Jetzt möchte ich mit VBA in der darüberliegenden Zeile immer die Zellen vom ersten bis zum letzten Tag eines jeden Monats verbinden. Wie kann ich das machen?
Gruß Thomas

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen verbinden mit VBA
25.10.2005 08:50:42
Harald
Moin Thomas,
kopiere den Code in ein Blattmodul, schreib den Monatsersten nach B5 (z.B. 01.10.05)
und formatiere die Zeile als Datum.
Makro starten. Villeicht hilfts dir ja....wenngleich ich überhaupt kein Freund von verbundenen Zellen bin ;-))

Sub Makro2()
Range("B4").Select
Selection.FormulaR1C1 = "=DAY(DATE(YEAR(R[1]C),MONTH(R[1]C)+1,1)-1)"
i = ActiveCell.Value + 1
For x = 3 To i
Cells(5, x) = Cells(5, x - 1) + 1
Next x
With Range(Cells(4, 2), Cells(4, i)) 'Zeile 9 Spalte B bis Monatsletzter
.MergeCells = True 'verbinden
.Value = Format(Range("b5"), "MMMM") 'Monat
.HorizontalAlignment = xlCenter 'Schrift zentrieren
End With
End Sub

Gruß
Harald
Anzeige
AW: Zellen verbinden mit VBA
25.10.2005 09:08:09
Thomas
Hi
Na ich möchte in die Mitte eines jeden Monats den Monatsnamen über dem Datum des ersten und letzten Tag des Monats schreiben, aber da die Zellen sehr schmall sind sieht man den Text nicht. Beim Datum soll nähmlich nur der Tag angezeigt werden und der Monat als Text obendrüber. Da sich der Anfang des Monats in den Zellen verschiebt, muß ich mir was einfallen lassen wie ich da realisiere. Wenn es eine elegantere Lösung gibt, dann wäre das natürlich besser.
Gruß Thomas
AW: Zellen verbinden mit VBA
25.10.2005 09:39:27
Harald
Hi Thomas,
hmmm.
Hier noch ne Version für Datum (egal wo) in Zeile 5. Bei Makrostart sollte die aktive Zelle in Zeile 4 über dem Monatsersten sein. Du trägst nur !!! den Monatsersten ein, setzt die aktive Zelle über diesen Monatsersten und startest das Makro.

Sub Makro2()
If ActiveCell.Row <> 4 Then
MsgBox "Falsche Zeile aktiv", , "Abbruch"
Exit Sub
End If
acol = ActiveCell.Column
bcol = ActiveCell.Column
ActiveCell.FormulaR1C1 = "=DAY(DATE(YEAR(R[1]C),MONTH(R[1]C)+1,1)-1)"
i = ActiveCell.Value + 1
For x = acol To acol + i
Cells(5, x) = Cells(5, x - 1) + 1
Next x
With Range(Cells(4, bcol), Cells(4, bcol + i))
.MergeCells = True
.Value = Format(Cells(5, bcol), "MMMM")
.HorizontalAlignment = xlCenter
End With
End Sub

Gruß
Harald
Anzeige
Korrektur
25.10.2005 11:09:34
Harald
Hi nochmal,
der vorhergehende Code war fehlerhaft. Sorry !
Hab ein bisserl ausgebessert.
Zelle über dem Monatsersten (01.10.05) markieren. Makro starten.
Es zieht den Monat bis zum Monatsende auf, schreibt in die Zeile darüber den Monat, reduziert die Spaltenbreite und formatiert die Tagesangaben.

Sub Monateverbinden()
acol = ActiveCell.Column + 1
arow = ActiveCell.Row
ActiveCell.FormulaR1C1 = "=DAY(DATE(YEAR(R[1]C),MONTH(R[1]C)+1,1)-1)"
i = ActiveCell.Value + 1
For x = acol To acol + i - 3
Cells(arow + 1, x) = Cells(arow + 1, x - 1) + 1
Next x
With Range(Cells(arow, acol - 1), Cells(arow, acol + i - 3))
.MergeCells = True
.Value = Format(Cells(arow + 1, acol), "MMMM YY")
.HorizontalAlignment = xlCenter
End With
With Range(Cells(arow + 1, acol - 1), Cells(arow + 1, acol + i - 3))
.NumberFormat = "dd/"
.ColumnWidth = 4
End With
End Sub

Gruß
Harald
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige