TextBox foglio attivo



  • TextBox, foglio attivo
    di angy (utente non iscritto) data: 05/12/2013 19:58:04

    Buonasera.
    Sono qui nel chiederVi nuovamente un vostro aiuto. Sto lavorando ad progetto abbastanza complicato è articolato (spero di riuscirci). Specifico che non ho una buona conoscenza del VBA, anzi, pochissima. Però mi appassiona e lo trovo davvero interessante. Fatta la premessa arriviamo di cosa ho di bisogno. Vi spiego:
    ho un file Excel con tanti fogli chiamati chiaramente in modo diverso.
    Nella UserForm ho delle TextBox che mi restituiscono dei dati.
    Vorrei che ad esempio in una TextBox Chiamata ad Esempio; TextBox1, riconosca il nome foglio attivo evidenziandomelo al suo interno e ogni volta che cambio foglio, mi cambi il contenuto della TextBox1, riconoscendomi di volta in volta il nome del foglio Attivo.
    Grazie



  • di Vecchio Frac data: 05/12/2013 21:00:15

    Ogni foglio è un oggetto Worksheet che espone, tra le altre, la proprietà Name, la quale corrisponde al testo che vedi sulla sua linguetta quando apri il file (diverso è il suo nome interno, ma è un discorso che adesso non ti interessa).
    Se questa frase: "Vorrei che ad esempio in una TextBox Chiamata ad Esempio; TextBox1, riconosca il nome foglio attivo evidenziandomelo al suo interno" l'ho capita bene, ti basta assegnare al controllo TextBox1 il valore corrispondente al Worksheet attivo; il foglio attivo ha un nome tutto suo: ActiveSheet.
    Textbox1 = ActiveSheet.name.
    Per la seconda parte della domanda,"ogni volta che cambio foglio, mi cambi il contenuto della TextBox1, riconoscendomi di volta in volta il nome del foglio Attivo", dovrai intercettare l'evento SheetChange del Workbook; questo evento ha questa firma:
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    dalla quale ottieni questa informazione importante: al verificarsi dell'evento "cambio del foglio attivo" assegna alla variabile "sh" il foglio corrente (ActiveSheet).
    Dal che puoi dedurre che otterrai il nome del foglio corrente semplicemente digitando ... ? ^_^





  • di angy (utente non iscritto) data: 05/12/2013 21:13:37

    Grazie Franc.gentilissimo nel rispondermi. Io stavo provando con qualcossa del genere. Dava errore chiaramente.
    X = TextBox1.Text
    Worksheets("" & X & "").Select
    Invece inserendo il tuo codice: TextBox5 = ActiveSheet.Name
    basta che digito su un qualsiasi tasto, mi esce il nome del foglio attivo.
    Il secondo tuo passaggio non ho capito bene. Se intercetto quello che tu specifichi mi esce in automatico il risultato senza che io ci digiti sopra?



  • di Vecchio Frac data: 05/12/2013 21:30:21

    Io non capisco il tuo intervento.
    Questo accade perchè non ho la minima idea di quello che stai facendo, nè come lo stai facendo, nè di quello che vuoi ottenere ^_^
    Ho volutamente tralasciato di completare la frase perchè volevo vedere se avevi seguito il ragionamento... intento ancora valido, beninteso :)

    Ma tu vuoi selezionare un foglio, appena ne digiti il nome in una textbox?
    Che risultato vuoi che esca in automatico? col mio suggerimento, se applicato correttamente, nella textbox compare il nome del foglio attivo quando, in Excel, passi da un foglio all'altro all'interno del medesimo file. Io avevo capito che volevi questo.
    Altrimenti, cerca di dettagliare e magari posta un filetto (che, di questi tempi, costa assai) con la spiegazione in parole tue.





  • di angy (utente non iscritto) data: 05/12/2013 22:08:25

    Grazie Frac. Il progetto in discussione è per elaborare Turni di lavoro.
    Frac. C'è un problema esce nella textbox5 il nome del foglio che equivale ad un dipendente, questo però me lo scrive anche nel foglio. Non deve accadere Ti allego il file per avere meglio idea di cosa sto cercando di realizzare.
    Carissimo Frac. ti saluto per il momento, i miei figli e da stamani che non mi vedono.
    Ci sentiamo domani mattina. Ti saluto augurandoti una buona serata



  • di totygno71 (utente non iscritto) data: 06/12/2013 08:26:47

    Angy ho letto i commenti che hai inserito nella userform...
    Secondo il mio modesto parere NON serve una textbox che ti dica su quale foglio stai lavorando solo per evitare di inserire i dati della userform sul foglio sbagliato.
    Mi spiego meglio
    hai la combobox dove selezioni il dipendente a cui vuoi assegnare i dati della userform, benissimo ora:
    1° Passo Per poter inserire i dati questa combobox deve essere piena
    2° Passo quanto premi il pulsante inserisci i dati si vanno a ficcare non nel foglio attivo, ma nel foglio del dipendente selezionato nella combobox

    Domanda era questo il problema ed il risultato atteso??
    Ciao



  • di angy (utente non iscritto) data: 06/12/2013 10:06:25

    Buongiorno a tutti... Prima di continuare alla mia discussione, potete confermarmi dell'avvenuta donazione che ho appena fatto?
    Grazie



  • di angy (utente non iscritto) data: 06/12/2013 10:22:24

    Ciao totygno71, Se io dalla ComboBox scelgo un nome, potrai notare che non mi va a scrivere nel foglio scelto nella combobox, ma scrive nel foglio attivo. Per scrivere nel foglio chiamato Rossi Mario, devo scegliere pigiando il tasto "Sgegli dipendente". Quindi, se poi digito Inserisci Turno, mi scrive nel foglio attivo.
    Ho allegato il file proprio per essere più chiaro possibile. Non sarebbe male il fatto che dalla ComboBox mi scegliesse il foglio con il nome dipendente. In questo caso avrei un pulsante in meno. Il motivo per cui io avevo inserito la Combobox era solo per tenere a video su quale dipendente sto lavorando. Scusate se non sono molto chiaro, ma ciò è frutto della mia poca conoscenza in materia.
    Grazie.



  • di totygno71 (utente non iscritto) data: 06/12/2013 11:17:28

    prova l'allegato



  • di totygno71 (utente non iscritto) data: 06/12/2013 11:32:01

    Se noti in alto a sinistra della userfom ti compare il nome del dipendente che stai trattando.
    Ho fatto solo le modifiche per scrivere sul foglio relativo al dipendente ma non ho verificato tutto il resto...

    Facce sapè se siamo sulla strada giusta.
    Toty



  • di Vecchio Frac data: 06/12/2013 11:41:08

    cit. "potete confermarmi dell'avvenuta donazione che ho appena fatto"
    ---> Questo lo può sapere soltanto l'Amministratore che gestisce la Cassa ^_^
    Comunque se non hai avuto messaggi d'errore da Paypal vuol dire che tutto è andato a buon fine e quindi ti ringrazio per il tuo contributo!





  • di totygno71 data: 06/12/2013 11:44:10

    Anche io ringrazio Angy per la donazione!



  • di angy (utente non iscritto) data: 06/12/2013 12:10:31

    Ciao Frac... Ho visto nella mia Email è arrivata la Vostra conferma dell'avvenuta donazione.....
    Mi ringraziate e per cosa! sosteniamo con un nostro piccolo contributo affinchè questo sito possa crescere sempre di più. Ritengo un sito un Forum, molto utile. Invito anche altri iscritti e non, nel fare ciò che è nelle loro possibilità.
    Detto questo, passiamo oltre e vediamo il file di totygno71.
    Vi faccio sapere



  • di angy (utente non iscritto) data: 06/12/2013 12:18:02

    A totygno71. No, non ci siamo. Ho notato una cosa e sarebbe che se io scelgo dalla comboBox il nome dipendente, mi va a scrivere nella riga 25. Se cambio il turno mi cancella e riscrive il nuovo turno sempre nella stessa riga.



  • di totygno71 data: 06/12/2013 12:32:48

    infatti io non ho modificato il codice... lo avevo detto ho solo messo un ciclo per far scrivere nel foglio del dipendente selezionato... dove e cosa scrive è dettato dal tuo codice ^_^
    Spiegami dovrebbe scrivere nel giorno corrente?



  • di angy (utente non iscritto) data: 06/12/2013 12:46:39

    Come si evince dal file originale deve scrivere a partire dalla riga B4 in poi. Se ad esempio nella riga B4 oppure B5 è già scritta, deve passare alla riga successiva e così via. Se non trova nulla inizia a scrivere dalla B4.
    Grazie



  • di totygno71 data: 06/12/2013 12:54:28

    Ok
    ma scusa se mi permetto... cosi facendo non sai in che riga stai scrivendo... non sarebbe piu logico inserire un controllo sulla userfom in cui scegli oltre al turno il nome ect anche il giorno in cui vuoi assegnare il turno?



  • di angy (utente non iscritto) data: 06/12/2013 13:04:56

    Onestamente non idea. Se potrebbe essere una soluzione migliore ben venga. Solo che poi dovrei cambiare di volta in volta anche il giorno? Ascolto i tuoi suggerimenti vediamo cosa nè esce fuori. Comunque avevo specicato che e un progetto abbastanza complicato ed articolato anche per me spiegarlo. Lo vedremo strada facendo. Consigliami tu...



  • di totygno71 data: 06/12/2013 13:33:34

    Se vuoi inserire i turni senza scegliere giorno per giorno (cosa abbastanza macchinosa ma che ti garantisce di inserire i dati nella giusta giornata) si potrebbe inserire dal primo giorno in poi con una piccola accortezza che potrebbe essere poter vedere sulla userform il giorno in cui stai inserendo, una specie di contatore insomma... che ne pensi?



  • di angy (utente non iscritto) data: 06/12/2013 13:42:53

    Ottimo... Scrivere in successione, cioè riga dopo riga, tenendo nella schermata principale della userform il giorno in cui assegno il turno. Niente male



  • di totygno71 (utente non iscritto) data: 06/12/2013 13:51:17

    ok appena posso ti faccio una bozza
    forse stasera... intanto se qualcun altro vuole cimentarsi tempo permettendo...



  • di angy (utente non iscritto) data: 06/12/2013 13:55:20

    Grazie



  • di totygno (utente non iscritto) data: 06/12/2013 20:39:06

    Ho modificato solo il tasto inserisci dati... prova a vedere se la strada è giusta... Fammi sapere...



  • di angy (utente non iscritto) data: 06/12/2013 21:20:46

    Grazie tante. Lo sto provando, sembra che funzioni.
    Un' altra cosa:
    Quesito 1; nella cella E35 di ogni foglio ho questa formula =somma(E4:E35) mi da però come risutato 0, quando invece nell'intervallo ci sono dei numeri e dovrebbe sommarli. Si nota nel quadratino della cella in alto a sx, un angolino verde, che significa? perchè non mi fa la somma?

    La somma contenuta nella cella E35 non sarebbe altro le ore lavorate e, deve essere riportata in un'altra textbox che ho già aggiunto nell'userform.
    Nell'userfom ho aggiunto questo codice:
    Private Sub UserForm_Initialize()
    TextBox6.Value = Cells(35, 5).Value 'visualizza il valore della Cella E35
    Quesito 2; si potrebbe anche assegnare alla textbox in questione al nome dipendente scelto? cioè risolto il problema della somma, la textbox in questione deve riportare la somma che si trova in E35 in base al dipendente scelto nella combobox.
    Grazie



  • di totygno (utente non iscritto) data: 06/12/2013 21:47:07

    1. cit"Si nota nel quadratino della cella in alto a sx, un angolino verde, che significa? perchè non mi fa la somma?
    se ti metti sopra col cursore vedrai che scopri anche il perche... il valore è formattato come testo e non come numero... scegli l'opzione converti in numero e riuscirai a sommarli

    2. Si come già fato per la userform.caption oppure con il giorno che vedi nella textbox4 ... al cambiare del nome del dipendente cambiano entrambi...

    Provaci e faci sapere...



  • di totygno (utente non iscritto) data: 06/12/2013 21:57:55

    dai un altro aiutino vedi il file copia-1 intanto che mi guardo 4 grado ^_^



  • di angy (utente non iscritto) data: 07/12/2013 09:13:51

    Buongiorno a tutti gli utenti di questo Forum.
    totygno, scusami per ieri sera se non ti ho risposto. Sono rincasato dopo 13 ore. Almeno ho visto i miei figli svegli.
    Detto questo torniamo a noi.
    Dirti che sei bravo mi sembra quasi di offenderti. Sei grandissimo. Questo è il Frutto di chi ha studiato e studia ancora con passione e dedizione.
    La tua modifica è Eccezionale e me lo sto studiando, almeno sto cercando di capire come hai fatto. Sarà molto improbabile che io ci riesca vista la mia pochissima conoscenza in materia.
    P.s. appena scricato il file, aprendolo mi è uscita la scritta "abilita modifica" ho pigiato su abilita ed è uscito un'errore Debug, dove si evidenziava di colore giallo questo codice all'interno del: workbook_open:

    Sheets("Start").Activate ' questa è la scritta di giallo.

    Poi chiudendo il file e riaprendolo non mi ha dato nessun errore. Che significa?
    Intanto grazie per tutto ciò che hai fatto per me.



  • di totygno (utente non iscritto) data: 07/12/2013 11:29:20

    Bisognerebbe sapere che tipo di errore cmq Sia ci solo ancora molte modifiche da fare che ne dici?



  • di angy (utente non iscritto) data: 07/12/2013 11:43:41

    Ciao totygno...
    Non mi sono segnato il numero dell'errore del debug.. Però ti dico che chiudendo e riaprendo il file, al momento non presenta problemi.
    Per le modifiche c'è ne sono ancora da fare siamo all'inizio e come postato prima è abbasstanza articolato il progetto da realizzare.
    Infatti, un problema da risolvere è: quando inserisco un turno e scelgo un dipendente, al successivo inserimento devo sempre scegliere il dipendente. E' possibile che il nome del dipendente rimanga nella ComboBox2 fisso in modo da inserirli altri turni ammenochè non sia a cambiarlo?
    Grazie



  • di angy (utente non iscritto) data: 07/12/2013 13:12:38

    Se dovessi sbagliare il turno, avrei bisogno anche di modificarlo.
    Avrei bisogno di una cosa del genere
    Cerco di riportare al meglio la mia idea.

    Alla comboBox2= Dipendente: Rossi Mario ' qui scelgo il dipendente

    Alla TextBox7 = Scegli giorno: 1 ' qui inserire il giorno che devo modificare

    Nelle altre TextBox deve evidenziare il turno già assegnato a Rossi Mario del giorno 1.
    Una volta modificato il turno, avrei bisogno di un pulsante "Modifica" che mi vada a salvare nel foglio di Rossi Mario, nel giorno specificato dalla textBox7, in questo caso giorno 1.
    Come posso fare?



  • di totygno (utente non iscritto) data: 07/12/2013 14:24:42

    vers. 2 allegata



  • di angy (utente non iscritto) data: 07/12/2013 14:58:55

    Grazie Totygno mi hai eliminato un piccolo fastidio.
    Ascolta ho postato prima che mi servirebbe come eventualmente effettuare una modifica.
    Come posso fare?



  • di totygno (utente non iscritto) data: 07/12/2013 15:14:08

    ver 3

    ^_^



  • di angy (utente non iscritto) data: 07/12/2013 17:11:13

    Grazie totygno, non ho parole. Io da stamani che ci sto provando. Lascio a te immaginare che cosa ho ottenuto "non ti dico".
    Tra una 10 di min. vi lascio perchè ho intenzione di tornare prima a casa stasera.
    Quindi, anche se il progetto non è finito, ritengo che la spunta per il momento va messa.
    Detto questo, vi invio i miei più sinceri Auguri a Voi tutti di una buona IMMACOLATA...
    Auguriii a tutti.....
    a presto....



  • di totygno (utente non iscritto) data: 07/12/2013 17:27:00

    Anche a te...