Microsoft 365 Scanner de codes-barres

unrender

XLDnaute Junior
Bonjour,

Depuis peu je dois utiliser un scanner de codes-barres (Symbol MT2000).
Lorsque je le mets sur le socle, le Gestionnaire pour Appareils Windows Mobile s'ouvre et je peux ensuite aller dans le gestionnaire de fichiers de Windows, accéder au scanner (comme si j'accédais à un appareil photo ou un téléphone portable). Je vais dans le dossier adéquat et récupère le fichier qu'il me faut (celui contenant les codes-barres scannés), pour pouvoir le mettre sur le PC et lancer ma macro VBA depuis Excel pour le traiter...
C'est chiant comme manip'.

Je n'arrive pas à trouver comment importer via VBA ce fichier. Ou alors carrément y accéder directement depuis VBA en le laissant dans le scanner. Ce serait encore mieux...
Mais vu que Windows n'attribue pas de lettre de lecteur au scanner (ce qui est normal hein !), je ne sais pas comment faire pour y accéder depuis VBA...

Je ne sais pas si je suis clair :(

Quelqu'un aurait une idée ??
Merci.
 

unrender

XLDnaute Junior
Cela ne va pas.
A priori lorsque j'essaie d'ouvrir le fichier avec Excel, Windows crée une copie et la met dans un répertoire de Cache et la source dans la macro pointe sur ce fichier (et non celui qui est dans le scanner).

VB:
    ActiveWorkbook.Queries.Add Name:="A4EDF10F", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Source = Table.FromColumns({Lines.FromBinary(File.Contents(""C:\Users\in30317\AppData\Local\Microsoft\Windows\INetCache\Content.MSO\A4EDF10F.txt""), null, null, 1252)})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    Source"
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=A4EDF10F;Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [A4EDF10F]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "A4EDF10F"
        .Refresh BackgroundQuery:=False
    End With

Une autre idée ?
 

Dim.Reichart

XLDnaute Occasionnel
Bonjour,
Je peux me tromper, mais si c'est une copie, les données sont les mêmes que dans le scanner non?
Si la manip est celle que vous faites habituellement, et que l'enregistreur a "vu" toutes les manipulations, il devrait être capable de les répeter à l'identique.
Identifiez les étapes que l'enregistreur a raté, et ajoutez le code manquant.
 

unrender

XLDnaute Junior
Bonjour,

Le hic c'est que comme souvent pour le fichiers temporaires, Windows leur donne un nom différent à chaque fois.
Donc si je refais la manip' 3 fois de suite, j'aurai 3 noms différents.

De plus, dans la macro, je ne vois aucune ligne correspondant à la prise du fichier sur le scanner.
C'est comme-ci le fichier était dans le répertoire sur le disque C: et voilà.

Donc je ne peux pas reproduire automatiquement le fait qu'il copie le fichier du scanner vers le disque C:
 

Statistiques des forums

Discussions
312 082
Messages
2 085 168
Membres
102 804
dernier inscrit
edaguo