Frage von AlexKaba, 49

Zelleninhalt soll dazu zählen?

Hallo Ihr liebenIch habe eine sehr einfache Excel-Tabelle erstellt, mit deren Hilfe wir hier die abgearbeiteten Kommissionslisten einpflegen. (ja, hier läuft Alles noch mit altertümlichen Methoden)Nun haben wir folgenden Zustand:Wenn ein Artikel aus- / eingelagert wurde, wird das entsprechende Feld mit der Menge belegt (Bsp.: =220). Aufgrund der Menge an Listen und sich immer wiederholenden Artikel kommen wir schlecht darum herum ein Feld mehrfach zu nutzen. Das Feld sieht dann wie folgt aus: =220+5+153+400

Mein Anliegen:Wenn ich auf das Feld klicke, soll möglichst ein Feld aufgehen, sodass man nur noch die "ZAHL" und "ENTER" drücken muss und das Feld selbstständig zusammenzählt.

P.S. Einfach mehrere Felder beschreiben und dann mit der SUMME zusammenzählen ist leider nicht machbar. Da wir schon mehrere Felder für die verschiedenen Tage nutzen, würde die Tabelle unbrauchbar, unübersichtlich werden.

Expertenantwort
von Suboptimierer, Community-Experte für Excel, 24

Wenn du etwas in der Zelle eingibst und es an den Vorwert drangehängt werden soll, steht und fällt das Projekt damit, ob du Zugriff auf den alten Wert (die Formel) hast.

Du könntest sie beim Öffnen der Arbeitsmappe oder beim Wechseln der Markierung dir merken, aber das deckt nicht alle Fälle ab.

Das Änderungsereignis der Zelle hat soweit ich weiß keinen Zugriff mehr auf den alten Wert. Im Target steht nur noch der neue Wert. Ich habe zwar gerade kein VBA zur Verfügung, aber ich glaube nicht, dass es ein BeforeChange-Ereignis gibt. 

Das Einfachste, was mir da einfällt, ist einen Memory-Knopf einzuführen, den du direkt in das Sheet ziehst und beim Klick den Inhalt (die Formel) der gerade markierten Zelle in einer globalen Variablen ablegt. Diesen müsstest du vor der Eingabe dann einmal klicken.
Aber ob das soviel einfach ist, als mit F2 ans Ende der Formel zu springen und +<Zahl> einzugeben? 

Als Spielerei, um sich in VBA und Eventhandling einzufühlen, ist deine Problemstellung ideal.

Kommentar von Suboptimierer ,

Also ich habe mir das so vorgestellt. Vielleicht kannst du etwas damit anfangen:

Dim sFormelMerk As String

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then On Error GoTo Fehler Application.EnableEvents = False If Not IsEmpty(Target) Then If IsNumeric(Target.Value) Then Target.Formula = sFormelMerk & "+" & Target.Value Else Target.Formula = sFormelMerk End If End If Fehler: Application.EnableEvents = True Target.Select End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$A$1" Then sFormelMerk = Target.Formula If sFormelMerk <> "" And Left(sFormelMerk, 1) <> "=" Then _ sFormelMerk = "=" & sFormelMerk End If End Sub

Du gibt in A1 (ohne Beschränkung der Allgemeinheit) eine Zahl ein, entweder ohne Vorzeichen oder mit + oder - und sie wird additiv hinzugefügt. Danach wird die Zelle zur weiteren Verkettung markiert.

Die Formel resettest du mit Entf.

Antwort
von Jackie251, 26

klingt irgendwie nach komischer Excelvergewaltigung.
Die möglichkeit einer Zelle zu editieren durch einfaches anklicken kenne ich nicht.

Wo der Aufwand sein soll, die Zelle anzuwählen und F2 zu drücken und + die zahl zu schreiben sehe ich nicht.
Abgesehen davon halte ich es für recht Fehleranfällig die Zellen zu ändern ohne das zB das Datum vermerkt wird.

Das die Übersicht verloren geht, ist auch schwer vorzustellen, durch Filter oder Tabellenfunktionen oder Pivot die Möglichkeit besteht, nur das zu sehen was man braucht.

Ich fürchte hier soll Excel eine Arbeitsweise abgerungen werden, die nicht im entfernstesten unterstützt wird, da Excel durch seine Programmierer völlig anders aufgebaut ist.

Alternativ würde ich nicht jede Zahl in eine Zelle schreiben sondern eine gewisse Anzahl an Spalten für die Eingabe reservieren. Dann kann man jeweils die letzte Freie Zelle verwenden und in der Haupttabelle ist lediglich die Summenformel hinterlegt.



Expertenantwort
von Ninombre, Community-Experte für Excel, 23

Ich kann die Aussage von Jackie251 nur unterstreichen, das macht so ehrlich gesagt keinen Sinn. Ich hab die Idee so verstanden, dass man auf eine Zelle klickt in der schon =10+10 steht, sich ein Eingabefenster öffnet, in das ich eine weitere Zahl (20) schreibe und dann in der Zelle steht =10+10+20

Ein möglicher Lösungsweg wäre eine sogenannte Userform - die selbst ist simpel, allerdings gibt es drum-herum einige Problemstellungen:
1. Wie genau wird es ausgelöst? Doppelklick auf die Zelle? Dann gilt das aber für sämtliche Zellen oder es wird kompliziert abzugrenzen. Alternativ per Tastaturkürzel (so kann man Makros auch starten), aber ob das weniger aufwändig ist, als in die Formel hineinzugehen und die Zahlen zu erfassen??

2. Prüfung der Eingaben. Einfach nur den Inhalt der TextBox an die bestehende Formel dranhängen funktioniert nur manchmal. Ist es immer + die Zahl oder kann auch ein Minus auftreten? Was ist wenn der Artikel zum ersten Mal erfasst wird? Dann muss man erst mal das = setzen bevor Zahlen kommen.

3. Fehleingaben abfangen: Mit Buchstaben oder ähnlichem knallt die Formel

Fazit: Die drei Punkte lassen sich auch lösen, aber das ganze Prinzip ist echt gegen alle Excellogik! Ich schreib Dir die Userform mit dem Code gern hin - ich seh nur das Problem, dass die Anwender damit nicht wirklich klar kommen. Die Kombination aus einfacher Tabelle und Automatismen, die nicht genau nachvollziehbar sind, ist keine gute Variante meiner Erfahrung nach: Du sagst dem Anwender er soll bspw. STRG + Y drücken, dann geht ein Fenster auf, er tippt was ein. Was damit passiert kann er nicht nachvollziehen, entsprechend auch nicht auf Fehler reagieren. 

Wenn Du Dir die Mühe machen willst, das gesamte Vorhaben mal zu beschreiben, also wie die Daten erfasst werden und welche Übersichten daraus erstellt werden müssen, bin ich mir sicher (so wie ich die Excel-Menschen hier kenne), dass sie sich die Mühe machen werden, bei einer vernünftigen Lösung auch zu unterstützen.  

Kommentar von AlexKaba ,

Ja, gerade zum Fazit gebe ich dir Recht - leider wurde zwar ein Lagersystem (Waris) bewilligt, aber seit mehreren Jahren nicht umgesetzt.

Die Mitarbeiter sind einfache Lagerarbeiter oder Handwerker, die sich nicht lange mit tippen beschäftigen wollen/können. Daher sollte die Tabelle für Jeden auf den ersten Blick ersichtlich sein - auch wenn ich mal nicht da bin. Vorher war das noch schlimmer.

Im Grunde ist die Tabelle ein Kompromiss zwischen den Arbeitern und den komplexen Vorstellungen der anderen Abteilungen.

Antwort
von AlexKaba, 11

Vielen Dank Jackie - die Möglichkeit mit F2 kannte ich bis dato noch gar nicht - letztendlich wäre das sogar für hier die Lösung. Ich denke das wird bei uns die Lösung werden.

Für die Bedenken mit den negativen Zahlen... dadurch, dass die Formeln über mehrere Sheets gehen und sich in der Übersicht entsprechend verrechnen, werden alle Felder nur mit positiven Werten beschrieben.

Danke auch an alle Anderen!

Antwort
von Britzcontrol, 14

Als Denkanregung hier mal das funktionierende Makro, das die Formel um den eigegebenen Wert erweitert.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target = Cells(1, 1) Then
AltText = Target.Formula
NeuText = InputBox("neuer Wert")
If NeuText = "" Then Exit Sub
NeuText = AltText & "+" & NeuText
Target.Formula = NeuText
End If
End Sub

Aber, wie von den "Vorantwortern" sind hier noch jede Menge anderer Konstellationen (Eingabezelle, ob plus oder minus, keine Buchstaben/Sonderteichen; ...) zu überprüfen und ggf. abzufangen.

Gruß aus Berlin

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten