TextBox ComboBox
Hai un problema con Excel? 
TextBox, ComboBox
di angy (utente non iscritto) data: 09/12/2013 12:56:32
Buongirono a tutti. Ciao Totygno
Il progetto com'è va alla grande, però ci sono delle integrazioni da fare; spiego quali.
Quesito 1.
Nel progetto serve un'altra TextBox, dove se ad un dipendente "Brambilla Michele" io ho già assegnato un turno, es. - giorno 1 - "STANDA 1 TURNO", se dovessi
lo stesso turno erroneamente inserirlo ad un'altro dipendente "Rossi Mario", mi deve uscire nella TextBox ad es." Turno già assegnato a Brambilla Michele" è se fosse
possibile che questa TextBox lampeggi trovato un doppione. Questo per attirare immediatamente l'occhio sul doppione ed effettuare la correzione.
Quesito 2
Nell'inserimento della data li ho specificato su quale foglio in quale cella deve scriverla "foglio Dati cella L2. Il problema è questo. Quando inserisco la data ed io mi trovo su un determinato foglio, mi porta in automatico nel foglio Dati. Invece, vorrei rimanere sul foglio in cui mi trovavo. E' Possibile?
Quesito 3.
Se fosse possibile avere un'altra ComboBox con Altri Dati da inserire nelle stesse TextBox per poi salvarle. Le informazioni che deve contenere la ComboBox sono specificate nel foglio chiamato "Dati" celle J2:k20.
Allego il File.
Grazie anticipatamente.
di totygno71 (utente non iscritto) data: 09/12/2013 15:33:52
Caro Angelo
Sono tutti problemi risolvibili
1. Eviterei il lampeggio della cella tipo ambulanza in emergenza ^_^
2. Si è possibile
3. Non capito bene cosa vuoi ottenere
Piccolo problema tempo per farla... E' più giusto aprire la questione a tutti, hai piu possibilità di risolvere il problema... (fermo restando che appena ho un attimo mi ci applico^_^)
A presto_
PS Ma tu hai provato a fare qualcosa?
di angy (utente non iscritto) data: 09/12/2013 18:50:45
Ciao totygno,
Scusami per il ritardo nel risponderti. Mi sono appena liberato.
Si ho provato in mattinata nel fare qualcosa da circa le 09:00 fino a quando poi ho aperto la discussione..
1- Ho creato un'altra comboBox, ma al suo interno non usciva nulla. Invece doveva riportare i valori del Foglio "Dati" cella J20. Ma niente di che.
Il fatto di avere un'altra comboBox è solamente per avere un'organizzazione migliore dei dati. Anche perchè di dati nè dovrò inserire.
2- Tra le tante ricerche in rete, ho trovato ed inserito dei codici per il lampeggio della textBox. Funziona. Ti riporto qui il codice.
Private Sub UserForm_Activate()
ColorText ' inserito questo codice
End Sub
--------------------------------------------------------------------------------------------------
Private Sub UserForm_Terminate()
Application.OnTime Now + TimeSerial(0, 0, 1), "ColorText", , False ' inserito questo codice
End Sub
--------------------------------------------------------------------------------------------------
Poi ho inserito un modulo normale dove al suo interno ho digitato questo codice:
Sub ColorText()
If UserForm1.TextBox7.ForeColor = &H80000005 Then
UserForm1.TextBox7.ForeColor = &H0&
Else
UserForm1.TextBox7.ForeColor = &H80000005
End If
Application.OnTime Now + TimeSerial(0, 0, 1), "ColorText"
Exit Sub
End Sub
--------------------------------------------------------------------------------------------
Poi stavo provando con la formula indice e confronta, il quale risultato sperato doveva essere il Nome di chi tra i dipendenti, giorno 1 effettua il turno chiamato " STANDA 1 TURNO".
Ciò che sono riuscito ad ottenere è: nel foglio chiamato "Quadro Giornaliero" alla cella A6 dove ho inserito la formula questo risultato; "STANDA 1 TURNO". Invece, quello che deve fare la formula e cercar chi tra tutti i dipendenti, giorno 1 effettua detto turno
e riportarlo il solo Nome Dip. nel foglio "Quadro Giornaliero"
Non so di preciso se questa formula è giusta, ma ciò è frutto di ricerca e lettura dei tanti siti Web visitati "come del resto".
Questa è la formula:
=SE.ERRORE(INDICE(Rossi_Mario!$B$4:$B$34;CONFRONTA($D$2&"STANDA 1 TURNO";INDICE(Rossi_Mario!$A$4:$A$34&Rossi_Mario!$B$4:$B$34;);0)-GIORNO($D$2)-0+1);"")
Poi un'altra cosa. Ho dovuto cambiare il nome del foglio da: Rossi Mario in: Rossi_Mario, altrimenti la formula non mi funzionava, come mai?
Grazie
di angy (utente non iscritto) data: 09/12/2013 18:58:06
Allego file Turni
di angy (utente non iscritto) data: 09/12/2013 19:06:55
P.s. E' vero. Se ho scritto così è perchè non sono molto pratico. Se sono qui è chiaro che ho bisogno di aiuto.
Chiedo scusa se a qualcuno ho potuto toccare la sua "diciamo" sensibilità.
Spero capisca la mia poca per non dire 0 esperienza in materia Excel e forum.
Grazie a tutti.
di angy (utente non iscritto) data: 10/12/2013 10:13:28
Buongiorno.
Sto facendo delle prove se riesco nel far funzionare una combobox, dove va aprendere i valori dal foglio chiamato "Dati" cella J.
Fin qui ci sono riuscito. Solo che non riesco ad evidenziare nelle Textbox i valori della cella J + K per poi salvarli.
Mi da errore di compilazione e dice: Next senza for.
Cosa sto sbagiando? allego codice
Private Sub CommandButton1_Click()
Dim i As Integer, uv As Integer
Dim ctrl As Control, dip As String
On Error Resume Next
If ComboBox2 = "" Then
If ComboBox4 = "" Then ' ho inserito questa riga
MsgBox "Prego scegli un dipendente", vbCritical + vbOKOnly, "Errore di inserimento Dati"
ComboBox2.SetFocus
ComboBox4.SetFocus ' ho inserito questa riga
Exit Sub
End If
If ComboBox1 = "" Then
MsgBox "Prego scegli un turno da assegnare!", vbCritical + vbOKOnly, "Errore di inserimento Dati"
ComboBox1.SetFocus
Exit Sub
End If
For i = 1 To ThisWorkbook.Sheets.Count
If Sheets(i).Name = ComboBox2 Then
Else ' ho aggiunto questa riga
If Sheets(i).Name = ComboBox4 Then ' ho inserito questa riga
dip = ComboBox2
dip = ComboBox4 ' ho inserito questa riga
uv = Sheets(i).Range("B" & Rows.Count).End(xlUp).Row
If uv >= 34 Then
MsgBox "Abbiamo superoto il giorno 31 del mese"
Exit Sub
End If
Sheets(i).Cells(uv + 1, 2) = TextBox1
Sheets(i).Cells(uv + 1, 3) = TextBox2
Sheets(i).Cells(uv + 1, 4) = TextBox3
Sheets(i).Cells(uv + 1, 5) = CDbl(TextBox4)
Exit For
End If
Next i ' mi da errore a questa riga
ComboBox1 = ""
ComboBox2 = ""
ComboBox4 = "" ' ho inserito questa riga
For Each ctrl In Controls
If (TypeName(ctrl) = ("TextBox")) Then
ctrl = ""
End If
Next
ComboBox2 = dip
ComboBox4 = dip ' ho inserito questa riga
End If ' ho inserito questa riga
End Sub
Private Sub ComboBox4_Enter()
ComboBox4.RowSource = "Dati!J2:J200"
End Sub
Grazie
di totygno71 data: 10/12/2013 13:43:42
angy
posta l'ultima versione che hai e descrivi sinteticamente cosa vorresti ottenere
di angy (utente non iscritto) data: 10/12/2013 19:07:09
Buonasera.
Ho fatto un pò di pulizia nel file perchè c'era un macello. Ciò che serve è un'altra TextBox, dove se ad un dipendente "Brambilla Michele" io ho già assegnato un turno,
es. - giorno 1 - "STANDA 1 TURNO", se dovessi lo stesso turno erroneamente inserirlo ad un'altro dipendente "Rossi Mario", mi deve uscire nella TextBox7
ad es." Brambilla Michele" non consentendomi di salvare per evitare di avere 2 dipendenti che lo stesso giorno effettuano lo stesso Turno.
Nell'inserimento della Data li ho specificato su quale foglio in quale cella deve scriverla, li ho specificato: "foglio Dati cella L2". Il problema che non riesco a risolvere
è questo. Quando inserisco la data ed io mi trovo su un determinato foglio es. "Rossi Mario", mi porta in automatico nel foglio Dati e li mi fa restare.
Invece, vorrei evitare di andare nel foglio "Dati" rimanendo sul foglio in cui mi trovavo. E' Possibile?
Inoltre, avrei bisogno di un'altra ComboBox con Altri Dati da inserire nelle stesse TextBox per poi salvarle. Le informazioni che deve contenere la ComboBox
sono specificate nel foglio chiamato "Dati" celle J2:k20.
Come si potrà notare nel file, c'è un foglio chiamato "Quadro Giornaliero" che va da giorno 1 al 31 del mese di dicembre. In questo foglio nelle celle colorate
mi deve riportare il Nome del dipendente sotto il nome dell'azienda.
Faccio un esempio: avendo 56 fogli ed ognuno di questi è associato ad un dipendente, mi deve ricercare tra tutti i 56 dipendenti chi giorno 1 ha come turno
"STANDA 1 TURNO" e riporte il suo nome nella cella di appartenenza.
Altre informazioni sono riportate all'interno dell' Userform e foglio Quadro Giornaliero.
P.s. questo programma dovrà eleborare al momento n.56 dipendenti
Allego il File nome: Prova.xls
Grazie anticipatamente.
di totygno71 (utente non iscritto) data: 11/12/2013 13:31:07
Ciao Angy
il controllo dei turni assegnati vale per tutti i turni o solo per alcuni..?
Mi spiego se hai un dipendente a Riposo , ce ne possono essere altri oppure no?
PS Il file che propon è veramente incasinato... non tanto come codice quanto come concettualità di realizzazione... cmq se a te va bene cosi...
PPS 56 dipendenti??? Magari mi assumi come consulente ^_^
di angy (utente non iscritto) data: 11/12/2013 14:32:58
Ciao Totygno
Il controllo dei turni vale per tutti i turni e per tutti i dipendenti,che poi inserirò nel foglio chiamato "Dati". Inoltre, tutti i giorni ci sono persone a Riposo, oppure a permesso è avvolte in ferie ecc.. " turno a ciclo continuo". Poi, nel foglio Quadro Giornaliero dalla cella A22:A28 porta la digitura Riposo,Permesso, Ferie e Malattie. Nella cella affianco deve riportarmi il nome del dipendente che in quel giorno risulti a Riposo,Permesso, Ferie e Malattia.
Rspondendo alla seconda, lo avevo scritto che avevo combinato un casino, menomale che lo ho ripulito. Anche perchè non si spiegherebbe il fatto che sono qui nel chiedervi un aiuto.
Per la terza è un momento molto particolare e speriamo bene per chi ci governa che faccia veramente qualcosa di concreto per il ns. paese.
In questi anni, hanno distrutto gran parte della ns. economia.
A malincuore mi viene da pensare ad una frase che diceva un grande conduttore televisivo; diceva " e non finisci qui", mi riferisco al grande conduttore Corrado. Potrebbe passare per un Pessimista, invece no, sono realista ed è ciò che vedo giorno per giorno.
Una mia considerazione e rimane tale, dalla mia constatazione nel tessuto sociale, ritengo che oggi non c'è la disoccupazione per strada, ma di più, c'è la fame.
Ieri anche i disoccupati "piaga che portiamo avanti da anni" si arragiavano con lavoretti "anche se avvolte non del tutto regolari". Oggi alla gente manca la materia prima per effettuare anche dei piccoli lavori.
Grazie
di angy (utente non iscritto) data: 14/12/2013 08:53:36
Buongiorno,
ci sono novità?
Io ci sto provando ma senza risultati. L'unica cosa che sono riuscito a fare e il calcolo dei riposi/permessi dopo 6 giorni di lavoro partendo da una data inserita in una cella.
Grazie
di totygno (utente non iscritto) data: 14/12/2013 12:34:48
Purtroppo sono momentaneamente fuori servizio causa decesso del mio fidato Notebook (scrivo dallo smartphone)... Martedì dovrebbe arrivare il successore...
A presto... Almeno spero
di scossa data: 14/12/2013 12:57:26
cit. totygno: "..causa decesso del mio fidato Notebook"
R.I.P.
Spero almeno ti abbia lasciato in eredità tutto il prezioso contenuto dell'hard-disk
di angy (utente non iscritto) data: 14/12/2013 13:48:22
x Totygno,
Mi spiace, pensavo che mi avessi abbandonato.Scherzo!!! In realtà pensavo che fosse di difficile realizzazione di ciò che ho bisogno. Comunque io sto cercando di andare avanti con delle integrazioni al progetto. Forse avrei fatto prima a comprarlo, ma sono testardo. Quando mi ficco una cosa in testa è quella.
X scossa,
No. Anche perchè pur non conoscendolo di persona, sicuramente sarà geloso del suo Hard Disk.
Cmq, il calcolo dei giorni di riposo e permesso dopo 6 giorni di lavoro, sono nel foglio 3. Chiaramente non è terminato perchè vorrei inserirlo in un pulsante nell'userform abbinata alla scelta del nome nella combobox2.
Poi nell'userform ho inserito un tasto che mi fa vedere la programmazione Turni di tutto il mese di Rossi Mario. Anche qui, quello che sto cercando di fare tra le tante cose e di associalo alla scelta della Combobox2. Spero di riuscirci. Allego file
Ciao ragazzi
di totygno (utente non iscritto) data: 14/12/2013 13:51:38
Ho 2 hd esterni dove faccio regolarmente i bu... Più cercherò di salvare le ultime cose dall 'hd che ho ovviamente tolto...
Visto ot ne approfitto per sollecitare tutti a fare backup regolari dei propri dati onde finire col Culo per terra...
Bye
di angy (utente non iscritto) data: 14/12/2013 14:00:20
Hai ragione. Spesso anch'io dimentico.
Ciao
di angy (utente non iscritto) data: 18/12/2013 19:59:49
Buonasera a tutti.
ciao Totygno
Sto provando ad andare avanti nella realizzazione del progetto. Ho inserito alcune cose ma tante altre ancora mancano. Adesso ho notato che se provo ad inserire una nuova TextBox, mi dice "Nome ambiguo" e non me lo inserisce. Cosa ho potuto mai combinare?
File allegato
Grazie
di totygno71 (utente non iscritto) data: 19/12/2013 09:32:19
Ciao Angy
ieri come previsto è arrivato il notebook nuovo ^_^ finalmente...
Per quanto riguarda il tuo progettONE direi che forse ci conviene proseguire passo per passo...
Allora per quanto riguarda il problema del nome ambiguo della textbox probabilmente hai già un'altra textbox con lo stesso nome... verifica... altri errori comuni sono quelli di utilizzare caratteri non permessi per rinominare (name) della stessa...
Ciao
di angy (utente non iscritto) data: 19/12/2013 10:33:16
Buongiorno a tutto il forum.
Grazie Totygno. Come avrai potuto notare qualcosina lo fatta, però c'è tanto ancora da fare e per la mia pochissima conoscenza, ho serie difficoltà ad andare avanti da solo.
Per quanto riguarda il nome ambiguo lo risolto grazie alla tua spiegazione. Non ho fatto altro che inserire una textbox su un'altro Userform, modificandola in textbox9 per poi copiarla nell'userform dove mi dava il problema. Tutto ok. Adesso posso inserire altre text senza darmi l'errore.
resto in attesa
Grazie per la tua disponibilità...
Ciao
di totygno71 (utente non iscritto) data: 19/12/2013 11:20:47
Prossimo step?
di angy (utente non iscritto) data: 19/12/2013 11:52:27
Possiamo iniziare con la TextBox 7.
Questa TextBox deve evidenziare il nome dip. qual'ora ad un altro dipendente io assegni lo stesso turno.
Esempio: se al dipendente Brambilla Michele giorno 1 ho già assegnato come turno "STANDA 1 TURNO", ed a Rossi Mario sempre giorno 1 dovessi erroneamente scegliere lo stesso turno, in questo caso mi deve uscire il nome di Brambilla Michele nella textBox7 impedendomi l'inserimento del turno. Tutto questo per non avere lo stesso giorno 2 dipendenti che hanno lo stesso tuno.
grazie
di angy (utente non iscritto) data: 19/12/2013 11:59:46
P.s. da tener presente che la ricerca deve avvenire su tutti i fogli che poi inserirò tot. 56. Tutti i fogli chiamati per nome di ciascun dipendente, la struttura interna sarà uguale per tutti. Nel senso che in Brambilla Michele giorno 1 è posto alla cella A4, questo sarà uguale per tutti. Ciò che cambierà sarà le ore,presenze,ore domenicali, ecc
di angy (utente non iscritto) data: 22/12/2013 20:22:25
Buonasera a tutti...
Sto provando ad andare avanti alla realizzazione del progetto ma con molte difficoltà. Nel Foglio-quadro giornaliero, sono riuscito in parte ad ottenere il risultato sperato. Penso che si possa migliorare.
Resto in attesa...
allego file
Grazie
di totygno71 (utente non iscritto) data: 23/12/2013 09:52:44
Ciao Angy
il tempo è sempre tiranno...
Prova il file (5) dovrebbe rispondere al tuo problema di trovare se il turno per quella data è stato già assegnato!
di angy (utente non iscritto) data: 23/12/2013 10:05:52
Grazie totygno. Io sto andando avanti con svariate prove. Qualcosina la sto imparando. Lo scarico subito e ti faccio sapere.....
Grazie.
P.s. in qualche modo ti ringrazierò....
di angy (utente non iscritto) data: 23/12/2013 10:38:40
Nella textbox7 esce il nome del dipendente del turno che ho già assegnato in precedenza (ottimo). Però se dovessi erroneamente inserire lo stesso turno ad un altro dip. questo me lo inserisce. Si potrebbe vietare l'inserimento del turno doppione? Se è possibile, altrimenti devo stare attento.
Poi ho notato che se per errore ho inserito lo stesso turno a due dipendenti, ad uno devo assolutamente modificarlo tramite il pulsante "modifica turno", però mi da errore VBA, debug.
If Sheets(i).Cells(dday + 3, 2) = turno Then
Ti riporto l'intero codice con l'istruzione di dove mi da errore.
Private Sub ComboBox1_Change()
Dim i As Integer, oper As String, dday As Variant, SearchString As String, mypos As Byte, SearchChar As String
Dim turno As String
If ComboBox1.ListIndex = -1 Then
TextBox1 = ""
Exit Sub
End If
TextBox1 = ComboBox1.Text
turno = ComboBox1
oper = ComboBox2
SearchString = TextBox5.Text
SearchChar = " "
mypos = InStr(1, SearchString, SearchChar, 1)
If oper <> "" Then
dday = Left(TextBox5.Text, mypos)
For i = 2 To ThisWorkbook.Sheets.Count - 2
If Sheets(i).Cells(dday + 3, 2) = turno Then ' Questa è la riga che si colora di giallo
Textbox7.Text = Sheets(i).Name
Exit For
Else
Textbox7.Text = ""
End If
Next i
End If
End Sub
Grazie
di totygno71 (utente non iscritto) data: 23/12/2013 11:47:40
Riprova turni(5)
Angy il codice sarebbe TUTTO da ottimizzare... per ora andiamo avanti così...
di totygno71 (utente non iscritto) data: 23/12/2013 11:53:45
Turni(6)
di angy (utente non iscritto) data: 23/12/2013 12:45:44
Il file turno6 è ottimo lo sto provando, sembra che funzioni tutto correttamente.Non so come fai ma sei molto bravo....complimenti davvero...Grazie
Ascolta, come potrai notare ho inserito una Combobox4 che se si potesse utilizzare come la combobox1, sarebbe l'ideale. Questo per dividere i luoghi di lavoro da tutte le altre voci.
E' possibile?
di totygno71 (utente non iscritto) data: 23/12/2013 12:55:49
ma cosi avresti 2 combobox identiche(con i luoghi di lavoro ugluali) o diverse(luoghi di lavoro differenti)?
Non capisco l'utilità a essere sincero..
di angy (utente non iscritto) data: 23/12/2013 13:04:38
Ti spiego. Per una questione di praticità. Nel senzo che dalla combobox 1 scelgo i luoghi di lavoro, invece dalla combobox4 scelgo il resto delle voci "come potrai notare dal file". Questo perchè una volta terminato il progetto, dovrò inserire nella combobox1 circa 14 luoghi di lavoro. Quindi, ogni volta per fare una scelta devo scorrere tutta la combo al fine di evidenziare/scegliere la voce desiderata. Cmq se è troppo complicato possiamo lasciamo così e passare avanti.
di totygno71 (utente non iscritto) data: 23/12/2013 13:06:39
no non è complicato, il discorso è che ora come ora hai gli stessi dati (riposo ferie etc) in entrambe...
nel caso entrambe fossero piene quale deve tenere in considerazione?
di angy (utente non iscritto) data: 23/12/2013 13:14:40
Hai ragione. Il fatto che ci siano gli stessi dati è frutto delle mie tante prove. Infatti, nel foglio "Dati" colonna A verranno eliminate tutte le voci che non siano riferite alle postazioni di lavoro.
Se dovesse trovarsi per caso tutte e due le combobox piene, sarebbe il massimo un msgbox con Vbexclamation, dove mi avvisi di effettuare una scelta singola e non multipla delle combobox.
Si può fare?
grazie
di totygno71 (utente non iscritto) data: 23/12/2013 14:08:19
turno(7)
di angy (utente non iscritto) data: 23/12/2013 17:30:36
Ciao.....Ho dovuto assentarmi per ovvi motivi. Adesso mi scarico il file.
di angy (utente non iscritto) data: 23/12/2013 18:51:22
Va migliorato. Mi spiego. Quando dalla combobox4 scelgo ad esempio Ferie, me lo inserisci in Textbox3 "servizio", come specificato prima se si potesse inserire nella TextBox1 "Luogo".
Per seconda cosa avrei bisogno che mi scrivesse anche l'orario nella textbox2. Potrai notare che nel foglio Dati, colonna J ci sono per il momento alcune voci, al suo fianco "colonna K" ci sono degli orari.
Grazie
di totygno71 (utente non iscritto) data: 24/12/2013 10:00:00
turno(8)
di angy (utente non iscritto) data: 26/12/2013 11:37:12
Buongiorno e Auguri a tutti.
Auguri totygno.. Buono. però ho modificato nel codice sotto riportato le seguenti righe. Il perchè avevo sbagliato ad indicare la textbox. Nel merito ho confuso
la textbox2 con la textbox4.
Io lo corretto così, sembra che funzioni correttamente.
Private Sub ComboBox4_Click()
Dim dgio As String, r As Integer
r = ComboBox4.ListIndex
TextBox1 = ComboBox4.List(r, 0)
TextBox4 = ComboBox4.List(r, 1) 'originale: TextBox2 = ComboBox4.List(r, 1).......
dgio = TextBox5
ComboBox1 = ""
TextBox2 = "" ' originale: TextBox3 = ""
TextBox3 = "" ' originale: TextBox4 = ""
TextBox5 = dgio
End Sub
Però c'è una cosa che potrebbe essere migliorata ed è questa. Ad esempio; se inserisco dalla combobox4, "malattia" questo dato giustamente me lo inserisce,
ma se dovessi replicare la stessa voce non mi inserisce nulla nel foglio, anzi, mi lascia una riga libera passando alla riga successiva. Potrai notare dal
file allegato che giorno 3 è vuota. Si può risolvere?
Nel senso che rimanendo la voce "malattia" nella Combobox4, io possa inserire ad esempio 3 giorni di malattia senza che debba cambiare voce, per poi
ritornare sulla stessa voce "malattia" e così inserirla.
Allego file... Turni9
Grazie
di angy (utente non iscritto) data: 28/12/2013 09:26:26
Buongiorno a tutti,
Totygno, se non è possibile passiamo al prossimo Step.
Nell'userform1 ho inserito una cornice dove al suo interno ci sono una Textbox e pulsanti per inserire i riposi e permessi.
Il codice del calcola riposi e permessi c'è già nel modulo4. L'unico problema che dovrei creare tanti moduli per quanto sono i fogli dipendenti.
Se invece fosse possibile abbinarla alla scelta della combobox2, oppure aggiungere una nuova combobox.
Al suo interno ci sono ulteriori informazioni.
Resto in attesa.
file allegato turni(9)
Grazie.
Vuoi Approfondire?