Excel 2010 - leere Zeilen nicht generieren

M

Grand Admiral Special
Mitglied seit
22.03.2005
Beiträge
11.094
Renomée
527
Standort
P3d VIP Lounge
Also folgendes Szenario:

Es gibt zwei Reiter. Im Reiter 1 werden Daten hinterlegt. Wenn die Spalten X+Y ausgefüllt werden, soll die ganze Zeile nach Reiter 2 kopiert werden, wo die Daten weiter verwendet werden.

Meine Formel lautet:
Code:
Wenn X+Y, dann kopiere Inhalt von Reiter 1 nach Reiter 2, sonst 0

Excel macht das auch sauber. Allerdings sieht das Ergebnis davon so aus:

Reiter 1: Spalte X + Spalte Y = erfüllt

Reiter 2:

Zeile 1 = Spinat
Zeile 2 = Rotkohl
Zeile 3 = 0
Zeile 4 = 0
Zeile 5 = Currywurst

Mein Problem ist, dass die Zeilen mit 0 auch angezeigt werden. Indem ich einen Filter auf größer als 0 setze, ist mir leider nicht geholfen.

Wie vermeide ich, dass die Zeilen = 0 überhaupt nach Reiter 2 kopiert werden?
 
List sich für mich wie weiter schachteln.

(Wenn X+Y; kopiere Inhalt von Reiter 1 nach Reiter 2; (0; leer; sonst))

*noahnung*

Ist gerade zu spät und die Woche war lanf. Muss mal den Dachs machen.

Falls das nicht hilft kann ich morgen Abend ggf. nochmal gucken.
Dann schmeiße ich auch nochmal mein Arbeitsnotebook an um an Excel zu kommen :)
 
Ja, so hatte ich es anfangs auch versucht. Leider ließ Excel in der Formel diese doppelte Bedingung (für die leeren Felder) nicht zu. Oder hab ich da was übersehen?

Sry, dass ich nicht geantwortet habe. Hatte es im Kopf abgehakt, weil die Tabelle jetzt doch anders strukturiert werden soll.
 
Ich versteh leider die Ausgangssituation nicht ganz, kannst du keine beispielhafte kurze Tabelle aufschreiben? Ich hatte das Problem auch schon, dann könnte ich da meine Lösung dazu sagen.
 
100 pro verstanden habe ich es auch nicht *g*

Aber ich habe mal was angehängt.
http://www.file-upload.net/download-9564038/Test.xlsx.html

Tabelle 1 hat die Spalten X und Y und nur wenn die gefüllt sind, wird in Tabelle 2 in der Spalte A was reingeschrieben.

Ich vermute aber mal es ist gemeint das die leeren Zellen, oder von mir aus auch die mit der 0, komplett gelöscht werden.

Also anstatt des Resultats:
leer
blabla
leer
blubbblubb

Soll rauskommen:
blabla
blubbblubb

Das dürfte dann nur per Skript gehen meine ich.
 
Zuletzt bearbeitet:
Na so wie ich ihn verstanden habe, stören ihn die "0" in der Zeile, somit hättest du mit deiner Datei das schon gelöst. Die Leerzeilen kann man rausfiltern, über dieses blöde Mac-MS Office sieht das wieder anders aus, aber im Prinzip gehts beim Windows-MS Office genauso:
bildschirmfoto2014-09injpq.png


Mit einem Skript wird das sicherlich eleganter sein, aber das muss dann jemand erklären, der sich wirklich damit auskennt.
 
Also, es gibt 3 Reiter: Reiter 1 ist die Datensammlung, Reiter 2 ist die Bearbeitung, Reiter 3 ist die Ausführung

Aktuell werden ganze Zeilen aus 1 in 2 manuell kopiert, damit die in 3 hinterlegte Formel sich aus 2 bedienen kann. Der Nachteil ist aber, dass man es manuell machen muss.

Mein Gedanke war, dass bei Erreichen einer Voraussetzung in 1 (z.B. x hinterlegt), soll automatisch nach 2 kopiert werden.

Nachdem ich mich an einigen Formeln versucht habe, lief das auch so. Allerdings war dann ohne das Setzen von X in Reiter 1, die entsprechende Zeile in Reiter 2 = 0.

Ichh hatte hier schon mit einigen Kollegen darüber sinniert und zu keinem wirklichem Ergebnis gekommen. Die Lösung mit Skript/Makro wurde auch in den Raum geworfen, aber bei der Frage, wer das umsetzen soll, erklärte sich dann auch keiner bereit. Ich sehe das Thema auch nicht wirklich bei mir, hatte nur den Fehler gemacht, den Schutz einiger Bereiche vorzunehmen. Und wenn man einmal nen Finger gibt, ist ganz plötzlich der Arm ab.

--- Update ---

Na so wie ich ihn verstanden habe, stören ihn die "0" in der Zeile, somit hättest du mit deiner Datei das schon gelöst. Die Leerzeilen kann man rausfiltern, über dieses blöde Mac-MS Office sieht das wieder anders aus, aber im Prinzip gehts beim Windows-MS Office genauso:
bildschirmfoto2014-09injpq.png


Mit einem Skript wird das sicherlich eleganter sein, aber das muss dann jemand erklären, der sich wirklich damit auskennt.
Sehe ich das richtig, dass hier nur gefiltert wird? Mit den Filtern geht es leider nicht, wie gewünscht. Da sitzen tausend Leute vor und es müsste bei jeder Eingabe neu gefiltert werden. Einfach zu hohes Fehlerpotential...
 
So funktioniert das doch dann, oder? Wenn bspw. zwei Zeilen, wie in deinem oberen Beispiel ausgefüllt sind, und die Formel, wie sie Onkel Homie in seiner Datei verwendet hat, im Reiter 2 eingetragen ist, dann funktioniert das ja automatisch. Und wo die zweite Zeile fehlt, steht (bei ihm) nichts in der Zelle. Oder was möchtest du noch erreichen?

Sehe ich das richtig, dass hier nur gefiltert wird? Mit den Filtern geht es leider nicht, wie gewünscht. Da sitzen tausend Leute vor und es müsste bei jeder Eingabe neu gefiltert werden. Einfach zu hohes Fehlerpotential...

Ja, das ist nur gefiltert. Bei vielen Benutzern oder ständiger Änderung der Zelleninhalten funktioniert das dann nicht. Das bringt es eigentlich nur, wenn du die Zeilen filterst und gleich ausließt. Und die Eingangsparameter nicht mehr verändert werden. Da hast du Recht.
 
Ja, so wie bei Homie beschrieben wäre es optimös.

Mit den Filtern ist es eben so eine Sache. Auf der einen Seite sehr einfach, auf der anderen aber unübersichtlich. Stell Dir Leute mit 50+ vor, die in eine Ellenlange Tabelle reingehen, ihre Filter setzen und nicht wieder rausnehmen, die Auswahl so abspeichern und dann kommt die nächste Plinse und haut ohne Anpassung der Filter die Zeilen in Reiter 2. Da kommt dann nur noch 10% hinten raus ;)
 
Dann sperr doch einfach die Tabelle entsprechend mit nem voreingestellten Filter für die Leerzellen.

Oder muss der Filter für jeden veränderbar sein?

Dann ginge das wohl echt nur per Skript denke ich.
Man könnte dann filtern wie man meint und anschließend auf nen Button klicken "Leerzellen ausblenden" oder so.

edit:
Da ich gerade keine Zeit habe das selber zu basteln habe ich meine zeit mal in Google verschwendet ;D

http://www.administrator.de/forum/wenn-zelle-leer-dann-zeilen-ausblenden-186821.html

Private Sub Worksheet_Change(ByVal Target As Range)
Dim zeile As Integer
zeile = 1
For zeile = 1 To 100
If Range("b" & zeile).Value = "0" Then
Rows(zeile).Hidden = True
Else
End If
Next zeile
End Sub

Siehe letztes Posting.
 
Zuletzt bearbeitet:
Es würden halt folgende Probleme in der Praxis entstehen

1. Filter nicht mehr änderbar
2. Filter nicht dynamisch - d.h. der gesetzte Filter reagiert nicht auf spätere Eingaben (jedenfalls funzte es in meinem Test nicht)
3. man müsste den Plinsen erklären, dass sie etwas tun müssen - ich weiß schon vorab, dass das zuviel verlangt ist...daher der Automatismus mit den Formeln
 
Dann nimm das Script oben :)
 
ich weiß zwar nicht was Du vorhast, aber der Link ist wohl ein Verstoß gegen unsere Sicherheitsrichtlinien auf Arbeit ;)


check das noch einmal @home
 
Das Script steht doch schon oben im Quote ;)

Hier nochmal der komplette Beitrag:
ich hab dir mal einen kleinen Makro geschrieben.
In der For-Schleife musst du nur die Endzahl (100) auf deine Bedürfnisse anpassen.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim zeile As Integer
zeile = 1
For zeile = 1 To 100
If Range("b" & zeile).Value = "0" Then
Rows(zeile).Hidden = True
Else
End If
Next zeile
End Sub

Ist aber leider so das durch eine Änderung in einer Zelle die Schleife immer wieder ausgeführt wird. Das nimmt Rechenzeit in anspruch.

Mehr ist das theoretisch nicht.
Makro anlegen und irgenwie benennen -> Script rein -> Makro ausführen.
 
Zuletzt bearbeitet:
Also, es gibt 3 Reiter: Reiter 1 ist die Datensammlung, Reiter 2 ist die Bearbeitung, Reiter 3 ist die Ausführung

Aktuell werden ganze Zeilen aus 1 in 2 manuell kopiert, damit die in 3 hinterlegte Formel sich aus 2 bedienen kann. Der Nachteil ist aber, dass man es manuell machen muss.
Mein Gedanke war, dass bei Erreichen einer Voraussetzung in 1 (z.B. x hinterlegt), soll automatisch nach 2 kopiert werden.
...

vermutlich nicht mehr aktuell, trotzdem muss man sagen, dass man das so besser nicht angeht: jede Zeile mit einer Marke zu versehen, damit sie übernommen wird in eine andere Tabelle;
für eine zu übernehmende Zeile muss es ja ein Kriterium geben, weswegen die Zeile übernommen werden soll, und dieses Kriterium baut man in die Übernahmeformel ein, auf die Weise erhält man eine zweite Tabelle (reiter 2) mit den übernommenen Zeilen, in der Tabelle wird es dann einige unerwünschte Leerzeilen geben;
die Tabelle 2 unter reiter 2 kann man dann nach Tabelle 3 in reiter 3 erst kopieren, dann in einem Makro die Leerzeilen eliminieren, dazu kann man so vorgehen, wie das in "Programmierung\eigene Programmvorstellungen..." Beitrag 24 ab Section "well-ordered copying..." vorgemacht hat
man könnte aber auch ohne Zwischenschritt in Reiter 2 die gefragten Daten durch ein (komplexeres) Makro automatisch wie auch immer geordnet und lückenlos in eine zweite Tabelle bringen
aber dazu fehlen in der ursprünglichen Anfrage zu viele Informationen darüber welche Daten mit welchem Zweck überhaupt benötigt werden ...
 
Moin,

tut mir Leid, wenn ich noch keine Rückmeldung gegeben hatte.

Die Einbindung von MakroScripten hat bei uns zu ziemlichen Problemen geführt. Mehrere Mitarbeiter mussten mit den Dateien arbeiten und manchmal war es dann so, dass Kollege eins in der Datei war, aber in Reiter 2 nicht mehr filtern konnte, obwohl Reiter 1 in der selben Tabelle sich noch filtern lies. Kollege 2 machte dann die gleiche Erfahrung mit umgekehrten Reitern. Versteht keine Sau!

Deswegen möchte ich da kein Makro mehr einbinden, auch wenn andere Makros vielleicht laufen mögen. Ich will mir den Schuh einfach nicht mehr anziehen.

Trotzdem vielen Dank für den Support!!!
 
Zurück
Oben Unten