Excel - Zellenverbund Versteckte Daten machen Probleme

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hi Daemonia, kopiere folgendes Makro in ein Modulblatt:
Sub residenteWerteLöschen()
Dim c, Wert
For Each c In Selection
If c.MergeCells = True Then Wert = c.Value: c.MergeCells = False: c.Offset(0.1).Value = "": c.Offset(0.1).Value = "": c.Offset(0.1).Value = "": c.Value = Wert
Next
End Sub

achte drauf, dass in der 3. oder 2. Spalte neben der linken markierten Spalte keine wichtigen Daten stehen (wenn in dieser Zeile nur 2 oder 3 Zellen verbunden wären), auch wenn die verbundenen Zellen ein oder zwei Zellen weiter rechts in der markierten Zeile anfangen, wirds gefährlich: das Makro löscht die Inhalte der drei Zellen rechts von der ersten verbundenen Zelle! (sichere auf jeden Fall die Ausgangsdatei unter einem verwandten Namen)

Speichere die Datei oder arbeite mit einer Sicherungskopie (Makros löschen das Rückgängig-Register)
Anschließend markieret Du den Bereich mit den verbundenen Zellen (die verbundenen Spalten werden automatisch mitmarkiert) und setzt das Makro in Gang.
[warum das Makro auch den Wert der 1. verbundenen Zelle nicht von selbst erhält, weiß ich nicht, um das zu erreichen habe ich noch die Befehlsfolge Wert = c.value: ... : c.value = Wert eingearbeitet.]
Falls Du noch nie ein Makro eingefügt hast:

Anweisung zur Installation eines Makros:

Klicke mit der RMT auf die Blattnamensfahne(hängt unten am Blatt) und wähle aus dem Kontextmenü "Code anzeigen". Es öffnet sich der VBA-Editor. Im Menü EINFÜGEN wählen: MODUL, [Es erscheint ein (fast) leeres Makroblatt (wahrscheinlich steht oben Option Explicit, das lässt Du drin stehen und gehst mit dem Cursor unterhalb rein).] Kopiere da hinein den folgenden Sub:...-Text (heisst Sub, weil es xl untergeordnet ist, Abk. f. Subroutine, auch mit Unterschleife übersetzbar) Mit

Alt+F8

erhältst Du eine Liste der verfügbaren Makros (in Deinem Fall nur eines) nach Auswählen kann man das mir ausführen starten.

Speichere diese und alle anderen offenen Dateien jedesmal, bevor Du das Makro startest, es könnte sein, dass was schief geht oder es sich nicht mehr stoppen lässt!

in diesem Fall musst Du mit dem "Affengriff" Strg+Alt+Entf(=del) den Task-mgr aufrufen und im 1.Blatt (Anwendungen) Excel markieren, auf TASK BEENDEN drücken und im folgenden Dialog "sofort beenden" wählen. Dabei gehen dann alle nicht gespeicherten xl+VBA-Daten verloren.

also nochmal: vorher speichern! (schadet ja meist nicht!)

und noch was:
Zellen verbinden macht nur Probleme,
in mehrfacher Hinsicht.

Horizontal über Auswahl zentrieren

ist fast genausogut!

Alt + t, z, a, Alt + t, ü, ok.

Ist zwar ein Bandwurm und mit der Maus vielleicht schneller, aber es geht. Nur wenig schneller:

Strg + 1, a, Alt + t, ü, ok.

0

Sorry aber... ich versteh die Anleitung nicht... :(

achte drauf, dass in der 3. oder 2. Spalte neben der linken markierten Spalte keine wichtigen Daten stehen

Alle daten die da stehen sind wichtig.

das Makro löscht die Inhalte der drei Zellen rechts von der ersten verbundenen > Zelle!

Es sind auch nicht immer 3 Zellen verbunden, mal sind es 2 mal 3 mal 5 ect immer an verschiedenen Stellen.

Klicke mit der RMT

was ist die RMT?

syr aber von codes habe ich so gar keine Ahnung, trau mich da auch nicht recht ran da das Firmendaten sind

0
@Deamonia

sehe Deinen Kommentar erst jetzt. RMT ist Rechte MausTaste (ebenso wie LMT, scheint tatsächlich keine übliche Abk. zu sein)
alles weitere schaut trübe aus.

Das Makro würde folgendes machen:

  1. alle Zellen der Auswahl testen, ob es verbundene Zellen sind, immer angefangen von links, also der ersten eines verbundenen Zellblocks.
  2. den Wert dieser Zelle in einer Variablen zwischenspeichern
  3. den Zellblock in Einzelzellen auflösen
  4. in die Zelle rechts daneben "ein Nichts" setzen, also den Wert löschen
  5. Fehler im Code: beabsichtigt war, auch zwei und drei Zellen daneben den Eintrag zu löschen, aber ich hab nur das erste Zelle daneben löschen wiederholt: .offset(0, 1) anstatt .offset(0, 2) und .offset(0, 3)
    Es würde also IMMER die gleiche Zahl von Zellen daneben löschen, was Dir nicht hilft und zu Werteverlusten führen kann
  6. den zwischengespeicherten Wert in die vorher gefundene Zelle wieder eintragen
  7. nächsten verbundenen Zellblock suchen.

Da Du nun sagst, dass mal 3, mal mehr oder weniger Zellen verbunden sind (konnte ich dem Screenshot nicht entnehmen), muss ich eine Möglichkeit finden, die Zahl der ursprünglichen Zellen eines verbundenen Zellblocks rauszukriegen, so dass NUR DIESE, aber trotzdem alle ehemals verbundenen geleert werden. Sollte möglich sein, muss ich aber einiges rumprobieren (meine VBA-Hilfe streikt), evtl gugln, das dauert.

Werde mich aber um ein Makro kümmern, das auch Deinen Anforderungen genügt.

0
@Iamiam

so, da ist es:

Sub residenteWerteLöschenVar()
'findet verbundene Zellen innerhalb e. Markierung, trennt sie u.leert ggf residente Inhalte rechts nur im freigesetzten Bereich
Dim OrigAuswahl, Breite, c, n, Wert
OrigAuswahl = Selection.Address
For Each c In Range(OrigAuswahl)
If c.MergeCells = True Then If c.Offset(1, 0).Row - c.Row > 1 Then c.Select: MsgBox ("senkrecht Verbundene Zellen=>Abbruch!"): End '
Breite = 0
If c.MergeCells = True Then
Wert = c.Formula
Breite = c.Offset(0, 1).Column - c.Column
c.MergeCells = False
For n = 1 To Breite
c.Offset(0, Breite - n).Value = ""
c.Formula = Wert
Next n
End If
Next c
End Sub ' dauert ziemlich lang /Einzelverbund

Das Makro sollte nun gefahrlos funktionieren. Es analysiert die Zahl der verbundenen Zellen (Spalten) und regeneriert nicht nur die Werte, sondern auch ggf die Formeln.
Hast Du allerdings verbundene Zellen über mehrere Zeilen (also senkrechten Verbund), meldet es das, verlässt die Markierung und geht zu dieser Zelle. Die musst Du dann von Hand bearbeiten, das hätte sonst das Makro nochmals erheblich verkompliziert.
Wenn Du noch Fragen hast, bitte nicht hier, sondern per FrAntrag (den ich aber nach kurzer Zeit wieder aufheben würde) übermitteln.
geht sicher auch eleganter, aber es geht!

0
@Iamiam

"und regeneriert nicht nur die Werte": also nur - wie gewünscht- diejenigen der Verbundenen in der linken Zelle, die anderen bleiben leer. Ist mir -wie auch allen anderen- ohnehin schleierhaft, warum da bei Dir was drinsteht.

0
@Iamiam

ich könnte mir vorstellen, dass MS die Erhaltung der Werte im "Untergrund" für spätere Versionen plant und das irgendwann mal vergessen hat, vollständig zu verbergen.

0
@Iamiam

Hi Daemonia, danke für den Stern. Und Glückwunsch zum Einstieg in die Benutzung von Makros!

0

Habe glaube ich eine Lösung gefunden auch wenn die recht absurd ist.

Wenn ich den Zellenverbund aufhebe und dann über rückgängig die zellen wieder verbinde werden die "überflüssigen" Werte gelöscht, und diesmal tatsächlich!

trenne ich jetzt erneut (nur zum testen) sind sie immer noch weg.

Muss ich zwar 1000x "ok" klicken wenn er mich warnt das die Daten aus den verbundenen Zellen gelöscht werden aber einfach enter gedrückt halten ist echt kein Aufwand im vergleich zu alles von Hand löschen

Du hast bemerkt, dass ich ein speziell auf dierses Problem geschneidertes zweites Makro geschrieben habe? -siehe meine AW weiter unten!

0
@Iamiam

ja, habe ich gesehen, vielen dank für deine Mühe und sorry das sie umsonst war, aber ich trau mich da einfach nicht ran. Müsste mich erstmal privat damit beschäftigen bevor ich sowas auf dem Firmenrechner starte... nicht böse gemeint aber sowas kann richtig ärger geben, wenn man einfach codes ausführt von denen man selber keine ahnung hat...

Ach und außerdem hattest du geschrieben das in bestimmten Zellen keine wichtigen Daten stehen dürfen, aber alle Daten sind wichtig...

0

Excel VBA - Zellen nach Datum löschen?

Hallo Liebe Excel - Kenner,

gibt es die Möglichkeit oder einen Code, wo ich Zellen löschen die ich nach Datum und Uhrzeit bestimme?

Bsp: Zelle A1: K30 löschen am 25.03.2016 - 14:00 Uhr

Gruß Manuel

...zur Frage

Wie kann ich bei Excel Zellen überprüfen und wenn der Wert nicht zwischen 1 und 6 liegt ein Error ausgeben bzw. es aus der Zelle löschen?

...zur Frage

Wieso kann ich in Excel in verbundene gesperrte Zellen Werte kopieren?

Hallo an die Excel-Experten!

Ich habe folgendes Problem:

In einem Excel-Sheet habe ich verbundene Zellen, zum Teil gesperrt (grau oder weiß), zum Teil nicht gesperrt (grün). Das Sheet habe ich "ganz normal" (Haken bei Gesperrte Zellen auswählen und Nicht gesperrte Zellen auswählen) mit Blattschutz gegen Änderungen geschützt.

Wenn ich nun eine der ungesperrten Zellen wähle und kopiere, danach eine andere ungesperrte Zelle und mit gedrückter STRG-Taste ein oder mehrere gesperrte Zellen wähle, dann mittels "Werte einfügen" einfüge und die folgende Fehlermeldung "Für diese Aktion müssen alle verbundenen Zellen dieselbe Größe haben" mit OK quittiere, ist der Wert aus der kopierten Zelle sowohl in der gewählten ungesperrten, als auch in den gewählten gesperrten Zellen eingetragen (Formeln, fester Text o.ä. werden überschrieben)

Das Problem tritt nur bei verbundenen Zellen auf!

Kennt jemand das Problem und genialerweise auch einen Ausweg? (von den verbundenen Zellen kann ich leider nicht weg, da es ein formatiertes Sheet ist)

...zur Frage

Excel Zellen aus verschiedenen Tabellen addieren

Hi ich hab keine Ahnung von excel drum bitte ich um möglichst 'einfache' Antworten :-) ich möchte verschiedene Zellen aus zwei verschiedenen tabellenblättern addieren und sie in Blatt 3 dann 'zusammen rechnen' also dort in einer Zelle das Ergebnis darstellen. Habe in Google leider nur etwas zu 'gleichen Zellen aus verschiedenen Tabellen' gefunden. Bei mir sind die Zellen aber an unterschiedlichen Stellen.. Bitte um Hilfe !!

...zur Frage

Was möchtest Du wissen?