Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [office vba] evento lettura barcode

    Salve,
    Chiedo di nuovo aiuto !!!!!!!!!
    Avrei bisogno di sapere che evento assegnare ad una textbox che viene riempita tramite lo "sparo" da lettore barcode.

    Praticamente se seleziono la textbox e dopo sparo sul barcode, la textbox mi mostra i 13 caratteri numerici del barcode stesso;come faccio per dirgli che ogni volta che ha letto il barcode parta in automatico la parte di codice da me creata???

    Al momento uso u button, ma diventa noioso ogni volta cliccare sullo stesso, sarebbe molto più pratico ce partisse in automatico.


    grazie
    ale tacchino82

  2. #2

    Re: [office vba] evento lettura barcode

    Originariamente inviato da alessio.82
    Salve,
    Chiedo di nuovo aiuto !!!!!!!!!
    Avrei bisogno di sapere che evento assegnare ad una textbox che viene riempita tramite lo "sparo" da lettore barcode.

    Praticamente se seleziono la textbox e dopo sparo sul barcode, la textbox mi mostra i 13 caratteri numerici del barcode stesso;come faccio per dirgli che ogni volta che ha letto il barcode parta in automatico la parte di codice da me creata???

    Al momento uso u button, ma diventa noioso ogni volta cliccare sullo stesso, sarebbe molto più pratico ce partisse in automatico.


    grazie
    L'evento dovrebbe essere l'invio, Keyascii=13
    Sviluppo per passione

  3. #3

    Re: Re: [office vba] evento lettura barcode

    Originariamente inviato da pedro8a
    L'evento dovrebbe essere l'invio, Keyascii=13
    Scusami, l'evento dovrebbe essere il keypress:

    Private Sub TuaTextBox_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 _ 'tasto invio
    Then
    'tuo codice
    end if
    End sub
    Sviluppo per passione

  4. #4

    Re: Re: Re: [office vba] evento lettura barcode

    Originariamente inviato da pedro8a
    Scusami, l'evento dovrebbe essere il keypress:

    Private Sub TuaTextBox_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 _ 'tasto invio
    Then
    'tuo codice
    end if
    End sub
    Ok, praticamente così dovrebbe partire il codice perchè in ascii il 13 corrisponde all'invio,
    ma dovendo prima fare un controllo sulla textbox e controllare che siano stati immessi i 13 caratteri numerici del barcode? il 13 si ripete troppe volte, ma ho capito, solamente che prima di far partire il tutto, dovrebbe verificare se nella textbox c sono 13 caratteri.

    Spero di essere stato chiaro.
    codice:
    If TextBox8.Value = "" Then
    MsgBox "INSERIRE N. codice"
    TextBox8.SetFocus
    Exit Sub
    End If
    
    Sheets("Fogliox").Activate
    
    
    
    Sheets("Fogliox").Select
    trovacodice = Application.WorksheetFunction.CountIf(Range("AG9:AG20000"), TextBox8.Value)
    If trovacodice <> 0 Then
    
    Range("AG8").Select
    Do
    ActiveCell.Offset(1).Select
    Loop Until ActiveCell.Value = UserForm4.TextBox8.Text
    ActiveCell.Offset(0, -28).Select
    X = ActiveCell.Address
    cliente = ActiveCell.Value
    
    ActiveCell.Offset(0, 4).Select
    articolo = ActiveCell.Value
    
    ActiveCell.Offset(0, 4).Select
    colore = ActiveCell.Value
    
    ActiveCell.Offset(0, 8).Select
    j = ActiveCell.Value
    
    ActiveCell.Offset(0, 2).Select
    npezzi = ActiveCell.Value
    
    ActiveCell.Offset(0, 8).Select
    w = ActiveCell.Value
    
    ActiveCell.Offset(0, -4).Select
    z = ActiveCell.Value
    
    ActiveCell.Offset(0, 4).Select
    Taglia = ActiveCell.Value
    Y = ActiveCell.Address
    Taglia = ActiveSheet.Name
    'Range(X & ":" & Y).Select
    'Selection.Cut
    UserForm4.TextBox1 = cliente
    UserForm4.TextBox2 = articolo
    UserForm4.TextBox3 = colore
    'UserForm4.TextBox9 = j
    UserForm4.TextBox5 = npezzi
    UserForm4.TextBox6 = w
    UserForm4.TextBox7 = z
    'UserForm4.TextBox10 = Taglia
    UserForm1.Show
    
    TextBox1.Value = ""
    TextBox2.Value = ""
    TextBox3.Value = ""
    'TextBox4.Value = ""
    TextBox5.Value = ""
    TextBox6.Value = ""
    TextBox7.Value = ""
    TextBox8.Value = ""
    'TextBox9.Value = ""
    'TextBox10.Value = ""
    Range("A1").Select
    
        
     
    Else
    
    'att = att + 1  'si incrementa un numeratore di una unità ad ogni foglio scorso
    If trovacodice = 0 Then 'quando il numero dei fogli coincide con i fogli totali meno quelli esclusi dalla ricerca scrivi
    MsgBox "Cartello non trovato o codice errato. Controllare il numero e riprovare"
        
        End If
            End If
            
    
    Sheets("fogliox").Select
    Range("Aa3").Select
    Praticamente vi ho postato il codice che deve partire una volta che ha controllato che nella textbox8 c siano 13 caratteri numerici.
    Tutto questo xchè praticamente per come uso la procedura adesso, si apre la userform ho il setfocus sulla textbox8, leggo con il lettore il codice a barre (quindi i 13 carattri vengono immessi automaticamente da lettore), a quel punto deve partire tutta la procedura da codice sopra riportata.

    grazie
    ale tacchino82

  5. #5

    Re: Re: Re: Re: [office vba] evento lettura barcode

    Originariamente inviato da alessio.82
    Ok, praticamente così dovrebbe partire il codice perchè in ascii il 13 corrisponde all'invio,
    ma dovendo prima fare un controllo sulla textbox e controllare che siano stati immessi i 13 caratteri numerici del barcode? il 13 si ripete troppe volte, ma ho capito, solamente che prima di far partire il tutto, dovrebbe verificare se nella textbox c sono 13 caratteri.

    Spero di essere stato chiaro.
    codice:
    If TextBox8.Value = "" Then
    MsgBox "INSERIRE N. codice"
    TextBox8.SetFocus
    Exit Sub
    End If
    
    Sheets("Fogliox").Activate
    
    
    
    Sheets("Fogliox").Select
    trovacodice = Application.WorksheetFunction.CountIf(Range("AG9:AG20000"), TextBox8.Value)
    If trovacodice <> 0 Then
    
    Range("AG8").Select
    Do
    ActiveCell.Offset(1).Select
    Loop Until ActiveCell.Value = UserForm4.TextBox8.Text
    ActiveCell.Offset(0, -28).Select
    X = ActiveCell.Address
    cliente = ActiveCell.Value
    
    ActiveCell.Offset(0, 4).Select
    articolo = ActiveCell.Value
    
    ActiveCell.Offset(0, 4).Select
    colore = ActiveCell.Value
    
    ActiveCell.Offset(0, 8).Select
    j = ActiveCell.Value
    
    ActiveCell.Offset(0, 2).Select
    npezzi = ActiveCell.Value
    
    ActiveCell.Offset(0, 8).Select
    w = ActiveCell.Value
    
    ActiveCell.Offset(0, -4).Select
    z = ActiveCell.Value
    
    ActiveCell.Offset(0, 4).Select
    Taglia = ActiveCell.Value
    Y = ActiveCell.Address
    Taglia = ActiveSheet.Name
    'Range(X & ":" & Y).Select
    'Selection.Cut
    UserForm4.TextBox1 = cliente
    UserForm4.TextBox2 = articolo
    UserForm4.TextBox3 = colore
    'UserForm4.TextBox9 = j
    UserForm4.TextBox5 = npezzi
    UserForm4.TextBox6 = w
    UserForm4.TextBox7 = z
    'UserForm4.TextBox10 = Taglia
    UserForm1.Show
    
    TextBox1.Value = ""
    TextBox2.Value = ""
    TextBox3.Value = ""
    'TextBox4.Value = ""
    TextBox5.Value = ""
    TextBox6.Value = ""
    TextBox7.Value = ""
    TextBox8.Value = ""
    'TextBox9.Value = ""
    'TextBox10.Value = ""
    Range("A1").Select
    
        
     
    Else
    
    'att = att + 1  'si incrementa un numeratore di una unità ad ogni foglio scorso
    If trovacodice = 0 Then 'quando il numero dei fogli coincide con i fogli totali meno quelli esclusi dalla ricerca scrivi
    MsgBox "Cartello non trovato o codice errato. Controllare il numero e riprovare"
        
        End If
            End If
            
    
    Sheets("fogliox").Select
    Range("Aa3").Select
    Praticamente vi ho postato il codice che deve partire una volta che ha controllato che nella textbox8 c siano 13 caratteri numerici.
    Tutto questo xchè praticamente per come uso la procedura adesso, si apre la userform ho il setfocus sulla textbox8, leggo con il lettore il codice a barre (quindi i 13 carattri vengono immessi automaticamente da lettore), a quel punto deve partire tutta la procedura da codice sopra riportata.

    grazie
    Ciao,
    potresti utilizzare la funzione Len che restituisce il numero di caratteri immessi (car=len(txtbox) se car=13 vai avanti), poi la funzione int che restituisce l'intero del numero.
    Con vba non ho molta pratica, io con vb6 faccio così senza utilizzare ne Int ne Len

    dopo la pressione del tasto invio:

    Selec campi from tabella Where campo codice= codice rilevato dalla textbox

    se la query ti restituisce un recordset con almeno un elemento procedi...

    Ciao
    Sviluppo per passione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.