Supportnet / Forum / Tabellenkalkulation
Mal wieder ein Problemchen wo ich nicht weiter komme :(
Frage
Hallo und noch Schöne Weihnachtsfeiertage allen!
Folgende Frage!
Ich habe eine Spalte und möchte immer vom letzten Wert der in der Spalte eingetragen ist eine andere Zelle subtrahieren. Nun hab ich das Problem - wie stelle ich es an das immer die letzte belegte Zelle der Spalte "gefunden" wird???
THX! und Ho Ho Ho ;-)
Antwort 1 von coros
Moin Hawky,
auch Dir ein frohes Weihnachtsfest.
Mit nachfolgendem Code kannst Du den Wert der letzten Zelle einer Spalte, in diesem Code die Spalte A, die einen Wert enthält ermitteln und diesen dann weiterverarbeiten(in diesem Beispiel z.B. zur Anzeige). Kopiere den nachfolgenden VBA Code in ein StandardModul und starte es über eine Befehlsschaltfläche. In diesem Beispiel wird eine Bildschirmmeldung mit dem gefundenen Wert ausgegeben. Wenn Du ein genaueres Makro benötigst, musst Du mehr Angaben machen, welche Spalte, wohin soll der gefundenen Wert geschrieben werden usw.
Ich hoffe, Du kommst klar. Bei Fragen oder Problemen melde Dich. Dann aber bitte ein paar mehr Infos.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
auch Dir ein frohes Weihnachtsfest.
Mit nachfolgendem Code kannst Du den Wert der letzten Zelle einer Spalte, in diesem Code die Spalte A, die einen Wert enthält ermitteln und diesen dann weiterverarbeiten(in diesem Beispiel z.B. zur Anzeige). Kopiere den nachfolgenden VBA Code in ein StandardModul und starte es über eine Befehlsschaltfläche. In diesem Beispiel wird eine Bildschirmmeldung mit dem gefundenen Wert ausgegeben. Wenn Du ein genaueres Makro benötigst, musst Du mehr Angaben machen, welche Spalte, wohin soll der gefundenen Wert geschrieben werden usw.
Option Explicit
Sub Letzte_Zelle_ermitteln()
MsgBox Cells(Range("A65536").End(xlUp).Row, 1)
End SubIch hoffe, Du kommst klar. Bei Fragen oder Problemen melde Dich. Dann aber bitte ein paar mehr Infos.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von hawky
Oliver vielen Dank - eine Möglichkeit ohne VBA gibt es nicht bei Excel?
Hab leider von VBA sehr sehr wenig Ahnung.
Ich möchte also von der Letzten in der Spalte enthaltenen Zelle eine vorherige Zelle subtrahieren und das Ergebnis in einer anderen Zelle (und Spalte) ausgeben!
Gibts nicht irgend so ein "Befehl" der die letzte belegte Zelle einer Spalte findet?? Ist doch sicherlich ein Problem, welches sehr viele Leute haben, die z.b. tägliche Daten eingeben und mit diesen dann weiter arbeiten.
Gibts wirklich keine Mgl. dann muss ich es wohl doch über VBA machen, kann man VBAs auch stets und immer laufen lassen, weil derzeit enthält die Exceldatei schon ein VBAMakro, allerdings starte ich die jedesmal nur wenn ichs ausführen will und das soll auch so sein. Dieses eventuell hier benötigte Makro sollte aber stets im Hintergrund laufen.
Schöne Weihnachten!
hawky
Hab leider von VBA sehr sehr wenig Ahnung.
Ich möchte also von der Letzten in der Spalte enthaltenen Zelle eine vorherige Zelle subtrahieren und das Ergebnis in einer anderen Zelle (und Spalte) ausgeben!
Gibts nicht irgend so ein "Befehl" der die letzte belegte Zelle einer Spalte findet?? Ist doch sicherlich ein Problem, welches sehr viele Leute haben, die z.b. tägliche Daten eingeben und mit diesen dann weiter arbeiten.
Gibts wirklich keine Mgl. dann muss ich es wohl doch über VBA machen, kann man VBAs auch stets und immer laufen lassen, weil derzeit enthält die Exceldatei schon ein VBAMakro, allerdings starte ich die jedesmal nur wenn ichs ausführen will und das soll auch so sein. Dieses eventuell hier benötigte Makro sollte aber stets im Hintergrund laufen.
Schöne Weihnachten!
hawky
Antwort 3 von Saarbauer
Hallo,
versuch es mal damit
=INDIREKT(ADRESSE(65536-ANZAHLLEEREZELLEN(A:A);1;1;1);1)
wobwei ich davon ausgehe, dass deine Werte in Spalte A stehen
Gruß
Helmut
versuch es mal damit
=INDIREKT(ADRESSE(65536-ANZAHLLEEREZELLEN(A:A);1;1;1);1)
wobwei ich davon ausgehe, dass deine Werte in Spalte A stehen
Gruß
Helmut
Antwort 4 von hawky
Danke Saarbauer,
klappt noch nicht (ganz).
Konkreter, die Werte stehen in Spalte Z in den Zellen ab Z1674 bis ... (alle Zellen vor Z1674 sind leer, ausser Z1 ist eine Überschrift - die Zellen ab 1674 enthalten das Ergebnis von einer Formel -> der Werte wird da also angezeigt! )nun möchte ich den letzten Wert daraus immer automatisch in AA3 anzeigen lassen (die Subtraktion bekomme ich dann ja hin *grins*
Wenn ich die Formel von dir da eingebe, dann kommt ein Ergebnis zum Vorschein, aber keines was hinhaut, dabei habe ich nur A:A durch Z:Z ersetzt!
klappt noch nicht (ganz).
Konkreter, die Werte stehen in Spalte Z in den Zellen ab Z1674 bis ... (alle Zellen vor Z1674 sind leer, ausser Z1 ist eine Überschrift - die Zellen ab 1674 enthalten das Ergebnis von einer Formel -> der Werte wird da also angezeigt! )nun möchte ich den letzten Wert daraus immer automatisch in AA3 anzeigen lassen (die Subtraktion bekomme ich dann ja hin *grins*
Wenn ich die Formel von dir da eingebe, dann kommt ein Ergebnis zum Vorschein, aber keines was hinhaut, dabei habe ich nur A:A durch Z:Z ersetzt!
Antwort 5 von rainberg
Hallo hawky,
=INDEX(Z:Z;VERGLEICH(0;Z:Z;-1))
Gruß
Rainer
=INDEX(Z:Z;VERGLEICH(0;Z:Z;-1))
Gruß
Rainer
Antwort 6 von hawky
So, ich hab mir einen Umweg einfallen lassen, das Problem ist also Indirekt gelöst, aber rein informativ wäre es schon wie man die letzte Zelle einer Spalte irgendwo zur "Anzeige" bringt.
Und da ich noch ein anderes Problemchen hab muss ich jetzt leider noch einen weiteren Thread eröffnen :-(
Also Danke Euch beiden für die Hilfe - Saarbauer, wenn Du mir trotzdem noch die Lösung schreiben könntest wäre es super!
Schöne Feiertage noch :-)
Und da ich noch ein anderes Problemchen hab muss ich jetzt leider noch einen weiteren Thread eröffnen :-(
Also Danke Euch beiden für die Hilfe - Saarbauer, wenn Du mir trotzdem noch die Lösung schreiben könntest wäre es super!
Schöne Feiertage noch :-)
Antwort 7 von hawky
Danke Reinberg - leider spuckt es mir eine Null aus - was bedeuten denn die 0;Z:Z;-1 ?
Wie gesagt in Z1 steht eine Überschrift dann bis Z1673 nichts und ab dort dann bis aktuell Z3858 das Ergebnis der Formel die in Z bis Z5000 eingetragen ist.
Wie gesagt in Z1 steht eine Überschrift dann bis Z1673 nichts und ab dort dann bis aktuell Z3858 das Ergebnis der Formel die in Z bis Z5000 eingetragen ist.
Antwort 8 von hawky
Also Reinberg ich habs gerade mal auf andere Spalten probiert wo auch Formeln drin stehen etc. da klappt es tadellos - werd mal probieren - meld mich dann nochmal!
THX!
THX!
Antwort 9 von rainberg
Hallo,
dann probiers mi Zeilenindizes
=INDEX(Z1674:Z5000;VERGLEICH(0;Z1674:Z5000;-1))
kannst ja die Spaltenlänge anpassen
Gruß
Rainer
dann probiers mi Zeilenindizes
=INDEX(Z1674:Z5000;VERGLEICH(0;Z1674:Z5000;-1))
kannst ja die Spaltenlänge anpassen
Gruß
Rainer
Antwort 10 von hawky
Mh, klappt leider auch nicht - auf andere Spalten bezogen klappt es, bei anderen kommt ein falsches Ergebnis und hier kommt auch ein falsches Ergebnis, halt 0,00.
Könnte es an der Formel liegen? Die in Spalte Z steht?
=WENN(Q2720="";"";WENN(U2720="";Z2719+X2720;Y2720))
THX!
Könnte es an der Formel liegen? Die in Spalte Z steht?
=WENN(Q2720="";"";WENN(U2720="";Z2719+X2720;Y2720))
THX!
Antwort 11 von rainberg
Hallo,
leider hast du nicht erwähnt, dass auch Textwerte in deiner Spalte stehen.
Da gibt es zwei Möglichkeiten:
Entweder du änderst deine Formel in:
oder du verwendest diese Matrixformel:
Zeilenindex 5000 anpassen und nur so groß wie unbedingt nötig wählen.
Die Formeleingabe muss mit der Tastenkombination Strg+Shift+Enter abgeschlossen werden.
Gruß
Rainer
leider hast du nicht erwähnt, dass auch Textwerte in deiner Spalte stehen.
Da gibt es zwei Möglichkeiten:
Entweder du änderst deine Formel in:
=WENN(Q2720=0;0;WENN(U2720="";Z2719+X2720;Y2720)) oder du verwendest diese Matrixformel:
=INDEX(Z1:Z5000;MAX((Z1:Z5000<>"")*ZEILE(1:5000)))Zeilenindex 5000 anpassen und nur so groß wie unbedingt nötig wählen.
Die Formeleingabe muss mit der Tastenkombination Strg+Shift+Enter abgeschlossen werden.
Gruß
Rainer
Antwort 12 von hawky
Rainberg - kannst Du mich mal bitte über hawky123@gmx.de kontaktieren.
Dann schicke ich mal die Daten rüber.
Hab auch noch eine Änderung die ich bei der anderen Sache leider nicht hinbekomme.
Wäre Super - Vielen Dank!
Dann schicke ich mal die Daten rüber.
Hab auch noch eine Änderung die ich bei der anderen Sache leider nicht hinbekomme.
Wäre Super - Vielen Dank!
Antwort 13 von rainberg
Hallo,
stell deine weiteren Fragen bitte im Forum, dann hast du gleichzeitig die Chance auf mehrere Antworten.
Gruß
Rainer
stell deine weiteren Fragen bitte im Forum, dann hast du gleichzeitig die Chance auf mehrere Antworten.
Gruß
Rainer
Antwort 14 von hawky
Und nein es ist kein Text enthalten.
Mit =WENN(Q2720="";"";WENN(U2720="";Z2719+X2720;Y2720))
will ich nur vermeiden das keine Fehlermeldungen kommen weil z.b. Q2720 keinen Inhalt hat. Wenn das der Fall wäre soll auch Z keinen Inhalt haben. Das ist weil ich die Formel in Z bis 5000 eingetragen hab ich aber erst Berechnungen bis ca. 3850 machen kann weil in Q es bis dahin erst Daten gibt!
Mit =WENN(Q2720="";"";WENN(U2720="";Z2719+X2720;Y2720))
will ich nur vermeiden das keine Fehlermeldungen kommen weil z.b. Q2720 keinen Inhalt hat. Wenn das der Fall wäre soll auch Z keinen Inhalt haben. Das ist weil ich die Formel in Z bis 5000 eingetragen hab ich aber erst Berechnungen bis ca. 3850 machen kann weil in Q es bis dahin erst Daten gibt!
Antwort 15 von rainberg
Hallo,
wenn Q2720 leer ist, wird "" zurück gegeben und das ist selbstverständlich Text, deshalb hatte ich dir die Null reingeschrieben.
Ich sehe gerade richtigerweise müsste die Formel so lauten
Gruß
Rainer
wenn Q2720 leer ist, wird "" zurück gegeben und das ist selbstverständlich Text, deshalb hatte ich dir die Null reingeschrieben.
Ich sehe gerade richtigerweise müsste die Formel so lauten
=WENN(Q2720="";0;WENN(U2720="";Z2719+X2720;Y2720))Gruß
Rainer
Antwort 16 von hawky
Leider stören aber die Nullen die dann von Zeile 3585 bis 5000 stehen gewaltig! Kann man ein durch Berechnung leeres Feld da nicht irgendwie mit ausschliessen. Ich brauch also nur die letzte Zelle der Spalte in der eine Zahl steht!
Oh man ist Excel kompliziert *lach*
Oh man ist Excel kompliziert *lach*
Antwort 17 von rainberg
Hallo,
blende die Nullwerte über Extras > Optionen > Ansicht aus oder gib den Zellen das Benutzerdefiniierte Format
0;;
Gruß
Rainer
blende die Nullwerte über Extras > Optionen > Ansicht aus oder gib den Zellen das Benutzerdefiniierte Format
0;;
Gruß
Rainer

