Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Problema con excel:
Forum - Visual Basic 6 - Problema con excel:

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
salvewa (Normal User)
Newbie


Messaggi: 5
Iscritto: 29/12/2008

Segnala al moderatore
Postato alle 8:22
Lunedì, 12/01/2009
ho creato una userform nella quale ho inserito alcuni textbox che invieranno i dati digitati in una serie di celle di un foglio excel. Tutto funziona tranne il txtbox dove inserire la data e il txtbox dove inserire l'orario.
Di seuito descrivo il codice che che utilizzo relativo al txtbox per la data:

Private Sub txtDataArr_Change()
txtDataArr = Format(txtDataArr, “dd-mm-yy”)
If Len(txtDataArr.Text) = 8 Then
txtOraArr.SetFocus
End If
End Sub

Non appena digito un solo numero nel txtbox data in questione parte autom. tutta la data es. digito 1 e compone 31/12/99; 2 e compone 01/01/00 e così via. Ovviamente vorrei essere io a digitare tutta la data che mi serve inserire e non che il txtbox lo faccia autom. oltretutto sbagliando.
Mi sono accorto che una volta inviati i dati sul foglio excel la data viene trasferita nella casella per es. a3 senza mantenere il formato data o ora nonostante questi campi erano già stati formattati: uno con form. data ed uno ora.
Cosa devo correggere nell'esempio che vi ho posto.
Sempre sullo stesso codice mi fareste cortesemente un es. per il txtbox ora.
Grazie anticipatamente per la Vs attenzione.

PM Quote
Avatar
tippolo (Normal User)
Pro


Messaggi: 157
Iscritto: 21/09/2008

Segnala al moderatore
Postato alle 13:52
Lunedì, 12/01/2009
Testo quotato

Postato originariamente da salvewa:

Private Sub txtDataArr_Change()
txtDataArr = Format(txtDataArr, “dd-mm-yy”)
If Len(txtDataArr.Text) = 8 Then
txtOraArr.SetFocus
End If
End Sub




Lerrore è qui:
Private Sub txtDataArr_Change
Non devi usare l'evento Change, perchè giustamente esegue il codice ad ogni modifica del texbox.
Potresti utilizzare l'evento LostFocus in modo di avere la data formattata una volta usciti dalla Text

Ciao

PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 14:49
Lunedì, 12/01/2009
altrimenti controlli quando ci sono un numero fissato di caratteri fai partire la sostituzione.

PM Quote
Avatar
salvewa (Normal User)
Newbie


Messaggi: 5
Iscritto: 29/12/2008

Segnala al moderatore
Postato alle 16:03
Lunedì, 12/01/2009
Fantastico grazie mille funziona perfettamente.

Posso chiederti cortesemente, se non ti creo problemi, di postarmi, all'interno della TextBox, il codice con il quale cambiado la text e non scrivendo nulla, essa in automatico mi dia zero(0) appunto nella text.
Come hai capito sono un neofita o giù di lì.
Mi farebbe immenso piacere impare almeno qualcosa da professionisti come voi.
Ancora grazie mille

PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 16:18
Lunedì, 12/01/2009

Private Sub txtDataArr_Change()
If txtDataArr.Text = "" Then
txtDataArr.Text = "0"
End If
End Sub

PM Quote
Avatar
salvewa (Normal User)
Newbie


Messaggi: 5
Iscritto: 29/12/2008

Segnala al moderatore
Postato alle 18:06
Lunedì, 12/01/2009
Innanzitutto grazie per la tua gentilezza.
Ti segnalo che il codice che mi hai inviato non pone lo zero automat. quando cambio la text. Zero si imposta in automat. solo dopo che in quella text ho digitato qualsiasi cosa è la ho cancellata. Es. digito 1, subito lo cancello e compare zero che non si cancella più.
Ti ringrazio infinitamente per la tua attenzione dimostratami a prescindere se potrai o no darmi una ulteriore mano per risolvere il problema.
Grazie grazie mille

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 20:35
Lunedì, 12/01/2009
Paperoga che mi combini? lol

cmq è semplice il codice basta che olte il:
Private Sub txtDataArr_Change()
If txtDataArr.Text = "" Then
txtDataArr.Text = "0"
End If
End Sub

nella sub form_load metti sempre:
If txtDataArr.Text = "" Then
txtDataArr.Text = "0"
End If

PM Quote
Avatar
salvewa (Normal User)
Newbie


Messaggi: 5
Iscritto: 29/12/2008

Segnala al moderatore
Postato alle 22:12
Lunedì, 12/01/2009
Grazie un milione di volte.
Tutto funziona benissimo grazie a te.
Se tutti gli iscritti sono cordiali, bravi e disponibili come te sono già e sarò senza parole.
Scusami se son stato paperoga ma ne è valsa la pena ho già imparato qualcosa in più.
Tutto grazie alla tua gentilezza.
Ti saluto e ancora GRAZIE  :k:

PM Quote
Avatar
tippolo (Normal User)
Pro


Messaggi: 157
Iscritto: 21/09/2008

Segnala al moderatore
Postato alle 1:08
Martedì, 13/01/2009
Testo quotato

Postato originariamente da GrG:

Paperoga che mi combini? lol

cmq è semplice il codice basta che olte il:
Private Sub txtDataArr_Change()
If txtDataArr.Text = "" Then
txtDataArr.Text = "0"
End If
End Sub



E' vero che a quest'ora forse non ragiono però Gregorio anche tu hai avuto un lapsus.
Nell'evento change hai inserito quel codice.
Sarebbe esatto se non avesse messo nel LostFocus la formattazione della Data :)
In questo modo avrà la data 31/12/1900 o giù di lì

Gregorio cosa mi combini:rotfl:

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo