AW: Spalten automatisch verbinden
Christoph
Hi Simone,
zu deiner Frage nach dem www:
ich hab das meiste hier bei Hans Herber gelernt. Sehr zu empfehlen ist auch die CD von Hans. Zum Einstieg auch die Excel-FAQ.
Und natürlich die Recherche, ebenfalls hier auf dieser Seite.
(Nein - ich bin nicht am Umsatz beteidigt, sondern bezahle wie jeder andere Frage-Steller und -Beantworter meine Onlinegebühren)
Meistens nutze ich die Google-Suche um zu einem bestimmten Thema bei Herber was zu finden.
z.B: "RangeSelection site:www.herber.de" (mit zwei blanks vor dem site und ohne Anführungszeichen)
Zu deiner Frage findest du aber auch was in der VBA-Hilfe:
gib mal: "RangeSelection" ein...die Hilfe ist gar nicht so schlecht
Ob mein Lösungsvorschlag der Weisheit letzter Schluss ist, bezweifel ich sehr. ich lerne selbst noch.
Doch jetzt zu deinem Thema:
Mit: "ActiveWindow.RangeSelection.Column"
erhältst du die Spaltennummer deines markierten Bereichs. (linke Spalte)
mit: " ActiveWindow.RangeSelection.Columns.Count" erhälst du die Anzahl der Spalten deiner Markierung.
ebenso läuft das mit den Zeilen:
ActiveWindow.RangeSelection.Row
und
ActiveWindow.RangeSelection.Rows.Count
wenn du nun einen Bereich markierst und in diesem sollen sich alle Zellen verbinden (spaltenweise immer zwei Zellen) dann geht das so:
Gruß
Christoph
('ne Rückmeldung wäre nett)
Option Explicit
Sub VerbindImBereich()
Dim j As Integer, i As Integer
Dim SpAnf As Integer, SpRng As Integer
Dim ZAnf As Integer, ZRng As Integer
With ActiveWindow
SpAnf = .RangeSelection.Column
SpRng = .RangeSelection.Columns.Count
ZAnf = .RangeSelection.Row
ZRng = .RangeSelection.Rows.Count
End With
'erst mal den Zellenverbund im Bereich auflösen:
Range(Cells(ZAnf, SpAnf), Cells(ZAnf + ZRng - 1, SpAnf + SpRng - 1)).UnMerge
'und jetzt neu verbinden:
For j = SpAnf To SpAnf + SpRng - 1
For i = ZAnf To ZAnf + ZRng - 1 Step 2
Range(Cells(i, j), Cells(i + 1, j)).Merge
Next i
Next j
End Sub