Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Warten auf eingabe

Warten auf eingabe
15.03.2017 18:04:54
Rowdy
Hallo Zusammen,
um mein Leben als Getränkewart etwas zu erleichtern habe ich eine kleines Makro geschrieben welches den Barcode einließt und bei der richtigen Person ein strich macht.
Das klappt soweit ganz gut per Inputbox.
Das Makro soll einmal pro Abend gestartet werden und auf die Eingaben warten.
Tritt eine Eingabe auf soll das Makro direkt starten
Eine Schleife scheint der falsche Weg, könnt ihr mir bitte weiterhelfen?

Private Sub Test()
Dim xx As Integer
xx = 1
ActiveSheet.Range("A1").Value = 9
Do While xx  0
If ActiveSheet.Range("A1").Value  "" Then
MsgBox "klappt"
ActiveSheet.Range("A1").Value = 1
End If
If ActiveSheet.Range("A1").Value = 2 Then
xx = 0
End If
Loop
End Sub

Danke im Voraus
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Warten auf eingabe
15.03.2017 18:30:07
ChrisL
Hi
Erkläre bitte noch einmal genauer. Gibt es zur InputBox einen Code und wie sieht der aus?
Was wäre das Ziel der Schleife? Was ist das für eine Zahl in A1? Wann ist bei dir "Abend", wenn du die Mappe schliesst, öffnest, veränderst?
Beispieldatei wäre zusätzlich hilfreich...
cu
Chris
Anzeige
AW: Warten auf eingabe
15.03.2017 19:01:15
Rowdy
Hi Chris,
anbei mein Hauptprogramm, anstelle der Inputbox möchte ich das mein Programm auf eine Eingabe wartet.
Ziel:
--> Ich aktiviere meine Programm am Rechner, am Kühlschrank steht nur der Barcodescanner (kabelos)
--> Barcode wird eingescannt --> programm startet
Wie kann ich das letzte Ziel erreichen?
Jetzt muss das Programm jedesmal neu gestartet werden und die Eingabe von Name aktiviert werden, das soll wegfallen
Sub Strichliste()
Dim Name As String
Dim striche As Integer
ActiveSheet.Range("A1").Select
Name = InputBox("Name eingeben")
If ActiveCell.Value = Name Then
ActiveCell.Offset(0, 1).Range("A1").Select
striche = ActiveCell.Value
MsgBox Name
MsgBox striche
ActiveCell.Value = striche + 1
MsgBox ActiveCell.Value
ActiveCell.Offset(0, -1).Range("A1").Select
Else
ActiveCell.Offset(1, 0).Range("A1").Select
End If
End Sub

Anzeige
AW: Warten auf eingabe
15.03.2017 19:18:05
ChrisL
Hi
Wenn ich richtig verstehe, dann brauchst du tatsächlich eine Endlos-Schleife...
Do
'Code dazwischen
Loop
cu
Chris
Anzeige
Anzeige

Infobox / Tutorial

Warten auf Eingabe in Excel VBA


Schritt-für-Schritt-Anleitung

Um ein Excel VBA-Makro zu erstellen, das auf eine Barcode-Eingabe wartet, kannst du folgende Schritte umsetzen:

  1. Makro erstellen:

    • Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
    • Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  2. Code einfügen:

    • Füge den folgenden Code ein, um die Eingabe zu verarbeiten:
    Sub Strichliste()
       Dim Name As String
       Dim striche As Integer
       Dim Barcode As String
    
       ' Endlosschleife
       Do
           ' Warten auf Eingabe
           Barcode = InputBox("Scanne den Barcode:")
    
           If Barcode <> "" Then
               ' Hier kannst du den Code zur Verarbeitung des Barcodes einfügen
               ActiveSheet.Range("A1").Select
               Name = ActiveCell.Value
    
               If ActiveCell.Value = Name Then
                   ActiveCell.Offset(0, 1).Range("A1").Select
                   striche = ActiveCell.Value
                   ActiveCell.Value = striche + 1
               End If
           End If
       Loop
    End Sub
  3. Makro ausführen:

    • Schließe den VBA-Editor und kehre zu Excel zurück.
    • Drücke ALT + F8, wähle Strichliste und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: Eingabefeld wird nicht angezeigt
    Lösung: Stelle sicher, dass das Makro korrekt ausgeführt wird und keine Fehler im Code vorhanden sind.

  • Fehler: Eingaben werden nicht verarbeitet
    Lösung: Überprüfe, ob die Referenzen auf die Zellen korrekt sind. Teste auch, ob der Barcode tatsächlich im richtigen Format vorliegt.


Alternative Methoden

Wenn du eine andere Möglichkeit suchst, um auf Eingaben zu warten, kannst du auch die Application.OnTime-Methode verwenden, um in regelmäßigen Abständen die Zelle zu überprüfen. Dies könnte eine bessere Performance bieten, insbesondere wenn du mit großen Datenmengen arbeitest.


Praktische Beispiele

Ein Beispiel für eine Getränke Strichliste in Excel könnte so aussehen:

  1. In Zelle A1 stehen die Namen der Getränke.
  2. In Zelle B1 stehen die Striche.
  3. Das Makro wartet auf die Eingabe des Barcodes, der in die Zelle A1 eingetragen wird.
  4. Bei jedem Scan wird der entsprechende Strich in B1 erhöht.

Die Anpassung des Codes für spezifische Getränke kann einfach durch den Vergleich des gescannten Barcodes mit den Werten in A1 erfolgen.


Tipps für Profis

  • Nutze Application.ScreenUpdating = False, um das Bildschirmflackern während der Ausführung des Makros zu minimieren.
  • Überlege, wie du mit dem Barcode-Scanner direkt in die Zelle eingeben kannst, ohne die InputBox zu verwenden. Dies kann den Prozess erheblich beschleunigen.
  • Dokumentiere deinen Code gut, damit du ihn später einfacher warten kannst.

FAQ: Häufige Fragen

1. Wie kann ich die Schleife beenden?
Du kannst eine Bedingung in die Schleife einfügen, um sie zu beenden, z.B. durch einen bestimmten Barcode oder durch eine Benutzerbestätigung.

2. Was mache ich, wenn der Barcode nicht erkannt wird?
Integriere eine Fehlerbehandlung im VBA-Code, um ungültige Eingaben zu erkennen und den Benutzer entsprechend zu informieren.

3. Welche Excel-Version benötige ich?
Die oben genannten VBA-Techniken sollten in allen modernen Excel-Versionen (Excel 2010 und neuer) funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige