Clever-Excel-Forum

Normale Version: Indexformel mit zusätzlichen Funktionen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

für mein laufendes Projekt benötige ich mal wieder einen Schwung Hilfe.

Mit der Formel {=INDEX(A:A;MAX((A4:A128<>"")*ZEILE(4:128)))} erhalte ich wie gewünscht die geforderten Werte in der Zelle X2 angezeigt. In dieser Form arbeitet die Formel so, dass immer auf den"letzten Wert" aus Spalte A Bezug genommen wird. (Siehe Anhang)

Die Zellen A4:A128 sind für die Eingabe mit einen Barcodescanner sensibelisiert (Nicht im Anhang), was bedeutet, dass jede Eingabe in diesen Zellen automatisch, nach dem der Barcode zugeordnet wurde, wieder gelöscht wird. Die Spalte A ist dadurch eigentlich immer leer bzw. es befindet sich für den Bruchteil einer Sekunde genau immer nur ein Wert in der Spalte A. Mit der oben genannten Indexformel oder Funktion sehe ich den ermittelten Bezug aus Spalte A in der Zelle X2 also immer nur kurz aufblitzen.

Nun zur Problemlösung: Ist es möglich den durch Bezug ermittelten Wert in der Zelle X2 zu halten bis er von dem nächsten ermittelten Wert aus Spalte A überschrieben wird?


Für eine Lösung wäre ich sehr dankbar.
LG
zwoo
Hallo, :19:

im Moment musst du die Zahl in Spalte A noch eintragen, aber der Scanner sollte das "Private Sub Worksheet_Change(ByVal Target As Range)" auch auslösen21
[attachment=26706]
Hallo,

danke für die Antwort.

Leider passiert immer noch das selbe, der Wert blitzt kurz auf und wird nicht gehalten.  Oder übersehe ich jetzt was?


Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
'-------------------------------------------------------------
On Error GoTo Fin
   Application.EnableEvents = False
   Range("X2").Value = Tabelle1.Evaluate("=INDEX(A:A,MAX((A4:A128<>"""")*ROW(4:128)))")
Fin:
   Application.EnableEvents = True
'--------------------------------------------------------------
If Not [xlEIN] Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub


   If flg Then flg = False: Exit Sub

   If Target.Column = [spScanner] Then Call GefundenenWert_Select(Target.Value)

   If Target.Column = [spAnzahl] Then Call GeheInZelle(Target.Row, [spScanner])
End Sub  

LG
zwoo
Hallo, :19:

hast recht - probiere es mal so: :21:
[attachment=26709]
Hallo,

leider wirkt auch diese Medizin nicht. Immer noch die gleichen Symptome.  :22:

Kann man nicht mit Calculate die Berechnung der Zelle ein oder ausschalten? Scan kommt rein Calculate an, Abbild in Zelle X2 erscheint, Calculate aus bis zum nächsten scan.

LG
zwoo
Hallo, :19:

übernimm es doch mal in das "Calculate-Ereignis" und sieh was passiert. Ich habe keinen Scanner und kann es deshalb nicht testen. :21:
Hallo,

jetzt passiert nichts mehr. :05: 


Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
   On Error GoTo Fin
   Range("X2").Calculate = False
   Range("X2").Value = Tabelle1.Evaluate("=INDEX(A:A,MAX((A4:A128<>"""")*ROW(4:128)))")
Fin:
   Range("X2").Calculate = True
End Sub
Ist auch bestimmt nicht richtig.

Edit: Und wenn man den Wert immer gleich aus A4:A128 in einen anderen Bereich U4:U5000 kopieren würde , als Liste , könnte ich meine ursprüngliche Formel genau da ansetzen. Ich kann das nur nicht umsetzen.

LG
zwoo
Hallo,

alle Versuche mußten scheitern. Excel kann keine flüchtigen Werte halten.  Macht aber nichts.

Ich habe mir jetzt einen Weg ausgetüftelt der mit einer WENN Formel seinen Anfang nimmt und am Ende das liefern sollte was ich so dringend benötige.
Hoffentlich bewege ich mich jetzt nicht wieder ausserhalb der Möglichkeiten die Excel bietet.

Die Formel soll folgendes tun:        Wenn F4 >0 dann Wert in/von E4 in L1 abbilden.

  Ist das mit WENN möglich und wenn Ja, wie müßte die Formel dann aussehen?
Und wenn Nein, über einen Hinweis an mich dass es nicht möglich ist wäre ich dankbar.

LG
zwoo
Moin,


Zitat:Wenn F4 >0 dann Wert in/von E4 in L1 abbilden.


Code:
=WENN(F4>0;E4;"sonstwas")
die Formel in L1 eintragen.
Hallo,

die Formel funktioniert super. 

Ich werde später vllt. noch ein paar Fragen dazu stellen

Danke.


LG
zwoo