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

Block löschen wenn in Zelle darüber best. Wert

Block löschen wenn in Zelle darüber best. Wert
wip
Hallo miteinander
Ich möchte folgendes tun:
Wenn in einer Zelle in einer Excel Tabelle folgendes steht: "MMMMM------Quelle------" soll in der bereinigten Version diese Zelle leer sein.
Das ist ja an sich kein Problem.
Wie soll ich es aber anstellen, wenn beispielsweise folgendes steht:
MMMMM------Quelle------
- besser essen 07/98
- erfasst von XXXX
- am 12.12.00
Schälen Sie die Kartoffeln und legen Sie diese in die
Bouillon ein. Schneiden Sie die Zwiebeln und
Ich möchte nun nicht nur die Zelle mit "MMMMM----Quelle...." leer werden lassen, sondern alle Zellen, welche an diesen Bereich angeschlossen sind. D.h. "besser essen", "erfasst von..." sowie "am 12.12.00".
Sobald eine Zeile dazwischen wieder leer ist, soll diese aber beibehalten werden. Bspw. "Schälen Sie die Kartoffeln...." soll weiterhin bestehen bleiben.
Die Anzahl Zeilen, welche direkt unter "MMMMM------Quelle" angeschlossen sind, variieren, weswegen ich nicht einfach immer die x Zellen nach diesem Eintrag leer werden lassen kann.
Hat jemand eine Idee?
AW: Block löschen wenn in Zelle darüber best. Wert
13.02.2006 22:42:50
daniel
Hallo
wenn du sicher bist, daß der zu löschende Bereich in alle Richtungen durch Leerzellen abegrenz ist, kanns du von der gefundenen Zelle mit
Zelle.CurrentRegion.selcet
deb ganzen Block selektieren und löschen
Gruß, Daniel
AW: Block löschen wenn in Zelle darüber best. Wert
14.02.2006 17:51:52
wip
Hi und danke vielmals für die Antwort.
Zwar verfüge ich über die Basics (wirklich Basics) in VBA - weiss aber leider nicht, wie ich diesen Befehl in meine Formel einbauen soll, resp. das VBA mit dieser kombinieren kann.
Diese lautet bisher:
=WENN(ISTLEER(A1);"";WENN(ISTFEHLER(FINDEN(" Categories:";A1));A1;" Categories: China"))
und sollte eben noch mit der obigen Funktion erweitert werden.
Die Basisfunktion arbeitet sich durch eine Rezeptesammlung mit chinesischen Rezepten und ersetzt überall dort, wo Category erscheint, den Eintrag (bspw: Poulet, Gewürz, Asiatisch) nur mit China. Diese Formel ändere ich je nach Rezeptsammlung...griechisch, italienisch usw...um.
Jetzt müsste ich eben nur noch den Block mit den Rezepten wegbringen.
Beispiel: https://www.herber.de/bbs/user/31043.xls
Vielen Dank
Anzeige
AW: Block löschen wenn in Zelle darüber best. Wert
14.02.2006 23:54:07
daniel
Hallo
deinen Wunsch in die Formel mit einzubauen ohne VBA ist schon sehr schwierig, da muß ich leider passen. in VBA lässt sichs mit einer kleinen Schleife erledigen:
On error resume next
do
err = 0
Range("G:G").find(What:="MMMMM--------------------------QUELLE-".currentregion.clearcontents
loop until err0
on error goto 0
zum Zweiten Thema:
Excel interpretiert das -Zeichen am anfang als Rechenzeichen. Findet er dahinter einen Text, den er als Formel identfiziert, setzt er ein gleichheitszeichen davor und versucht die Zelle zu berechnen. Kann es keine Formel erkennen, beläßt der den Inhalt als Text.
behelfen kannst du dir, in dem du as Format der Zellen von Standard auf Text umstellst.
Dann kannst du die Gleichheitszeichen mit Ersetzen entfernen.
Beim nächsten Kopieren der Daten stellst du das Textformat schon vor dem Kopieren ein.
gruß, Daniel
Anzeige
AW: Block löschen wenn in Zelle darüber best. Wert
15.02.2006 17:05:34
wip
Hi Daniel und ein Mal mehr danke.
zum zweiten thema:
[quote]
behelfen kannst du dir, in dem du as Format der Zellen von Standard auf Text umstellst.
Dann kannst du die Gleichheitszeichen mit Ersetzen entfernen.
[/quote]
danke dir...darauf hätte ich dumme Nuss eigentlich auch kommen können :(
und nun zum ersten:
Ich musste bei der Zeile:
Range("G:G").find(What:="MMMMM--------------------------QUELLE-").currentregion.clearcontents
noch eine Klammer einfügen damit es funktionierte.
Leider löscht das Makro aber nun alle Einträge und nicht nur den Block, in welchem Quelle geschrieben steht.
Hast Du eine Idee zum Umschreiben des Scripts?
Anzeige
AW: Block löschen wenn in Zelle darüber best. Wert
15.02.2006 22:28:44
daniel
Hallo,
das mit der Klammer kann schon mal passieren, wenn man den Code aus dem Kopf schreibt ;-)
An das Zweite Problem habe ich leider auch nicht gedacht, du hast in Spalte G:G ja keine Leerzellen, sondern es steht ja überall ne Formel drin.
Foldende Möglichkeiten:
a) du änderst den Code um von Range("G:G") auf Range("A:A")
Damit löschst du den Text in den Ursprungsdaten.
Falls das ein Problem ist und die Ursprungsdaten erhalten bleiben sollen, würde ich es so machen:
b) bevor du die Formel in Spalte G einträgst und nach unten kopierst,
setzt du in Spalte A den Autofilter (wichtig: dazu die Ganze Spalte markieren!)
und gehst auf "nicht Leere" jetzt kopierst du die Formel nach unten. In die ausgeblendeten Zeilen wird die Formel jetzt nicht eingetragen und die Currentregion-Mehtode funktioniert.
Falls du die Formeln schon vollständig nach unten kopiert hast, kannst du es auch andersrum machen, du filterst in der Spallte A nach "Leere" und löschst dann in Spalte G die Formeln. Du kannst dazu die Markierung ruhig nach unten ziehen, die ausgeblendeten Zeilen werden nicht gelöscht.
Danach kannst du dann das Makro laufen lassen.
Gruß, Daniel
Anzeige
AW: Block löschen wenn in Zelle darüber best. Wert
17.02.2006 15:50:53
wip81
Hi Daniel
und danke erstmal für Deine Hilfe...ich werde mich dort mal dahinterklemmen wenn ich Zeit habe.
Viele Grüsse

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige