Capslock altijd aan

Status
Niet open voor verdere reacties.

Kirsten1712

Gebruiker
Lid geworden
11 jan 2017
Berichten
28
Hallo helpers!

Ik heb online wat zitten zoeken om capslock altijd aan te zetten via VBA, zodra een bepaald werkboek geopend wordt.
Er zijn online heel wat oplossingen te vinden, maar helaas werken ze niet volledig.

Bij alle coderingen die ik totnogtoe getest heb, zet VBA de capslock wel aan wanneer deze uit staat, maar zet hij hem ook uit, wanneer hij aan staat. Wat uiteraard niet de bedoeling is.

Mis ik wat, ligt het aan de versie (we gebruiken er meerdere), of..?


PS: het kan niet opgelost worden door de tekst achteraf om te zetten omdat we met een scanner data ingeven. We kunnen het via een workaround wel oplossen door een msgbox te tonen aan de user, al is dat geen 100% garantie dat hij op de toets duwt.

Alvast bedankt!
 

Bijlagen

  • Book1.xlsm
    18,3 KB · Weergaven: 39
Dit zet de gescande waarde om in hoofdletters.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
  If Target.Count = 1 Then Target.Value = UCase(Target.Value)
  Application.EnableEvents = True
End Sub
 
Hey VenA

Bedankt voor je reactie, maar dit werkt niet omdat de hoofdletters al actief moeten zijn vooraleer de scan geregistreerd wordt.
Als de hoofdletters nog niet actief zijn, krijg je bv. bij het scannen van dit "S060123123", dit als resultaat: "Sà§à&é”&é”". Staan de hoofdletters aan, registreert hij het wel goed, maar wil je dit achteraf omzetten, lukt dat niet meer.
 
Heeft het niet met de instellingen van de scanner te maken dat het bij de letters wel goed gaat maar met de cijfers niet ?
 
Of probeer dit eens achter het betreffende werkblad:
Code:
#If VBA7 Then
    Private Declare PtrSafe Function GetKeyState Lib "USER32" (ByVal vKey As Long) As Integer
#Else
    Private Declare Function GetKeyState Lib "USER32" (ByVal vKey As Long) As Integer
#End If

Private Const kCapital = 20

Public Function CapsLock() As Boolean
    CapsLock = KeyState(kCapital)
End Function

Private Function KeyState(lKey As Long) As Boolean
    KeyState = CBool(GetKeyState(lKey))
End Function

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 Then [COLOR="#008000"]'Eventueel Target.Column ook controleren[/COLOR]
        If Not CapsLock Then
            Application.EnableEvents = False
            Target.ClearContents
            Target.Activate
            MsgBox "CapsLock staat uit." & vbCrLf & "Schakel deze in en scan nogmaals", vbCritical
            Application.EnableEvents = True
        End If
    End If
End Sub
Dan let men er op een gegeven moment vanzelf wel op.
Maar als het aan instellingen ligt is het uiteraard beter om die in orde te maken.
 
Laatst bewerkt:
In de codemodule van 'Thisworkbook' :

Code:
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Sub Workbook_Open()
   keybd_event &H14, &H45, &H1 Or 0, 0
End Sub
 
Mij lijkt het ook een scannerinstelling. Uit jouw wel zeer beperkte voorbeeld lijkt de omzetting van de tekens wel consequent
à = 0, & = 1, é = 2, ” = 3, § =6
Dus zou achteraf corrigeren ook mogelijk moeten zijn.
 
Bedankt voor het meedenken iedereen!

We hebben de scanners al een aantal keren ingesteld, maar deze blijven op dezelfde manier reageren. Al kan ik me inderdaad wel eens verdiepen in de vorm waarin de cijfers worden omgezet. Zoals je aangeeft, lijken die indd wel consequent te zijn. Het zijn maar 10 tekens die we dan aan een cijfer moeten koppelen om de juiste waarde alsnog te genereren.

@ edmoor: dit is een goeie workaround. We hebben iets gelijkaardig momenteel live. Jouw versie is zelfs beter !

@ snb: ook een variant op de coderingen die we reeds getest hebben, maar het zou echt "idiotproof" moeten zijn. Ze zouden echt niet meer kunnen/mogen schakelen tussen caps lock aan/uit.
 
Ik blijf het maar een wazig verhaal met nagenoeg geen informatie vinden.
- Type scanner?
- Merk?
- Model?
- Welke instellingen zijn aangepast?
- Welke barcode wordt er gebruikt?
Mij lijkt het totaal onzinnig dat je de <CapsLock> moet fixeren om de juiste data in jouw bestand te krijgen. Waarom leg je dit probleem niet voor bij jullie IT-afdelingen of bij de leverancier van de scanners?
Workarounds zijn leuk maar bijna nooit 'Monkey proof'
 
Laatst bewerkt:
Ik ben er ook wel benieuwd naar.
Plaats eens een Excel documentje met die tekens zoals gescand met capslock uit in A1.
 
Wijzigingen aanbrengen in de werkomgeving (toetsenbord) van gebruikers is vragen om moeilijkheden.
 
Bij deze wat meer info over de scanners, al gebruiken we meerdere types/merken. Dit is degene die het meest gebruikt wordt.

Symbol
Model: DS3578
FCC ID: H9PDS3578
IC: 1549D-DS3578

Link naar website van zo'n model: https://www.bypos.nl/zebra-ds3578-2d-laser-scanner-motorola-bypos-1700?utm_source=googleshopping&utm_medium=cpc&utm_campaign=googleshopping&keyword=&gclid=EAIaIQobChMIlb6Bxr2l5AIVWODtCh0C6waLEAYYASABEgImnvD_BwE

Ik heb overigens die laatste codering van snb geprobeerd, wat aanvankelijk leek te werken. Maar wanneer je de capslock uit hebt staan en het werkboek opent, wordt de caps lock geactiveerd..
 
Maar wanneer je de capslock uit hebt staan en het werkboek opent, wordt de caps lock geactiveerd..

Kijk eens naar de titel van deze draad.

Code:
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Sub Workbook_Open()
   keybd_event &H14, &H45, 0, 1
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
   keybd_event &H14, &H45, 0, 1
End Sub
 
Laatst bewerkt:
Hoe is de scanner aangesloten, via
  1. USB
  2. RS-232
  3. Keyboard-wedge

problem:
Scanned data is incorrectly displayed on the host.
reason:
Cradle host communication parameters do not match host’s parameters.
solution:
Ensure proper host is selected.
For RS-232, ensure the cradle’s communication parameters match the host’s settings.
For a Keyboard Wedge configuration, ensure the system is programmed for the correct keyboard type, and the CAPS LOCK key is off.
Ensure editing options (e.g., UPC-E to UPC-A conversion) are properly programmed

bron:https://www.zebra.com/content/dam/zebra_new_ia/en-us/manuals/barcode-scanners/ds3578-prg-en.pdf
 
Laatst bewerkt:
Bij deze nog het bestand dat gevraagd werd. Resultaat van scan met capslock aan en met capslock uit.

Het barcode lettertype dat we gebruiken is meestal "free 3 of 9", maar we gebruiken er af en toe ook anderen. Met totnogtoe dezelfde resultaten.

We werken met draadloze scanners die via hun charging cradles (USB) aangesloten zijn op de laptop/pc.

@snb: ik heb het gevoel dat je me ergens op probeert te wijzen, maar ik zie het niet.. :confused: :)
 

Bijlagen

  • caps lock test.xlsm
    14,5 KB · Weergaven: 33
Laatst bewerkt:
Aan 1 regel met ook nog eens dezelfde getallen hebben we natuurlijk niets.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan