Condividi:        

Excel 2003 Funzione d'utente con periodi?

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

Excel 2003 Funzione d'utente con periodi?

Postdi papiriof » 26/10/12 18:51

Ho questa situazione nel TextBox1 inserisco una data che va dal 1/1/92 al 31/12/96
nel textBox2 vorrei che finisse un testo tipo " Col1"
se invece inserisco una data che va dal 1/1/97 al 31/12/99
nel textBox2 vorrei che finisse un testo tipo " Col2" e cosi via per diversi periodi
Come fare :?: , penso a una funzione d'utente che mi restituisca "Col1","Col2","Col3" ecc ma con le date mischiate a testo mi viene difficile... help me.
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 392
Iscritto il: 16/02/10 13:23

Sponsor
 

Re: Excel 2003 Funzione d'utente con periodi?

Postdi Flash30005 » 26/10/12 20:08

Nel codice relativo al TextBox1 puoi inserire queste righe di macro
Codice: Seleziona tutto
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Miadata = DateSerial(Mid(Me.TextBox1.Value, 7, 4), Mid(Me.TextBox1.Value, 4, 2), Mid(Me.TextBox1.Value, 1, 2))
Select Case Miadata
Case DateSerial(1992, 1, 1) To DateSerial(1996, 12, 31)
MiaCol = "Col1"
Case DateSerial(1997, 1, 1) To DateSerial(1997, 12, 31)
MiaCol = "Col2"
Case Else
MiaCol = "ColNo"  ' tutti gli altri casi non presenti nei "case" precedenti
End Select
Me.TextBox2.Text = MiaCol
End Sub


Nella select puoi inserire, chiaramente, altri "case"

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: Excel 2003 Funzione d'utente con periodi?

Postdi papiriof » 27/10/12 07:10

Grazie Flash , scusa controllo meglio .......eh ehh FUNZIONA ,FUNZIONAAAA!!!!
Se possibile un commento , quamdo vuoi alle prime 2 righe:
Private Sub TextBox15_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
miadata = DateSerial(Mid(Me.TextBox15.Value, 7, 4), Mid(Me.TextBox15.Value, 4, 2), Mid(Me.TextBox15.Value, 1, 2))
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 392
Iscritto il: 16/02/10 13:23

Re: Excel 2003 Funzione d'utente con periodi?

Postdi Flash30005 » 28/10/12 00:09

Il Brivate Sub TextBox15_BeforUpdate(....
è il comando che si avvia quando viene aggiornato il textbox15, cioè quando digiti un testo e premi invio
miadata = DateSerial(Mid(Me.TextBox15.Value, 7, 4), Mid(Me.TextBox15.Value, 4, 2), Mid(Me.TextBox15.Value, 1, 2))
Miadata è una variabile che acquisisce il testo digitato in Textbox15 suddividendolo in
anno = Mid(Me.TextBox15.Value, 7, 4)
mese = Mid(Me.TextBox15.Value, 4, 2)
giorno = Mid(Me.TextBox15.Value, 1, 2))
inseriti in questo ordine nella funzione DateSerial si ottiene la data nel formato configurato nel Pc
(gg/mm/aaaa oppure mm/dd/yyyy)

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: Excel 2003 Funzione d'utente con periodi?

Postdi papiriof » 28/10/12 18:06

Grazie Flash per la pazienza e le spiegazioni .
Grazie ai vostri consigli ho quasi finito quel file del precedente post. Sta filando tutto liscio se non fosse per questo piccolo
inconveniente , ho questo codice:
Codice: Seleziona tutto
Private Sub TextBox16_Change()
On Error Resume Next
TextBox17.Value = Application.WorksheetFunction.VLookup(TextBox5.Value, Worksheets("t1").Range("Dipe"), 2, False) & TextBox3.Value & TextBox7.Value & TextBox16.Value
End Sub

dove si evince che quando cambia il TextBox16 il textbox17 si popola con riferimenti provenienti da textbox 3,5 e 7.
Ora siccome il file citato prevede delle possibili MODIFICAZIONI degli inserimenti già fatti mi capita di modificare il textbox 3 e in questo caso il textbox17 non si modifica pur essendo in un certo senso legato a quello che avviene nei textbox 3,5 e 7 come ovviare a tutto ciò?
In un medesimo file impostato non su userform le correzioni sono conseguenziali qui come si può fare?
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 392
Iscritto il: 16/02/10 13:23

Re: Excel 2003 Funzione d'utente con periodi?

Postdi Anthony47 » 28/10/12 18:31

Prova ad aggiungere una macro di Textbox3_Change del tipo
Codice: Seleziona tutto
Private Sub TextBox3_Change()
TextBox16.Text = TextBox16.Text & "_"
TextBox16.Text = Left(TextBox16.Text, Len(TextBox16.Text) - 1)
End Sub

In questo modo sfrutterai l' evento TextBox16_Change per ottenere l' effetto voluto

Se ok, replica con TextBox5/7_Change

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


Torna a Applicazioni Office Windows


Topic correlati a "Excel 2003 Funzione d'utente con periodi?":


Chi c’è in linea

Visitano il forum: Ricky0185 e 44 ospiti