Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1896to1900
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wert aus der Formel festhalten

Wert aus der Formel festhalten
08.09.2022 11:13:50
Kalimero
Hallo in Forum, bin neu, Anfänger und brauche Hilfe von den Excel-Experten. Mein Projekt mit Problem:
Ich bin in einem Verein tätig, mit Musikveranstaltungen. Wir wollen demnächst Tickets mit QR-Code anbieten und diese bei Eintritt scannen. Der Teil mit Scannen ist so weit ok und die Meldungen, ob gültig oder ungültig funktionieren. Aber wir haben leider Menschen, die einfach die Tickets (sind auf DIN A4 Papier gedruckt) kopieren und versuchen sich damit Zutritt zu verschaffen. Und jetzt kommt das eigentliche Problem. Meine Idee wäre, dass ein eingescannter QR-Code bei der Übereinstimmung mit der Vergleichsliste irgendwo gespeichert wird und bei nächstem Scann mit der Vergleichsliste eben eine STOPP-Meldung herausgibt. Vereinfacht gesagt, Treffer in Vergleichsliste "XYZZYX" soll in eine zweite Liste als "XYZZYX" kopiert werden. Ich habe viele Möglichkeiten ausprobiert, aber zu keiner Lösung gefunden. Kopiermakro, zunächst probeweise für eine Zeile, funktioniert im Editor einwandfrei. Es soll aus einer Wenn-Formel mithilfe einen Makrostartfunkton bei Übereinstimmung starten, jedoch genau das passiert nicht. In den Foren habe ich so viele Beispiele gefunden und ausprobiert, aber ich bekomme das Makro nicht gestartet. Auch habe ich keine Möglichkeit gefunden, den Wert in andere Zelle so zu speichern, dass er bei nächsten Scann nicht überschrieben wird. Ausgeben schon in beliebige Zelle, jedoch durch die eingestellte WENN-Bedingung "" wird dieser Wert überschrieben. Ohne diesen 2. Wert ist mein Vorhaben gescheitert. Es würde auch eine Markierung der Zelle in der Suchspalte hilfreich, wenn sie dauernd bleiben würde, also keine Aufhebung durch erneuten Scann. Da meine Kenntnisse in VBA gleich null sind, kann ich natürlich oft die Angaben vor allem bei Deklaration von Variablen, aber auch bei Schleifen nicht alles nachvollziehen.
Ich hoffe, jemand kann mir bei der Lösung des Problems helfen. Ich bedanke mich jetzt schon, auch wenn es nicht klappen sollte.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert aus der Formel festhalten
08.09.2022 11:24:04
UweD
Hallo
- Ihr prüft doch schon (mit Zählenwenn ? ) ob ein Code in der Spalte vorhanden ist.
- dann könnt ihr das Gleiche auf eine 2. Spalte ausweiten.
- beim ersten Scan wird z.B. in dieser 2. Spalte ein Kennzeichen gesetzt
Zeig doch mal den bisherigen Code..
Oder noch besser eine Musterdatei.
LG UweD
AW: Wert aus der Formel festhalten
08.09.2022 15:26:48
UweD
Hallo
ich würde es so machen
Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDE
1LogZeitstempelKommentar gültige Codes
2    12345
3    34567
4    99999
5    AAA
6     
7     
8     
9     
10     
11     
12     
13     
14     
15     

Vorbereitung
- in Spalte E stehen alle gültigen Codes
- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Rechts dieses Makro einfügen
Am Event Tag dann
- Positioniere den Cursor in Spalte A in der ersten freien Zeile (hier A2)
- scanne die Tickets
- Warnungen werden ausgegeben
- Es erfolgt der Eintrag ins Logbuch

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sp1 As Integer, Sp2 As Integer, Z1 As Integer
Dim Zeile As Long, MSG As String
Const APPNAME = "Worksheet_Change"
On Error GoTo Fehler
Sp1 = 1 ' in A werden die Prüfscanns gesammelt
Sp2 = 5 ' in E stehen die gültigen Ticketnummern
Z1 = 2 'wegen Überschrift
If Not Intersect(Target, Columns(Sp1)) Is Nothing And Target.Row >= Z1 Then ' wird nur ausgeführt wenn Änderungen in
If Target.Count > 1 Then
Exit Sub
Else
If WorksheetFunction.CountIf(Columns(Sp2), Target) = 0 Then 'Prüfung ob gültig
MSG = "Ticket nicht bekannt"
MsgBox MSG
ElseIf WorksheetFunction.CountIf(Columns(Sp1), Target) > 1 Then 'Prüfung auf bereits erfasst
Zeile = WorksheetFunction.Match(Target, Columns(Sp1), 0)
MSG = "Ticket bereits entwertet"
MsgBox MSG & vbLf & vbLf & " um: " & Cells(Zeile, 2)
Else
MSG = "i.O."
End If
'Scannzeit merken
Application.EnableEvents = False
Target.Offset(0, 1) = Format(Now, "DD.MM.YYYY hh:mm:ss")
Target.Offset(0, 2) = MSG
Application.EnableEvents = True
End If
End If
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
Ergebnis
Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDE
1LogZeitstempelKommentar gültige Codes
2AAA08.09.2022 15:24:21i.O. 12345
33456708.09.2022 15:24:39i.O. 34567
4471108.09.2022 15:24:59Ticket nicht bekannt 99999
5AAA08.09.2022 15:25:12Ticket bereits entwertet AAA
6     

LG UweD
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige