Clever-Excel-Forum

Normale Version: Errechneter Wert in Zelle setzen/speichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

nach einiger Zeit an erfolgloser Internetrecherche bin ich nun bei euch gelandet. Ich habe folgendes vor:

Wir haben eine Tabelle erstellt, in der knapp 6400 Geräte aufgelistet sind. Jedes Gerät wurde mit einem Barcode versehen. Die Barcodes wurden als Zahl mit in die Tabelle eingelesen! Nun soll ab dieses Jahr folgendes geschehen:

1. Wir lesen den Barcode in einem festgelegten Fenster ein.

2. In der Zeile des betroffenen Barcodes/Gerätes , soll eine Zelle entstehen, welche, sobald der Barcode eingelesen ist, den Wert "geprüft" anzeigt. Bzw. wenn noch nicht eingelesen den Wert "nicht geprüft" anzeigt.

      Ist soweit auch kein Problem:
           BSP.: B32 = Barcode / C2 = Zelle in der der Barcode eingelesen wird / N32 = Ausgabe "geprüft" oder "nicht geprüft"

      Habe also folgende Formel in N32 eingegeben:

           =WENN($C$2=B32;"geprüft";"nicht geprüft")            ziemlich einfach ich weiß :(

Funktioniert also auch recht gut. Das PROBLEM ist nun folgendes: Sobald der eingelesene Barcode aus C2 gelöscht wird (weil ja ein neuer eingegeben wird),   verschwindet logischer Weise auch das "geprüft" und somit die Bestätigung das dieses Gerät schon nachgeschaut wurde. Wie kann ich also nun ohne großen Aufwand, jedoch ohne weitere manuelle Eingabe (Bsp. durch drücken von F2 oder F9), den durch die Funktion ermittelten Wert in N32 speichern??!

3. Zu N32 "geprüft" , soll auch nach Eingabe des Barcodes eine weitere Zelle (bsp. O32) mit dem aktuellen Datum ausgefüllt werden.

Ich wäre echt super dankbar, da ich so langsam echt nicht mehr weiter weiß, für jede Hilfe.

Zur Info: Mit Makroprogrammierung kenne ich mich noch leider so gut wie garnicht aus!

Vielen Dank schon mal!

LG Pascal Huh
Hallo Pascal,

was soll denn beim nächsten einlesen des Barcodes passieren?

Deine Beschreibungen könnten mit folgendem Code erledigt werden:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address(0, 0) = "C2" Then 'wenn in Zelle C2 eine Veränderung passiert dann
   If Range("N32") <> "geprüft" Then 'wenn in Zelle N32 kein "geprüft" steht dann
     If Target.Text = Range("B32").Value Then 'wenn der Inhat der Zelle C2 = Inhalt Zelle N32 ist dann
       Range("N32") = "geprüft"  'schreib in N32 "geprüft
       Range("O32") = Date       'schreib in O32 das Datum
     Else                        'sonst
       Range("N32") = "nicht geprüft"  'schreib in N32 "nicht geprüft
     End If
   End If
 End If
End Sub

Der Code muss ins Klassenmodul der Tabelle eingefügt werden.
Rechtsklick auf den Tabellenreiter, im sich öffnenden Kontextmenü Code anzeigen wählen und in das sich öffnende Fenster den Code einfügen.


Makros müssen aktiviert sein. Datei muss mit Makros gespeichert sein.  (Ergänzung Ralf: als xlsb oder xlsm und nicht als xlsx)

Der Code sollte automatisch auf die Zelländerung in C2 reagieren.