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

Spalten automatisch verbinden

Spalten automatisch verbinden
Simone
Hallo Ihr Excelprofis,
ich versuche folgendes Script mit VBA zu schreiben,
komme damit aber nicht so richtig zurecht:
In den markierten Spalten (z.B. A-B) sollen immer 2
Zellen zu einem Feld zusammengefasst werden
(z.B. A1+A2, B1+B2, A3+A4, B3+B4).
Das Auslesen der Werte und zusammenfügen in einer gemeinsamen
Spalte habe ich schon hinbekommen.
Mein Problem:
* wie bekomme ich die aktuell markierten Spalten heraus ?
* Welche Schleife ist für diese Doppelschritte sinnvoll ?
Danke
Simone

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Spalten automatisch verbinden
Christoph
Hi Simone,
ich würde dir nicht raten diese Prozedur bis zur letzten Zeile (65536) durchlaufen zu lassen. Das vergrößert die Datei nur unnötig.
Hier mal ein Bsp bis von Zeile 1 bis 20:
Gruß
Christoph
('ne Rückmeldung wäre nett)
Option Explicit

Sub verbindDat()
Dim j As Integer, i As Integer
Dim SpAnf As Integer, SpEnd As Integer
SpAnf = ActiveWindow.RangeSelection.Column
SpEnd = ActiveWindow.RangeSelection.Columns.Count
For j = SpAnf To SpAnf + SpEnd - 1
For i = 1 To 20 Step 2
Range(Cells(i, j), Cells(i + 1, j)).Merge
Next i
Next j
End Sub


Anzeige
AW: Spalten automatisch verbinden
Simone
Hi,
hat mit Deinem Tip super geklappt !
Wie kann ich denn in Excel die erste und letzte
markierte Reihe heraus bekommen ?
Wo kann man sowas am besten im www nachschauen ?
Dankeschön ;-))
Simone
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

Anzeige
AW: Spalten automatisch verbinden
Simone
Hi,
vielleicht kann mir noch einer einen Tip geben:
Wenn ich eine Spalte markiere und alle Reihen durchlaufen möchte,
wie kann ich verhinden das Excel bis Reihe 65555 läuft ?
Gibt es eine Variable/Funktion mir der ich die letzte, benutzte
Reihe heraus finden kann ?
Danke für die Hilfe
Simone
letzte Zeile
08.04.2004 13:49:08
Christoph
Hi Simone,
die letzte Zeile, in der ein Eintrag steht erhältst du z.B für Spalte A (entspricht Spaltennr.1) mit

Sub Test()
Dim LRow as Long
LRow = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox LRow
End Sub

Dabei ist die 1 nach dem Komma die Spaltennr.
Übersetzt heißt dieser Ausdruck in etwas:
schau in der Spalte A von unten nach oben und nenne die (in dieser Blickrichtung) erste Zeile, die einen Eintrag hat.
Gruß
Christoph
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige