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

Spalten einfügen in verbundene Zellen

Spalten einfügen in verbundene Zellen
30.05.2003 10:09:46
PeterG
Einen guten Morgen an alle,

ich habe ständig das Problem, Spalten in Bereiche einfügen zu müssen, die verbunden sind, was bekanntlich nicht geht. Also wenn A1:D1 verbunden sind, kann man bei B keine neue Spalte einfügen. Dazu muß dann erst die Verbindung aufgehoben werden.

Was ich suche ist ein Tool, das an der Markierung erkennt, wo eine Spalte eingefügt werden soll, evtl. vorhandene verbundene Bereiche erkennt, die Verbindungen aufhebt, die Spalte einfügt und die Verbindungen dann wiederherstellt!! Zuviel verlangt!? Das Makro müßte nur die ersten 5 Zeilen (Kopfzeilen) prüfen. Danach gibt es bei mir keine Zellverbindungen mehr.

Gibt es sowas? In der Recherche habe ich nichts gefunden, vielleicht aber auch nicht konsequent genug gesucht.

Danke für jede Hilfe.

Gruß
Peter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Spalten einfügen in verbundene Zellen
30.05.2003 11:05:06
Georg_Zi

Hallo Peter

ich habe mir die verbundenen Zellen abgewöhnt, ich arbeite dort mit der Formatierung "Ausrichtung über Spalten"

Gruß Hajo

Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Genial!
30.05.2003 11:13:47
PeterG

Hallo Hajo,

was im Excel nicht alles gibt. Saubere Lösung. Ich danke dir.

Gruß
Peter

Re: Genial!
30.05.2003 11:17:39
ANdreas

Hallo,

das ist so wirklich besser, wobei ich bei Excel2000 Spalten einfügen kann, auch wenn Zellen verbunden sind. Bei 97 scheint das anscheinend noch nicht zu funktionieren. ;-)

Andreas

Anzeige
Und noch was
30.05.2003 11:47:25
Martin Beck

Hallo alle,

ich habe mir auch die verbundenen Zellen abgewöhnt und folgendes Makro einem Button zugewiesen:

Wenn man verbundene Zellen markiert und das Makro zweimal laufen läßt, wandelt es auch verbundene Zellen in "Zentriert über Spalten" um.

Das manuelle Einfügen von Spalte "in" verbundene Zellen geht auch, wenn Du eine irgendeine nicht verbundene Zelle in der relevanten Spalte auswählst und dann die Spalte einfügst. Der verbundene Bereich wird dann allerdings um eine Spalte erweitert.

Gruß
Martin Beck


Re: Und noch was
30.05.2003 11:53:58
PeterG

Hallo Martin,

das gefällt mir. Ich will jetzt sogar noch einen Schritt weiter gehen und das Symbol "verbinden und zentrieren" in der Format-Symbolleiste auf dieses Makro umprogammieren.

Gruß
Peter

Anzeige
Teillösung
30.05.2003 14:26:49
PeterG

An alle Interessierten,

da ich mich weiter mit Zellverbindungen in zig älteren Tabellen rumschlagen muß, habe ich jetzt doch mal versucht, was zu basteln, mit Teilerfolg. Der folgende Code löscht eine Spalte oder fügt eine ein, auch wenn in den ersten 4 Zeilen Zellverbindungen sind. Funktioniert leider nur bei horizontalen Verbindungen. Bei vertikalen Verbindungen gibt es Chaos.

Sub SpalteLöschen()
Call SpEinfügenLöschen(-1)
End Sub

Sub SpalteEinfügen()
Call SpEinfügenLöschen(1)
End Sub

Private Sub SpEinfügenLöschen(ByVal x%) 'x=1=einfügen,-1=löschen
Dim n%, Ze%, Sp%, vb(4, 2) As Integer, rng$, vSp%, bSp%
Sp = ActiveCell.Column: Ze = ActiveCell.Row
For n = 1 To 4
Cells(n, Sp).Select
rng = Selection.Address
If Selection.MergeCells = True Then
Selection.MergeCells = False: vb(n, 0) = 1
Call Zellverbindung(rng, vSp, bSp)
vb(n, 1) = vSp: vb(n, 2) = bSp
End If
Next
If x = 1 Then Columns(Sp).Select: Selection.Insert Shift:=xlToRight
If x = -1 Then Columns(Sp).Select: Selection.Delete Shift:=xlToLeft
For n = 1 To 4
If vb(n, 0) = 1 Then
Range(SpBu(vb(n, 1)) & n & ":" & SpBu(vb(n, 2) + x) & n).Select
Selection.MergeCells = True
End If
Next
Cells(Ze, Sp).Select
End Sub

Private Sub Zellverbindung(ByVal A$, vSp%, bSp%) ' von-bis Spalte ermitteln
Dim s%, s1%, E$
s = InStr(A, ":"): E = Mid(A, 2, s - 2): s1 = InStr(E, "$")
vSp = SpNr(Left(E, s1 - 1)): E = Mid(A, s + 2)
s1 = InStr(E, "$"): bSp = SpNr(Left(E, s1 - 1))
End Sub

Function SpBu(ByVal n As Integer) As String ' wandelt Spaltenzahl(n)= 27 in AA um
Dim s As Integer, s1 As Integer
If n < 27 Then
SpBu = Trim(Chr(n + 64))
Else
s = (n - 1) \ 26: s1 = (n - 1) Mod 26 + 1
SpBu = Trim(Chr(s + 64)) & Trim(Chr(s1 + 64))
End If
End Function

Function SpNr(AB22 As String) As Integer 'gibt für Spalte AB oder Adresse AB22 die Nr. 28 zurück
Dim s, r, n As Integer, Sp As String
Sp = Trim(UCase(AB22))
m1:
If Len(Sp) = 1 Then
SpNr = Asc(Sp) - 64
Else
s = Asc(Sp) - 64
If n = 0 Then
For r = 2 To Len(Sp)
If Asc(Mid(Sp, r, 1)) < 65 Then
Sp = Left(Sp, r - 1): n = 1
GoTo m1
End If
Next
End If
SpNr = s * 26 + Asc(Right(Sp, 1)) - 64
End If
End Function

Grüsse
Peter



Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige