Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1288to1292
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
VBA: Zeile.select trotz verbundener Zellen?
03.12.2012 12:33:01
Klaus
Hallo Forum,
ich habe eine Datei mit verbundenen Zellen geerbt. Es ist mir leider nicht erlaubt worden, den Zellenverbund aufzuheben.
Zellen D8:D10 sind verbunden. Ich möchte gerne im VBA Zeile 9 und nur Zeile 9 selektieren. Ein range("A9").entirerow.select selektiert mir die gesamten Zeilen 8:10 (ist ja klar, wegen des Zellenverbunds).
Wenn ich in der Mappe direkt auf die "9" der Zeile clicke, ist auch nur Zeile 9 selektiert (soweit so gut). Rekordere ich diesen Prozess, erhalte ich die Zeile rows("9:9").select : gebe ich eben dies ins Direktfenster ein, wird mir aber wieder der Bereich 8:10 komplett selektiert!
Ich habe auch Range("A9").Resize(1, Columns.Count).Select probiert, aber auch das gibt mir den gesamten Bereich ins select.
Kann ich die gewünschte Aktion (auf Zeile 9 clicken und NUR Zeile 9 selektiert haben) überhaupt in VBA umsetzen?
Hintergrund:
Ich möchte im Bereich 8:10 eine neue Zeile einfügen, danach soll der verbundene Bereich in Spalte D natürlich von Spalte 8:11 gehen. Per hand geht das auch (Zeile 9 clicken, rechts clicken, Zeile einfügen).
Das select brauche ich, da ich das im VBA über zwei Buttons lösen möchte, mit einer Messagebox dazwischen ("hier wirklich einfügen?"). Der User soll halt sehen, wo Excel grad ist.
In meiner Datei ist das ganze natürlich dynamisch und größer. Ich hab über 30 verschiedene Zellenverbünde in Spalte D, natürlich alle unterschiedlich groß und keiner Logik folgend. Das ganze geht über 1000 Zeilen und mehr.
Grüße,
Klaus M.vdT.

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

Betreff
Datum
Anwender
Anzeige
workaround gefunden ...
03.12.2012 13:00:28
Klaus
Hallo,
falls jemand ein ähnliches Problem hat, ich habe einen Workaround gefunden.
Rows("9:9").Select
selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

funktioniert nicht,
Rows("9:9").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
funktioniert aber einwandfrei. Mein Workaround:

Range("E9").Resize(1, 100).Select
Rows("9:9").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Und für den User siehts aus, als würd Excel über die selektierung eine Zeile einfügen.
Grüße,
Klaus M.vdT.

Anzeige
Schön, ansonsten lag's natürl am Select! ;-) orT
03.12.2012 16:43:29
Luc:-?
Gruß Luc :-?

richtig, aber:
04.12.2012 08:13:13
Klaus
Hallo Luc,
natürlich lags am .select, ABER: das hier ist ja ein Fall, in dem ich das .select haben will und mit voller Absicht verwende.
Die Lösung interressiert mich immer noch, allerdings nur noch aus rein akademischem Interesse:
Wie kann ich eine einzelne Zeile selektieren, die ein Spaltenweiser Zellenverbund kreuzt?
Ansonsten untersteicht dies meine gegebene Abneigung gegen verbundene Zellen nochmals deutlich. Verboten und verbannt gehört diese Option!
Grüße,
Klaus M.vdT.

Ich sagte ja bereits, dass diese Option in ...
04.12.2012 15:24:41
Luc:-?
…anderer KalkSoftware besser durchdacht ist als MS es bis heute für nötig hielt, Klaus.
Das liegt wohl daran, dass MS dabei nur an Tabellenköpfe und -vorspalten gedacht hat und kein vertikales Zentrieren über Auswahl einführen wollte. Dabei kann (und mitunter fast muss) man damit auch wesentlich Nützlicheres machen (vgl meine Diskussion mit {Boris} im Archiv). Jedenfalls sollte man das aber nur aus gutem Grund und bei fehlender Alternative tun, wobei Ausblenden von Zeilen oder Spalten innerhalb einer Tabelle die schlechtere wäre.
Zu deiner „akademischen“ Frage: Das ist mE nicht möglich ohne den Verbund (zeitweilig) aufzuheben, weil die xlAuswahlSteuerung den als eine Einheit behandelt. Das ist wohl auch bei wdTabellen so. Leider ergeben sich daraus in Xl mitunter auch Versetzungen des Auswahlbereichs, die MS generell hätte abfangen sollen. Trotzdem kann man sowohl in Xl als auch in VBA die Zellen des Verbunds separat ansprechen, nur eben nicht auswählen. Offensichtlich hielt MS das außerdem für unwesentlich, da ja die VerbundZelle in der xlLogik als Einheit aufgefasst wird → alle Zellen haben das gleiche Format, aber nicht den gleichen Wert, der normalerweise nur in der 1.Zelle steht bzw dahin verbracht wird. Bei Aufheben des Verbunds bleibt das dann in Xl so stehen, während LO/OO den alten Zustand inkl Formatierung wieder herstellt.
Übrigens hat MS da eigentl nichts anderes gemacht als das umzusetzen, was schon immer bei der Tabellengestaltung üblich war und ist. Ein Blick in ein beliebiges Zahlenwerk beweist das. Außerdem wird das auch in HTML berücksichtigt. Auch ein „über Auswahl zentrierter“ Titel kann nur per ColSpan so dargestellt wdn wie in der xlTabelle. Beim einfachen Kopieren und Einfügen in ein XlBlatt hast du dann lauter VerbundZellen für die ColSpans und RowSpans. ;-)
Gruß Luc :-?

Anzeige
verbundzellen als "eine Einheit"
05.12.2012 08:31:50
Klaus
Hallo Luc,
danke für die ausführliche Antwort!
weil die xlAuswahlSteuerung den als eine Einheit behandelt.
Wenn dem immer und konsequent so wäre... Was mich so irritiert hat, ist dass ich durch manuellen Click auf die Zeilennummer eben diese unmögliche auswahl herstellen kann, aber der manuelle Click sich im VBA nicht simulieren lässt.
Bestimmt könnte man mit API-Kentnissen den Mauszeiger selbst dazu bewegen, sich zur Zeilennummer zu begeben und dort zu clicken, aber ich glaube das wäre "mit Kanonen auf Spatzen".
Grüße,
Klaus M.vdT.

Ja, deshalb schrieb ich 'mitunter', ...
05.12.2012 14:29:50
Luc:-?
…Klaus! ;-)
Kann das jetzt leider nicht überprüfen, aber evtl geht's mit .EntireRow.Select bzw .EntireColumn.Select (oder hattest du das schon probiert)? Wenn nicht, wirst du recht haben!
Was den Mauszeiger betrifft – das konnte man unter Xl5-7 noch aufzeichnen, genauer, der lief bei jeder Aktion auf dem Blatt dann mit. Aber, ob eine derartige Aufzeichnung heute noch laufen würde…?
Gruß Luc :-?
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige