Unterste Zelle mit Inhalt in einem Bereich finden
Moderator: Moderatoren
Unterste Zelle mit Inhalt in einem Bereich finden
Hallo liebe Forum-Mitglieder,
ich bin gerade dabei, ein Dokument für Medikamentenbestand zu erstellen.
Ich habe mit der WENN-Funktion schon einiges hinbekommen, was die Eingabe für unsere MFAs erleichtert. Nun stehen aber noch ein paar ungelöste Probleme an:
1) Zur besseren Übersichtlichkeit möchte ich jetzt gerne am unteren Rand des Dokuments das Feld für den aktuellen Bestand gefüllt haben (E64). Der aktuelle Bestand entspricht immer der letzten ausgefüllten Zeile.
Mit welcher Funktion kann ich den Bereich E30 bis E62 durchsuchen und die unterste beschriebene Zelle auswählen?
2) Gibt es die Möglichkeit, dass Zellen automatisch geschützt werden, sobald sie ausgefüllt wurden? Das würde ein versehentliches Löschen vermeiden.
3) Schwieriger Wunsch...
Am Monatsende müssten
- die Zellen A30 bis A62 gelöscht werden
- der Inhalt von E64 (aktueller Bestand) in E28 (Übertrag) übernommen werden
- der Inhalt von F4 (laufende Nr.) um 1 erhöht werden.
Und das alles am liebsten mit einem Klick und für alle Reiter (werden später ca. 25 Pat. sein).
Über jegliche Hilfe würde ich mich sehr freuen!
Viele Grüße
snailmed
ich bin gerade dabei, ein Dokument für Medikamentenbestand zu erstellen.
Ich habe mit der WENN-Funktion schon einiges hinbekommen, was die Eingabe für unsere MFAs erleichtert. Nun stehen aber noch ein paar ungelöste Probleme an:
1) Zur besseren Übersichtlichkeit möchte ich jetzt gerne am unteren Rand des Dokuments das Feld für den aktuellen Bestand gefüllt haben (E64). Der aktuelle Bestand entspricht immer der letzten ausgefüllten Zeile.
Mit welcher Funktion kann ich den Bereich E30 bis E62 durchsuchen und die unterste beschriebene Zelle auswählen?
2) Gibt es die Möglichkeit, dass Zellen automatisch geschützt werden, sobald sie ausgefüllt wurden? Das würde ein versehentliches Löschen vermeiden.
3) Schwieriger Wunsch...
Am Monatsende müssten
- die Zellen A30 bis A62 gelöscht werden
- der Inhalt von E64 (aktueller Bestand) in E28 (Übertrag) übernommen werden
- der Inhalt von F4 (laufende Nr.) um 1 erhöht werden.
Und das alles am liebsten mit einem Klick und für alle Reiter (werden später ca. 25 Pat. sein).
Über jegliche Hilfe würde ich mich sehr freuen!
Viele Grüße
snailmed
Re: Unterste Zelle mit Inhalt in einem Bereich finden
dazu genügt folgendes Makro:3) Schwieriger Wunsch...
Am Monatsende müssten
- die Zellen A30 bis A62 gelöscht werden
- der Inhalt von E64 (aktueller Bestand) in E28 (Übertrag) übernommen werden
- der Inhalt von F4 (laufende Nr.) um 1 erhöht werden.
Und das alles am liebsten mit einem Klick und für alle Reiter (werden später ca. 25 Pat. sein).
Code: Alles auswählen
Sub bereinigen()
tc = ThisComponent
For i = 0 To tc.Sheets.Count()-1
With tc.Sheets(i)
For j = 29 To 61 'A30:A62
.getCellByPosition(0,j).FormulaLocal = ""
Next j
.getCellRangeByName("E28").Value = .getCellRangeByName("E64").Value
.getCellRangeByName("F4").Value = .getCellRangeByName("F4").Value+1
End With
Next i
End Sub
Gruß
Stephan
Re: Unterste Zelle mit Inhalt in einem Bereich finden
snailmed hat geschrieben: Di, 14.02.2017 17:50 Mit welcher Funktion kann ich den Bereich E30 bis E62 durchsuchen und die unterste beschriebene Zelle auswählen?
Code: Alles auswählen
=INDEX(E30:E62;MAX(ISTZAHL(E30:E62)*ZEILE(E30:E62))-29)
Code: Alles auswählen
=INDEX(E1:E62;MAX(ISTZAHL(E30:E62)*ZEILE(E30:E62)))
AFAIK: Nein.snailmed hat geschrieben: Di, 14.02.2017 17:50 2) Gibt es die Möglichkeit, dass Zellen automatisch geschützt werden, sobald sie ausgefüllt wurden?
Aber auch das Korrigieren von Fehlern bei der Eingabe der Daten.
Gruß
lorbass
Re: Unterste Zelle mit Inhalt in einem Bereich finden
Sorry, doch siehe Anlage
Gruß R
- Dateianhänge
-
- BTM_Doku.ods
- (24.36 KiB) 91-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Unterste Zelle mit Inhalt in einem Bereich finden
Ich verstehe das Prinzip! Vielen Dank für den Makro-Code. Ich habe gleich noch ein bisschen daran rumgebastelt, weil ich natürlich vergessen hatte, dass Inhalte von Spalte C und D auch gelöscht werden müssen - und natürlich erst nach (!) dem übertragen des Bestandes... Es funktioniert !!
Da ich bislang noch nie mit Makros gearbeitet habe, noch die Frage: Kann man eine Zelle so verknüpfen, dass man auf sie klickt und dann das Makro ausgeführt wird?
Vielen Dank auch für die anderen Lösungen, werde es gleich mal ausprobieren...
Da ich bislang noch nie mit Makros gearbeitet habe, noch die Frage: Kann man eine Zelle so verknüpfen, dass man auf sie klickt und dann das Makro ausgeführt wird?
Vielen Dank auch für die anderen Lösungen, werde es gleich mal ausprobieren...
Re: Unterste Zelle mit Inhalt in einem Bereich finden
Ist nicht doch eine Schaltfläche besser? Diese kann auch direkt in einem Tabellenblatt sein ohne das sie gedruckt werden muss:Da ich bislang noch nie mit Makros gearbeitet habe, noch die Frage: Kann man eine Zelle so verknüpfen, dass man auf sie klickt und dann das Makro ausgeführt wird?
-Ansicht-Symbolleisten-Formularsteueelemente
-in der jetzt sichtbaren Symbolleiste den Entwurfsmodus einschalten ('Geo-Dreieck')
- nun in der SYmbolleiste die Schaltfläche wählen und im Tabellenblatt eine zeichnen
-Kontextmenü der Schaltfläche und Kontrollfeld... klicken
-im Dialog registzer "Ereignisse"
-dort für "Aktion ausführen" das Makro zuweisen
-evtl. zum REgister "Allgemein" wechseln und dort Druckbar-Nein einstellen
-bestätigen das Dialog wieder zu
-Entwurfsmodus verlassen
Gruß
Stephan
Re: Unterste Zelle mit Inhalt in einem Bereich finden
Hallo f3K,
wie hast Du das gemacht??
Das ist klasse!
wie hast Du das gemacht??
Das ist klasse!
Re: Unterste Zelle mit Inhalt in einem Bereich finden
Stimmt. Hätte ich eigentlich auch wissen müssen. Danke.
Meine Bedenken wegen der mit der Verriegelung einhergehenden Probleme bei Korrekturen bleiben allerdings unberührt.

Gruß
lorbass
Re: Unterste Zelle mit Inhalt in einem Bereich finden
Hallo Stephan,
ich scheitere an "im Tabellenblatt eine zeichnen", das "Kontrollfeld" in der Schaltfläche kann ich daher nicht anwählen.
Kannst Du mir das bitte noch erklären, was ich da zu tun habe?
Viele Grüße
snailmed
ich scheitere an "im Tabellenblatt eine zeichnen", das "Kontrollfeld" in der Schaltfläche kann ich daher nicht anwählen.
Kannst Du mir das bitte noch erklären, was ich da zu tun habe?
Viele Grüße
snailmed
Re: Unterste Zelle mit Inhalt in einem Bereich finden
Den Zellen in den Spalten A – E mit Bedingter Formatierung eine der beiden Formatvorlagen nichtgesperrt bzw. gesperrt zuweisen,
Tabellenblatt sperren: Extras → Dokument schützen → [✓] Tabelle….
Gruß
lorbass
Re: Unterste Zelle mit Inhalt in einem Bereich finden
Hallo lorbass,
macht Sinn und klappt ja auch in der Tabelle, die hier zum Download stand.
Komischerweise hab ich es in meinem Original ebenfalls versucht, und es klappt nicht... Es sperrt einfach nicht die Zellen. Hast Du ne Ahnung, woran das liegen könnte?
VG
snailmed
macht Sinn und klappt ja auch in der Tabelle, die hier zum Download stand.
Komischerweise hab ich es in meinem Original ebenfalls versucht, und es klappt nicht... Es sperrt einfach nicht die Zellen. Hast Du ne Ahnung, woran das liegen könnte?
VG
snailmed
Re: Unterste Zelle mit Inhalt in einem Bereich finden
in der benannten Symbolleiste auf das Symbol für Schaltfläche klicken, dabei wird der Mauspfeil zum Kreuz, nun mit diesem Kreuz auf dem Tabellenblatt die Schaltfläche aufziehen.ich scheitere an "im Tabellenblatt eine zeichnen", das "Kontrollfeld"
Gruß
Stephan
Re: Unterste Zelle mit Inhalt in einem Bereich finden
Hallo,snailmed hat geschrieben: Di, 14.02.2017 20:24 Hallo lorbass, macht Sinn und klappt ja auch in der Tabelle, die hier zum Download stand.
Komischerweise hab ich es in meinem Original ebenfalls versucht, und es klappt nicht... Es sperrt einfach nicht die Zellen. Hast Du ne Ahnung, woran das liegen könnte?
es müssen mehrere Bedingungen erfüllt werden:
- alle Zellen des zu beschreibenden Bereiches müssen über Menü Format/Zellen/Reiter Zellschutz entsperrt werden
- es müssen zwei Formatvorlagen (F11) angelegt werden, ich habe sie gesperrt und nichtgesperrt genannt, wobei diese sich auch auf dem Reiter Zellschutz entsprechend unterscheiden.
- Die zu sperrenden Zellen, A30 bis E62 müssen mit der bedingten Formatierung, ausgehend von der Zelle A30, wie folgt formatiert werden:
Code: Alles auswählen
Formel ist: WENN(UND($A30<>"";ODER($C30<>"";$D30<>""));VORLAGE("gesperrt");VORLAGE("nichtgesperrt"))
- Das Tabellenblatt muss dann über Menü Extras/Dokument schützen/Tabelle... geschützt werden
Vielleicht geht es mit der angehängten Version besser, hier habe ich eine zusätzliche Sperrspalte zugefügt, in die man, wenn die Zeile gesperrt werden soll, einfach ein g eintippt.lorbass hat geschrieben:Meine Bedenken wegen der mit der Verriegelung einhergehenden Probleme bei Korrekturen bleiben allerdings unberührt.
Die Bedingte Formatierung lautet dann:
Code: Alles auswählen
Formel ist: WENN(UND($A30<>"";ODER($C30<>"";$D30<>"");$G30="g");VORLAGE("gesperrt");VORLAGE("nichtgesperrt"))
- Dateianhänge
-
- BTM_Doku.ods
- (24.53 KiB) 150-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Unterste Zelle mit Inhalt in einem Bereich finden
Hi,
Gruß
paljass
Es handelt sich um eine Matrixformel, d.h. du musst die Eingabe mit Strg-Umschalt-Enter abschließen."=INDEX(E24:E60;MAX(ISTZAHL(E24:E60)*ZEILE(E24:E60))-23)" führt immer zu dem Fehler "Err. 502".
Gruß
paljass
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
Re: Unterste Zelle mit Inhalt in einem Bereich finden
eigentlich müssen doch nur die Zellinhalte geleert werden und die bedingte Formatierung regelt alles, kann "F3K Total" bitte die Richtigkeit dieses Vorgehens bestätigen?- Ins Makro müsste noch eingebaut werden, dass die entsprechenden Zellen vor dem löschen wieder auf "entsperrt" gesetzt werden, sonst können sie nicht zurück gesetzt werden.
Welchen Befehl brauche ich da im Makro-Code?
Wenn meine Annahme stimmt, sollte folgende Codeergänzung für das Makro die Arbeit tun:
Code: Alles auswählen
With tc.Sheets(i)
...
For j = 29 To 61 'C30:E62
.getCellByPosition(2,j).FormulaLocal = ""
.getCellByPosition(3,j).FormulaLocal = ""
.getCellByPosition(4,j).FormulaLocal = ""
Next j
End With
Stephan