Auto markieren / excel starter

  • Hallo Zusammen,

    Teil meines Jobs ist es Smartphones auf Garantie zu checken.

    Beim Versand dieser Geräte werden alle Smartphones per Handscanner in eine Excel tabelle eingefügt. Kommen die geräte als Retoure zurück muss ich sie mit dieser vorher angefertigten liste gegen checken und prüfen ob die Retouren in der Garantierfrist liegen.

    In der regel öffne ich in excel das Copy paste fenster mit strg+ F und scanne dann jedes einzelne smartphone manuell ein. Die geräte haben alle ein aufgedrucktes Label das ich scannen kann.

    Hier kommt das Problem, um ein neues Handy einscannen zu können muss ich jedesmal die alte imei nummer in dem fenster löschen oder markieren damit sich die neue nummer einscannen läst. Tue ich das nicht kopiert das programm die neue nummer einfach hinten an die alte nummer dran.

    Ich wünschte mir das bei jedem neuen Scannvorgang die imei nummer automatisch gelöscht oder markiert wird damit ich die neue imei einscannen kann.. Zur zeit muss ich jedesmal mit der hand an die Maus und auf die neue imei nummer doppelklicken um sie markieren.. Dieser Arbeitschritt ist nervig und kostet viel Zeit

    Im Bild könnt ihr erkennen was ich meine.. Es geht um das kleine Fenster in der mitte, die imei darin soll sich automatsich markieren oder löschen damit ich zügig geräte scannnen und prüfen kann..

    Das programm womit ich Arbeite ist Excel Starter.

    Ich persöhnlich habe noch nie mit Makros oder AutoIT gebarbeitet, daher bin ich totaler noob .

    Ich hoffe es kann sich jemand finden der dieses Problem versteht und mir helfen kann

  • Hi Workflow,

    ich habe deine Konversation diesbzgl. im engl. Forum verfolgt. Du möchtest das Thema "nur" noch hier fortsetzen, richtig?
    Ich frage nur, damit ich weiß wo in Zukunft eine Antwort/Hilfestellung sinnvoll ist.

    Mit dem Beispiel von water (aus dem engl. Forum) [...]

    [...] konntest du bisher noch nichts anfangen? Was genau verstehst du noch nicht?

    Viele Grüße
    Sven

  • Hi,

    unglücklicherweise enthält die Excel Starter Edition nicht den VBA (die "Programmierumgebung" VisualBasicforApplications) Editor bzw. ist das VBA-Modul abgeschaltet. Die Frage ist jetzt, ob AutoIt "an Excel vorbei" überhaupt auf die Objektbibliothek zugreifen kann?!

    Ansonsten wäre das Problem mit einigen Zeilen VBA erledigt. Kein Mensch braucht das "Suchen/Ersetzen" Fenster, denn das würde komplett von einem eigenen Fenster mit Scannereingabe und komplettem an deinen Workflow angepassten Arbeitsablauf ersetzt....

    Ich war auch nie ein Fan von privat genutztem Excel, da ich aber beruflich seit über 15 Jahren fast ausschließlich per VBA Excel automatisiert hatte, habe ich mir Anfang letzten Jahres für 69 Euro pro Jahr das Office 365 geleistet.

    Bist du Selbstständig oder Angestellter?

    Auch ein Firmenaccount von Excel bzw. Office 365 kostet nicht die Welt, ich würde allerdings eine der Versionen nehmen, welche Dateien LOKAL verarbeiten kann und nicht nur online mit Dateien auf M$ Onedrive-Servern.

    Das nächste wäre die Frage, was sonst noch in Excel verarbeitet werden soll. Die Tabelle besteht aktuell aus einem Tabellenblatt und zwei Spalten. Ist das alles?

    Wenn nur die Daten in einer Tabelle liegen müssen, wäre OpenOffice eine Alternative. Kostenlos und mit integriertem Makro-Editor bzw. eigener VBA-ähnlicher Programmierumgebung.

    Wenn andere Zugriff auf die Datei haben müssen, kann diese auch von OpenOffice in das Excel-Format exportiert werden.

    So, jetzt zu deinem "Problem" :)

    Beschreibe zunächst, was gemacht werden soll. Also der gesamte Workflow. Das Ziel der Arbeitsablaufs und was ggf. mit den Daten weiter passieren soll. NICHT was dein jetziger Arbeitsablauf ist, ich bin mir sicher dass ein XY-Problem vorliegt!

    Und wie viel Zeit brauchst du aktuell pro Tag für diesen Arbeitsablauf?

    Ggf kann man in Excel schon mit den Formeln etwas "zaubern".

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (27. Februar 2023 um 14:46)

  • Um zu prüfen, ob Deine Excel-Version Automatisierung unterstützt, rufe bitte die Hilfe von AutoIt mit F1 in SciTE auf, suche nach _Excel_Open und führe das Beispielskript 1 aus.
    Du bekommst eine Fehlermeldung, wenn Excel COM nicht unterstützt (was ich leider befürchte).

    Dann gilt es eine der von BugFix Andy vorgeschlagenen Alternativen zu prüfen.

    Weitere Alternative:
    https://www.autoitscript.com/forum/topic/20…s-without-excel

  • Sofern Excel nur als Speicherort für die Daten gilt, könnte man auch vollkommen auf Excel verzichten.

    Aus Deinem Beitrag geht leider nicht hervor welche Daten (Spalten) Du benötigst. Denkbar sind kleine Autoit Programme, die die Scanndaten einlesen/abfragen ohne dass Du eine Hand heben musst.

    Aber um das zu entscheiden müsste man mehr über die Daten die gespeichert werden wissen. Ev. auch über den Scanner Typ bzw. die Art des Anschlusses.

    Einen Workflow kann man oftmals nur vereinfachen indem man ihn vollkommen verändert. Klingt aufwendig ist aber häufig einfacher als "Eingriffe in bestehende Wege"

    So long

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Andy Hallo Andy,

    ich habe mir jetzt das Microsoft Paket zugelegt, wir hatten noch eine Lizens über in der Firma, somit währe das Problem gelöst.

    Und Excel benutze ich nur zum gegenkontrolieren der Imeis.. sont garnicht

    In der Regel sieht der ganze Prozess wie folgt aus.

    Tagsüber kriege ich kisten mit Smartphones die verpackt und an Kunden versendet müssen. Jedes Smartphone wurde vorher von einem Techniker geprüft und mit einem barcode belabelt.
    Im Versand werden die Geräte in Googlesheet per Handscanner eingescannt und dokumentiert und danach verpackt und rausgeschickt.

    Wochen später kommen viele Geräte zwecks Garantiefällen zurück.

    Die Geräte die ich nun als Retoure bekomme müssen natürlich kontroliert werden ob es überhaupt unsere Geräte sind die wir da bekommen und wenn ja ob sie dann auch noch Garantie haben..

    In der Regel mache ich mir dann eine offline Kopie von Googlesheet, und öffne die Kopie dann mit Excel um nach den benötigten Kopien zu suchen.

    Hier kommen wir zu dem eigentlichen Problem... ich muss halt jedesmal die alte imei markieren um eine neue suchen zu können.

    Du fragtest nach der Zeit die ich für die Arbeit so täglich brauche..

    Ich mache das nicht täglich.. In der Regel warte ich bis ich eine gute menge an Geräte hier vorliegen habe, um anschließen die Geräte fix zu prüfen.

  • SOLVE-SMART Die sache ist, ich weiß nicht womit ich anfangen soll.. Ich sehe zwar den Code, aber kann damit nichts anfangen. Wo wird der Code Reinkopiert.. wie aktiviere ich ihn... Ich steig da echt nicht durch.

    Ich brauche eine art Anleitung step für step^^ So als würdest du es einer Omi erklären xD

  • Peter S. Taler Hallo Peter Grüß dich,

    der Handscanner den ich nutze ist ein Handelsüblicher Kabelloser Handscanner für Barcodes, ich kann dir nichtmal sagen welche marke das DIng hat, weil es nirgendwo auf dem Gerät steht.

    Nun zu Excel und den Spalten. Ich brauche im Prinzip nur 2 spalten.. einmal die Imei spalte und die Splte mit dem Datum.

    Sobal ich die imei einscanne findet die tabelle die imei und markiert sie, anschließen scrolle ich in der tabelle hoch bis zu dem Punkt wo das letzte Datum steht. So sehe ich dann ob die Geräte noch in der Garantiefrist liegen.. Normalerweise markiere ich dann eine in der Garantiefrist liegenfe imei zb. Gelb , sobald eine neue imei eingescannt wird und sie neben der zuvor Gelbmarkierten imei liegt muss ich nicht mal hochscrollen weil ich weiß das die Gelbmarkierte in der Garantiefrist liegt..

    Es ist halt das nervig, jedes mal die imei zu löschen um eine neue einzuscannen.

  • Danke für Deine Beschreibung. Damit können wir starten.
    Hier mal ein Vorschlag von mir zur Diskussion. Wenn er dann für Dich passt, ist es schnell in AutoIt umgesetzt.

    1. Konfigurationsdaten werden in einer INI-Datei abgelegt, damit sie bei Bedarf leicht geändert werden können und das Skript nicht jedes mal angepasst werden muss.
    2. Excel wird gestartet bzw. eine bestehende Excel Instanz verwendet.
    3. Es wird geprüft, ob das Excel-Arbeitsblatt bereits offen ist. Falls ja, verbindet sich das Skript mit diesem Arbeitsblatt. Falls nein, wird das Arbeitsblatt geöffnet
    4. GUI wird angezeigt. Das Skript verwendet nicht den Excel Suchdialog (Strg-f) sondern ein eigenes GUI (damit wir die volle Kontrolle haben).
    5. Wenn im GUI OK gedrückt wird, beginnt die von Dir beschriebene Verarbeitung (diesen Punkt gehen wir später an)
    6. Zurück zu Punkt 4 für die nächste IMEI

    Passt das so für Dich?

  • Da du dir ein Google-Sheet selbst exportierst würde ich einwerfen:

    1. Exportier es als .csv (File->Download->Comma seperated values)

    2. .csv Datei einlesen (FileRead) und mit Text-Verarbeitung (RegExp) auslesen

    3. Gui erstellen mit einem Suchfeld für die IMEI und einer anzeige für das Suchergebnis (Es gab auch vor kurzem einen Thread zum einlesen mit Scannern: RE: Barcode in Variable scannen ohne den Inhalt irgendwo anzuzeigen)

    4. Mit dem Scanner einscannen und Ergebnis direkt in der GUI anzeigen

    Das spart Excel komplett aus => einfacher und weniger Fehleranfällig und du brauchst die Lizenz nicht.

    Wenn du dann troztdem die Liste selbst anschauen willst, kannst du sie immernoch mit Excel öffnen (Excel unterstützt .csv).

    Ich würde Abhängigkeiten (wie hier Excel) immer vermeiden.

  • Ich persöhnlich habe noch nie mit Makros oder AutoIT gebarbeitet, daher bin ich totaler noob .

    Ob die RegExp für den OP einfacher sind als die Excel UDF :/

  • Naja mann könnte auch auf folgende Idee kommen:

    Man schreibt den 1ten Scan (Warenausgang) in eine *.ini. Nehmen wir mal an der Schan der IMEI liefert = 456789PTRuz

    dann wird das etwa so: IniWrite ("F:\test.ini", "[10]", "456789PTRuz", 'Datum').

    In der Ini steht dann 456789PTRuz=01.02.2023

    Wenn man nun nach dem eingescanten Gerät sucht IMEI einscannen und ein iniread auf den Wert.

    Lieferdatum = IniRead ( "F:\test.ini", "[10]", "456789PTRuz", "default" )Den Rückgabe Wert mit dem Tagesdatum abgleichen gibt dann Garantie ja oder Nein in eine MSG Box . Wenn mann will kann mann das ganze auch noch als PDF ausgeben.Das ist sooo schwer nicht. Ja schon klar hier wird eine ini missbraucht - aber ich habe soetwas seit Jahren im Einsatz mit jeder Menge Datensätze.....

    Keine Gui das lässt sich alles über MSG Boxen machen, keine besonderen Abfragen, kein EXcel nix...

    LG

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Workflow,

    dein Arbeitsablauf ist beschrieben. Soweit so gut :thumbup:

    Viel wichtiger ist allerdings nicht, was du aktuell machst, sondern was du erreichen möchtest, nämlich zu überpüfen, ob die Garantiezeit für das eingescannte Gerät nicht mittlerweile abgelaufen ist!

    Wenn ich das jetzt richtig verstanden habe, scannt der Versand die IMEI mit Versanddatum in ein googlesheet?!

    Du bekommst nun ein Gerät zurück, scannst die IMEI und willst die Info "Gerät von uns Ja oder Nein" und den Hinweis "Garantiefall Ja oder Nein"?!

    Im Prinzip benötigst du nur ein Programm, in dessen Eingabefeld du die IMEI´s der Geräte (ggf. alle nacheinander) einscannst und das dir dann zu jedem Gerät anzeigt, ob Garantiefall oder nicht?!

    Wenn das so sein sollte, dann habe ich noch eine Frage, werden die von dir aufbereiteten (?) Daten in das googlesheet zurückgeschrieben, oder erstellt das googlesheet nur der Versand?

    In deinem Screenshot ist in der Spalte A nur eine Liste der IMEI angezeigt, in der Spalte B (Busntech) stehen keine Daten. Woher weißt du ohne Datumsangabe ob das Gerät in der Garantie ist?

    Sollte die Frage also nur sein "Gerät von uns/Garantie Ja Nein?", dann bräuchtest du gar kein Excel-Sheet!

    Oder gibt es einen Grund das Googlesheet lokal zu speichern? Außer für deine Suche?

    Mal angenommen, du hättest ein Programm "IMEI_Garantie.exe", dass du nachdem es gestartet wurde ein Eingabefeld enthält, in das du nacheinander einfach (ohne Mausklickern usw.) mit deinem Scanner die IMEI einträgst und das dir anzeigt ob das Gerät ein Garantiefall ist oder nicht? Bspw so: Würde dir das reichen?

    Wie gesagt, Programm starten und einfach einscannen, ohne Mausklickern oder andere Eingaben....

    Wie ist das weitere Procedere, musst du die Infos noch in ein anderes Programm eintragen oder andere (EDV-) Aktionen auslösen?


    Und btw....eigentlich würde eine simple Formel (Verweis, Sverweis oder Lookup) im Googlesheet direkt ein Ergebnis ausgeben können...

    Dazu die Formel eingeben und das Tabellenfeld beliebig weit nach unten kopieren, In der Spalte ab D2 dann einfach nur alle Werte löschen, Cursor ins Feld D2 stellen und alle Geräte scannen....die Felder in Spalte D enthalten dann die gescannten IMEI und im Feld E daneben steht, ob die IMEI in der Spalte A enthalten ist....damit wäre gar kein Programm nötig....

    Die Formel kann natürlich auf (fast) alle Gegebenheiten angepasst werden, wäre sicherlich eine Option!

    //EDIT Link dazu https://docs.google.com/spreadsheets/d…dit?usp=sharing

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    3 Mal editiert, zuletzt von Andy (2. März 2023 um 10:46)

  • Andy

    Hallo, aus reiner Neugierde (ich habe keinen Scanner) - wie bekommt man die Eingabe in das Eingabefeld? Gehe ich recht in der Annahme, dass der Scanner eine Tastatureingabe imitiert - und der Wert "automatisch" auftaucht? Wenn es da nichts besonderes braucht, dann ist das Progrämmchen ja so wie wir das angedacht haben ohne Ecxel und Google ziemlich simpel.

    Danke

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • water Ok ich kann dir folgen.

    Wie erstelle ich eine ini. datei? Mit Konfigurationsdaten meinst du wolh den Code den du mir schon eimal geschickt hast oder?

    Verstehe ich das richtig, sobal ich die ini datei doppelklicke öffnet sich eine gui während ich excel offen habe.

    In dieses Gui kann ich dann meine imeis einscannen richtig?

    Habe ich es richtig verstanden

  • Nein. Eine *.ini ist eine Datei in der "Einstellungen" oder Daten gespeichert werden können! Eine *.ini macht gar nichts. Die braucht immer ein Programm, dass auf sie zugreift. Eine *.ini ist sozusagen ein "Datencontainer in Dateiform.

    Du kannst eine INI auf mehrere Arten erstellen. Am besten Du nimmst einen Texteditor und erstellst eine neue leere Datei die Di xyz.ini nennst.

    (xyz steht für einen Dateinamen Deiner Wahl - versuche auf Leerzeichen im dateinamen zu verzichten oder ersetze diese durch _)

    Nun bwill Autoit "Bereiche haben, diese stehen in [ ] Klammern. Das klingt kompliziert, dient aber eigentlich nur einer Art Gliederung. Mach Dir keinen Kopf fang einfach mit [10] an. Wenn Du weiter gliefern willst mach mit [11] usw weiter. Braucht man nicht so oft.

    Dann trägst Du die "Variable ein die Du dort "speichern" möchtest. Z.B. pfad_zur_anwendung = "F:\Test\was"

    Auf diese Daten kannst Du dann zugreifen siehe dazu meinen Post #13. Zugreifen bedeutet Du kannst Daten aus der Ini lesen oder in die Ini schreiben. Einfach mal mit einem 5Zeiler ausprobieren

    So long

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Die Idee dahinter ist, dass alle veränderlichen Informationen nicht im Skript abgelegt werden, sondern in einer Textdatei. Dadurch muss bei Änderungen nicht das Programm geändert, sondern nur die INI-Datei mit einem Texteditor angepasst werden.

    Aber um der Lösung Deines Problems näher zu kommen hätte ich noch folgende Fragen:

    • Welche der oben vorgeschlagenen Lösungsansätze möchtest Du verwenden? Excel, INI-Dateien, CSV?
    • Musst Du irgendwelche Daten speichern (z.B. welches Gerät wann retour kam bzw. ob es mehrfach retourniert wurde etc.)?
  • In dieses Gui kann ich dann meine imeis einscannen richtig?

    Richtig, ein Scanner ist nichts weiter als eine Tastatur. IdR wird, als "Eingabebestätigung" am Ende des Scancodes ein (konfigurierbarer) Tastatur-Code gesendet, normalerweise ein Äquivalent zur ENTER-Taste.

    Die *.INI-Datei ist eine Textdatei, in der Programminformationen stehen. So wie ich das sehe, benötigst du diese Datei nicht einmal...

    Noch einmal die Frage bzgl. meines letzten Posts...könntest du mit den dort dargestellten Lösungen Scannerfenster bzw. Rückgabe direkt im Google-Sheet etwas anfangen?

  • Mir fehlt zum Verständnis noch folgende Frage: Wie ist denn der Versand an das Netzwerk bzw. die "Eingabe" angeschlossen? Sitzen die vor einem PC?

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Hi Workflow ,

    Die sache ist, ich weiß nicht womit ich anfangen soll.. Ich sehe zwar den Code, aber kann damit nichts anfangen. Wo wird der Code Reinkopiert.. wie aktiviere ich ihn... Ich steig da echt nicht durch.


    Ich brauche eine art Anleitung step für step^^ So als würdest du es einer Omi erklären xD

    Bedeutet das, du hast nicht mal AutoIt installiert bzw. einen Editor für die Code-Erstellung, -Bearbeitung wie SciTE (oder VSCode) bspw.?

    Wenn dem so ist, in Ordnung, du solltest uns nur konkret darauf hinweisen. Denn bisher suchen wir nach dem "Warum" und den Möglichkeiten es so elegant und unkompliziert wie möglich für dich aufzubauen, doch wenn du absoluter Anfänger bist, geben wir dir vielleicht andere Empfehlungen 🤔 .

    💡 Ansonsten bitte ich dich ebenfalls darum, auf den Beitrag von Andy, #14 zu reagieren. Danach, nach deinen Antworten dazu, wissen wir deutlich mehr was du willst und brauchst. Zumindest geht es mir so, ich spreche natürlich nicht für alle.

    Viel Erfolg Workflow 👍 .


    Viele Grüße
    Sven