Condividi:        

maschera imput excel

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

maschera imput excel

Postdi daniloluigi » 23/12/11 11:07

Ciao a tutti e buone feste

Ho quest'altro tipo di problema.
Office 2007 win xp. Foglio excel contenete diverse colonne e più di 2000 righe .Nella colonna A sono presenti dei numeri di 12 cifre.
Ho la necessita di creare una maschera con 2 caselle. nella prima immetto il numero di 12 cifre da ricercare nella colonna A e nella seconda devo scrivere una data che sarà riportata nella colonna M e nella stessa riga dove è presente il numero di 12 cifre.
P.S. una volta che ho riportato il numero di 12 cifre nella casella cosa devo fare per avviare la ricerca e la scrittura della data. E' possibile farlo automaticamente quando sono stati immessi tutti i 12 caratteri e svoutare la casella.

Questo perchè il numero di 12 cifre lo immetto tramite lettore bar-code.

grazie mille per i preziosi aiuti
daniloluigi
Newbie
 
Post: 6
Iscritto il: 16/12/11 18:14

Sponsor
 

Re: maschera imput excel

Postdi Flash30005 » 23/12/11 13:03

Crea una userform (Userform1)
e una casella di testo (TextBox1)
con una etichetta "Inserisci Codice"
Cliccando sul textbox1 tasto destroseleziona visualizza codice e inserisci questo codice*
Codice: Seleziona tutto
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
    Call TrovaCode
End If
End Sub


Crea una seconda userform (Userfom2)
una casella di testo (TextBox1)
e etichetta "Inserisci Data"
Inserire questo codice nel textBox1 di questa userform (Data)
Codice: Seleziona tutto
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
    Range("M" & Riga).Value = UserForm2.TextBox1
    UserForm1.TextBox1 = ""
    UserForm1.Show
End If
End Sub


Ora in un modulo inserisci questo codice
Codice: Seleziona tutto
Public Riga
Sub InserimentoCode()
UserForm1.TextBox1 = ""
UserForm1.Show
End Sub
Sub TrovaCode()
UR = Range("A" & Rows.Count).End(xlUp).Row
Trovato = 0
For RR = 2 To UR
Codice = Range("A" & RR).Value
If Codice = Val(UserForm1.TextBox1) Then
Trovato = 1
Riga = RR
End If
Next RR
If Trovato = 1 Then
UserForm1.Hide
UserForm2.Show
Else
If UserForm1.TextBox1 = "" Then
UserForm1.Hide
Else
MsgBox "Codice non trovato, ridigitare"
UserForm1.TextBox1 = ""
End If

End Sub

Avvia la macro "InserimentoCode"
ad ogni inserimento di codice (12 cifre) e premendo invio
appare l'userform inserimento data
(qui andrebbero aggiunti controlli per verifica data corretta etc, oppure se la data è quella attuale: giorno di registrazione del barcode si potrebbe eliminare l'intera userform2 ;) )
digitata la data e premendo invio sarà trascritta la data nella colonna M riga corrisponente alla data trovata

nel caso un cui un codice non venisse trovato rimane attiva la userform1 con textbox vuoto per digitare di nuovo il codice
ne si preme invio con Textbox1 vuoto la macro termina e la userform1 si disabilita.

(*)Un appunto per quanto riguarda l'applicazione con i lettori barcode
potresti utilizzare
Codice: Seleziona tutto
Private Sub TextBox1_AfterUpdate()
'....
End Sub

invece del KeyDown

Fai sapere se tutto ok

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: maschera imput excel

Postdi Anthony47 » 23/12/11 14:12

Flash, perche' due userform e non una form con due textbox?
Inoltre per quanto riguarda le date caricate tramite textbox suggerisco di dare un'aocchiata qui: viewtopic.php?t=93858#p536918

Ciao a tutti.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: maschera imput excel

Postdi daniloluigi » 23/12/11 14:48

ciao

Ti descrivo qui di seguito cosa devo fare.
Ho circa 500 cartoline con indicato un numero di barcode di 12 cifre e la data di ricezione di queste cartoline scritta a penna.
Il numero di barcode è indicato anche nel file excel al quale devo aggiunfgere la data di ricezione.
La mia idea era quella di dividere le cartoline per data di ricezione ( es. 200 arrivate il 12/10/2011 100 arrivate il 14 ecc.)
eseguire una macro che mi apre una maschera con 2 campi.
Campo 1 scrivo la data di ricezione che va a finire nella colonna M
Campo 2 leggo con lettore barcode il codica della cartolina.
Trovato il barcode mi aggiunge nella colonna M stessa riga del barcode trovato, la data che ho impostato manualmente nel campo 1.
Quindi necessito che solo il campo 2, dopo aver sparato il codice e senza ulteriore conferma, venga ripulito e sia pronto per accettare altra lettura.
La data rimane quella scritta nel campo 1 fino a che manualmente non la cambio.

Spero di essere stato chiaro e grazie mille
daniloluigi
Newbie
 
Post: 6
Iscritto il: 16/12/11 18:14

Re: maschera imput excel

Postdi Flash30005 » 23/12/11 19:23

Per continuita del topic si deve rispondere nel topic già aperto (ho cancellato il topic doppione)

Alla luce delle nuove specifiche devi inserire nel modulo questo codice
Codice: Seleziona tutto
Public DataC
Sub InserimentoData()
UserForm2.TextBox1 = ""
UserForm2.Show
End Sub
Sub TrovaCode()
UR = Range("A" & Rows.Count).End(xlUp).Row
Trovato = 0
For RR = 2 To UR
    Codice = Range("A" & RR).Value
    If Codice = Val(UserForm1.TextBox1) Then
        Range("M" & RR).Value = DataC
        UserForm1.TextBox1 = ""
        Exit Sub
    End If
Next RR
If UserForm1.TextBox1 = "" Then UserForm1.Hide
End Sub



Nel TextBox1 dell'UserForm1 questo codice
Codice: Seleziona tutto
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
    Call TrovaCode
End If
End Sub


Nel TxtBox1 dell'userform2 questo codice
Codice: Seleziona tutto
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        If UserForm2.TextBox1 = "" Then
            UserForm2.Hide
        Else
        DataC = UserForm2.TextBox1
            UserForm2.TextBox1 = ""
            UserForm1.TextBox1 = ""
            UserForm1.Show
        End If
    End If
End Sub


Inserisci un comando per attivare la macro "InserimentoData"
1) digiti la data
2) nel secondo Userform digiti il codice e premi invio (se con lettore barcode si può provare con afterupdate e non dovrebbe occorrere l'invio)
3) continui a inserire i codici
4) per tornare al textbox della data è sufficiente non digitare nulla nel textbox del codice e premere invio
5) inserimento data e segui i punti 2,3
6) per terminare è sufficiente non digitare nulla nel campo data e premere invio

Allego questo file esempio

ciao

EDIT: ore 20:30
ma forse questa versione ti piacerà di più (unico UserForm con abilitazione campi data/codice) ;)
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: maschera imput excel

Postdi daniloluigi » 24/12/11 11:47

grazie mille
Funziona perfettamente
Mi hai veramente risparmiato un lavoro enorme.
Buone feste e complimenti per la tua competeza
ciao
daniloluigi
Newbie
 
Post: 6
Iscritto il: 16/12/11 18:14


Torna a Applicazioni Office Windows


Topic correlati a "maschera imput excel":


Chi c’è in linea

Visitano il forum: Nessuno e 38 ospiti

cron