Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1156to1160
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
Inhaltsverzeichnis

Tabelle aufräumen

Tabelle aufräumen
Ronald
Hallo Excel-Spezies
Ich habe in einer Tabelle eine Spalte wo ich diverse Namen für ein Auswahlfeld führe.
Jetzt habe ich den Zustand, das auch Namen gelöscht werden können. Wie bringe ich es fertig die "Löcher" (siehe Beilage) zu entfernen so, dass alle Leerstellen (zwischen Heinz und Andreas) mit aufrücken entfernt werden? Gibt es da ein VB-Script?
Danke für eine Hilfe
Beilage:
https://www.herber.de/bbs/user/69618.xls
Gruss
Hugo
AW: Tabelle aufräumen
17.05.2010 14:08:17
grexx123
Du könntest die Spalte A durchsuchen und wenn der Wert leer ist dann die Zeile löschen...
AW: Tabelle aufräumen
17.05.2010 14:14:00
Ronald
Hallo grexx123
Danke für dein Tipp. Ich kann aber keine Zeile löschen da in anderen Spalten andere Informationen nicht entfernt werden dürfen.
Gruss
Hugo
welche vorgaben gibt's noch ?owT
17.05.2010 14:18:22
robert
AW: welche vorgaben gibt's noch ?owT
17.05.2010 14:26:14
Ronald
Hallo grexx123
Das einzige ist, innerhalb von diesem Bereich (A2 - A15), dass die Leerzellen durch nach "obenschieben" entfernt werden.
Gruss
Hugo
AW: Tabelle aufräumen
17.05.2010 14:10:04
ede
Hallo Hugo,
über Daten-sortieren sollte es am einfachsten gehen.
gruss
AW: Tabelle aufräumen
17.05.2010 14:34:36
welga
Hallo,
schreibe folgendes in den Code des Tabellenblattes:
Sub worksheet_change(ByVal target As Range)
If Not Intersect(ActiveSheet.UsedRange, target) Is Nothing Then
If Cells(target.Row, 1) = "" Then Cells(target.Row, 1).Delete shift:=xlUp
End If
End Sub

Gruß
welga
Anzeige
AW: Tabelle aufräumen
17.05.2010 14:51:52
Ronald
Danke Welga
Habe den Code in Tabelle1 (VB-Umgebung) kopiert und nun passiert nichts mehr.
Mach ich was falsch?
Gruss
Hugo
AW: Tabelle aufräumen
17.05.2010 15:16:51
hary
Hallo Hugo
evtl. mit einer extra Liste?
Tabelle1
 AB
1ZuständigeHier Datenliste nehmen
2HansHans
3FritzFritz
4  sss
5sssBruno
6BrunoHeinz
7HeinzAndreas
8  Günter
9AndreasKarl
10 
11Günter
12Karl
13   
14   
15   
16 <---in A16 ein Leerzeichen

verwendete Formeln
Zelle Formel
B2 {=INDIREKT("A"&KKLEINSTE(WENN(A$1:A$15<>0;ZEILE($1:$15);16);ZEILE()))}
B3 {=INDIREKT("A"&KKLEINSTE(WENN(A$1:A$15<>0;ZEILE($1:$15);16);ZEILE()))}
B4 {=INDIREKT("A"&KKLEINSTE(WENN(A$1:A$15<>0;ZEILE($1:$15);16);ZEILE()))}
B5 {=INDIREKT("A"&KKLEINSTE(WENN(A$1:A$15<>0;ZEILE($1:$15);16);ZEILE()))}
B6 {=INDIREKT("A"&KKLEINSTE(WENN(A$1:A$15<>0;ZEILE($1:$15);16);ZEILE()))}
B7 {=INDIREKT("A"&KKLEINSTE(WENN(A$1:A$15<>0;ZEILE($1:$15);16);ZEILE()))}
B8 {=INDIREKT("A"&KKLEINSTE(WENN(A$1:A$15<>0;ZEILE($1:$15);16);ZEILE()))}
B9 {=INDIREKT("A"&KKLEINSTE(WENN(A$1:A$15<>0;ZEILE($1:$15);16);ZEILE()))}
B10 {=INDIREKT("A"&KKLEINSTE(WENN(A$1:A$15<>0;ZEILE($1:$15);16);ZEILE()))}
B11 {=INDIREKT("A"&KKLEINSTE(WENN(A$1:A$15<>0;ZEILE($1:$15);16);ZEILE()))}
B12 {=INDIREKT("A"&KKLEINSTE(WENN(A$1:A$15<>0;ZEILE($1:$15);16);ZEILE()))}
{} Matrixformel mit Strg+Umschalt+Enter abschließen

Tabellendarstellung in Foren


formel aus:
http://www.excelformeln.de/formeln.html?welcher=160
gruss hary
Anzeige
warum..
17.05.2010 15:19:43
robert
Hi,
..schickst du eine datei mit einer spalte, wenn doch mehre
vorhanden sind.
nur an echtdatenaufbau kann eine vernünftige lösung erwartet werden.
gruß
robert
AW: warum..
17.05.2010 15:40:42
Ronald
Hi Robert
Danke für deinen Hinweis. Leider habe ich auch die Erfahrung gemacht, dass der umgekehrte Fall eintrat und man sich beschwerde ich solle mich nur auf das Wesentliche konzentrieren. Und im übrigen ist ja vielleicht auch nicht die ganze Datei für alle gedacht (Datenschutz).
Mein Wunsch ist ja in dieser Spalte genau beschrieben.
Gruss
Ron
AW: warum..noch einmal...
17.05.2010 16:42:42
robert
hi,
1.hast du ja keine originaldatei geschickt,
soll auch nicht sein, aber eine musterdatei mit dummydaten
ist immer gut
2. hast du eine lösung zum löschen der leerzeile erhalten
3. hast du darauf geantwortet, dass in anderen spalten der zeile was steht
bsp. wenn zelle A5 leer ist, kann dann in B5,C5 was stehen?
wenn jetzt A5 nach oben gelöscht wird, stimmt doch der bezug
zu B5,C5 nicht mehr.
oder liege ich hier mit meinen gedanken völlig falsch?
deshalb-nochmals deine 1.datei mit daten hochladen
gruß
robert
Anzeige
AW: warum..noch einmal...
17.05.2010 17:13:33
Ronald
Hallo Robert
Dieser Teil (mit den Namen) in einer Spalte dient nur dazu, als "Datenfütterung"bei einer "Namensauswahl-Box" zu fungieren. Wird ein Name nun im Teil der Spalte (mit den Namen) gelöscht hat dies keine Auswirkung auf die Zelle wo der Namen durch eben diese Auswahl bereits eingefügt wurde. Anmerkung: Ein Hinweis beim möglichen Löschen eines Namens für den Anwender muss dann natürlich angezeigt werden.
Damit dann in dem Teil der Spalte wo die Namen aufgelistet sind nach dem Löschen keine Leerzellen vorhanden sind, will ich mit dem Aufrücken von unten bezwecken, dass in der "Namensauswahl-Box" keine "Löcher" angezeigt werden.
Ich habe nun die Sache so gelöst, dass ich den Bereich (mit den Namen) markiere und über die Sortierfunfktion (von A-Z) diese Löcher auch "entfernen" kann. Nach dem Aufzeichnen habe ich nun den VB-Code und kann in einbauen. Vielleicht nicht die schönste Lösung aber sie funktioniert mit dem kleinen Nebeneffekt, dass die Namen auch noch alphapetisch sortiert sind.
Danke dir für deine Hilfestellung aber auch der Anregung, die bei mir auch einige Gedankengänge aktiviert hat.
Gruss
Hugo
Anzeige
Viell hat sich ja nichts geändert, dann...
17.05.2010 15:20:10
Luc:-?
…passiert auch nichts, Hugo… ;-)
Gruß Luc :-?
AW: Viell hat sich ja nichts geändert, dann...
17.05.2010 15:54:51
Ronald
Hallo Luc
Jetzt verstehe ich die "Frage" nicht ganz. Den Code habe ich wirklich wie beschrieben in die VB-Umgebung kopiert und dann versucht auszuführen. Mit F8 passierte gar nichts und mit F5 wurde nach einem Makro gefragt.
Muss ich etwas anderesr durchführen?
Danke und Gruss
Hugo
Die Routine ist eine Ereignisprozedur,...
17.05.2010 16:02:53
Luc:-?
…die nur durch das entsprechende Ereignis (hier: eine Änderung) ausgelöst wird, Hugo!
Trägst du einen neuen Wert ein oder klickst im relevanten Bereich nur in eine Zelle, sollte sich etwas tun (natürlich nur, falls etwas zu tun ist!)…
Das kann man auch alles in der VBEditor-Hilfe nachlesen!
Gruß Luc :-?
Anzeige
AW: Die Routine ist eine Ereignisprozedur,...
17.05.2010 16:55:29
Ronald
Danke Luc
Alles klar.
Gruss
Hugo
AW: Viell hat sich ja nichts geändert, dann...
17.05.2010 16:04:00
hary
Hallo Hugo
der Code gehoert in den Code der tabelle, dass hast Du ja.
Er startet erst wenn Du etwas in der SpalteA loescht. Gehe in eine Zelle mit einem Namen und loesche diesen dann Enter.
gruss hary
AW: Viell hat sich ja nichts geändert, dann...
17.05.2010 16:53:34
Ronald
Hallo Hary
Jetzt habe ich gesehen wie es geht. War so nicht klar ersichtlich wie das Verhalten ist.
Erst wenn ein Name gelöscht wird rückt alles darunter automatisch nach. Danke für deinen Hinweis.
Gruss
Hugo
AW: Tabelle aufräumen
18.05.2010 07:59:09
welga
Hallo,
wenn du in Spalte 1 nun einen Namen löschst, dann sollte eigentlich die leere Zelle gelöscht werden.
Seltsam, bei mir funktioniert es so....
Anzeige
AW: Tabelle aufräumen
18.05.2010 16:27:32
Ronald
Hallo Welga
Die Problematik hat sich geklärt. Was ich nicht wusst, dass ich einen Namen löschen muss damit der VB-Code aktiv funktioniert.
Es war mein Fehler; Meine Spalte war schon so erstellt, dass eine Zelle leer war und somit passierte wirklich nichts weil ich auch keine Löschung machte.
Danke an dich für deine Hilfe und Geduld
Gruss
Hugo
AW: Tabelle aufräumen
17.05.2010 19:11:52
eric
Hallo,
probiers mal damit :

Sub LEEREZEILEN_WEG()
'   löscht alle Leerzeilen in allen Tabellen der Mappe
'   ansonsten einfach "Blatt" setzen
Dim ac As Long, z As Long, zm As Long
Dim ws As Worksheet
For Each ws In Sheets
With ws
If Application.WorksheetFunction.CountA(.Cells) > 0 Then
ac = Application.Calculation
Application.Calculation = xlCalculationManual
zm = .Cells.Find(what:="*", After:=.Range("A1"), _
searchOrder:=xlByRows, SearchDirection:=xlPrevious).Row - 1
For z = zm To 1 Step -1
If Application.WorksheetFunction.CountA(.Rows(z).EntireRow) = 0 Then
.Rows(z).EntireRow.Delete
End If
Next z
Application.Calculation = ac
End If
End With
Next ws
End Sub
ohne Garantie !
MfG Eric
Anzeige
AW: Tabelle aufräumen
18.05.2010 16:23:57
Ronald
Hallo Eric
Danke für deine Lösung. Dies ist bis jetzt der beste Ansatz. Und er funktioniert auch perfekt.
Gruss
Ron

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige