Ich habe in verschiedenen Beiträgen eigentlich die Lösung gefunden, aber ich bekomme die verschiedenen Schnippsel nicht zusammen, dass es funktioniert.
Es geht darum, ein Anwesenheitsblatt mit 10er-System zu erstellen, welches beim Scan eine Anwesenheit heruntersetzt. Jeder Teilnehmer hat eine ID-Karte mit einem Barcode, der abgescannt wird.
Meine Datei enthält 3 Sheets.
1: Scan
2: Anwesenheiten
3: Berechnungen
In 2 (Anwesenheiten) sind alle teilnehmenden Schüler in eine erstellte Tabelle eingetragen, ein Autofilter ist gesetzt und folgender CODE läuft im VBA:
Direkt auf dem Sheet Anwesenheiten:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Barcode2")) Is Nothing Then Call BarcodeSuchen
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Barcode2")) Is Nothing Then Call BarcodeSuchen
End Sub
Sub BarcodeSuchen()
'Blattschutz aufheben
shAnwesenheiten.Unprotect
'Autofilter setzen
shAnwesenheiten.ListObjects("tblAnwesenheiten").Range.AutoFilter field:=2, Criteria1:="(" & Range("Barcode2").Value & ")"
'Blattschutz setzen
shAnwesenheiten.Protect
End Sub
Im Modul 1:
Sub BarcodeSuchen()
'Blattschutz aufheben
shAnwesenheiten.Unprotect
'Autofilter setzen
shAnwesenheiten.ListObjects("tblAnwesenheiten").Range.AutoFilter field:=2, Criteria1:="(" & Range("Barcode2").Value & ")"
'Blattschutz setzen
shAnwesenheiten.Protect
End Sub
Das Tabellenblatt ist geschützt, ledigich das Feld E4 ist ungeschützt, hier wird immer der gescannte Barcode eingeschrieben.
Das klappt auch super. Wenn ich eine Karte abscanne, wird mir in der Tabelle nur der Datensatz des entsprechenden Teilnehmers angezeigt.
Nun soll aber folgendes passieren:
Wenn ich den Teilnehmer abscanne, soll nicht nur der Datensatz innerhalb des gleichen Sheet angezeigt werden, sondern zusätzlich auch in dem Sheet 1 (Scan) der Barcode eingetragen und dauerhaft hinterlegt werden. Bei jedem neuen Scann soll also in die nächste darunterliegende Zelle der neue Scan eingetragen werden. Sodass ich mit =zählenwenn und entsrechenden Formeln im Datensatz immer die aktuelle Anzahl an möglichen Terminen angezeigt bekomme. Es braucht/soll kein Abgleich stattfinden, da gleiche Codes nicht überschrieben werden sollen.
Ich weiß, dass ich auch direkt beim Scannen im VBA den neuen aktuellen Stand ausgeben lassen kann, aber ich würde es gerne über mir bekannte Formeln errechnen lassen, da ich auf meinem Sheet Nr.3 (Berechnungen) auch neue Käufe einer 10erKarte hinterlegen kann, damit wieder weitere 10 Einheiten dem Kunden gutgeschrieben werden.
Ich muss meinen vorhanden Code im Worksheet_Change also erweitern, damit der eingescannte Code automatisch in Sheed1 in die nächste freie Zelle eingetragen wird.
Bitte helft mir, ich bin seit fast einer Woche am googlen und das Forum am durchlesen, aber für meinen Fall finde ich nichts passendes.