Creazione userform



  • Punto morto
    di Salvatore (utente non iscritto) data: 06/11/2009

    Buon giorno a tutti, sto facendo un file, ma sono arrivato a degli step che non riesco a superare:

    1) che codice devo inserire in un pulsante che sta dentro una userform che quando lo premo mi da la schermata trova (quella classica di excell)

    2) sempre tramite questa userform ho delle textbox, che voglio che il loro contenuto venga scritto su un foglio di excell, solo che questi dati devono andare messi in una tabella, quindi devono essere inseriti nella prima cella utile senza cancellare la cella precedente(es se a1 e piena deve scrivere in a2, se a2 e piena scrive in a3 e cosi via)

    3) perchè ho inserito in thisworkbook

    application.windowstate = xlminimized
    userform1.show

    come in altri file che ho fatto in passato ma questa volta la userform rimane ad icona e devo cliccarci sopra per aprirla invece di aprirsi in automatico quando apro il file come le altre volte?

    grazie spero di essermi spiegato salvatore



  • di Enzo (utente non iscritto) data: 06/11/2009

    1) prova a dare un occhiata a
    workbooks.application..... dovresti trovare quella relativa al metodo trova
    esempio workbooks.application.findfile ti apre lo schermo di excel "apri file"
    2) ipotizzando che tu abbia un valore in una textbox1 scrivi nel pulsante
    range ("a1").select
    do
    activecell.offset (1).select
    loop activecell.value = ""
    activecell.value = textbox1.text
    devi sempre adattarla alle tue esigenze
    in questo esempio va in a1 scende fino a trovare la cella vuota e scrive il contenuto della textbox (devi anteporre prima di textbox il nome della tua userform ossia userform1.textbox1.text

    1) la proprieta' della userform showmodal deve essere settata sul "false"
    vai nel progetto clicca sulla userform con il tasto destro del mouse vai nelle proprieta' vai su show modal e settala su false
    bye
    fa sapere



  • di Salvatore (utente non iscritto) data: 09/11/2009

    Grazie enzo per la risposta, allora il punto 3 sono riuscito a farlo, daltronde era il più facile per le mie capacità. mentre il punto 2 non va. riguardo al punto 1 fantastico, non conoscevo tutte queste funzioni (non è che ai un allegato con la traduzione in italiano di cosa fanno) comunque ho usato workbooks.application.filesearch ma non funge, che posso fare?



  • di Enzo (utente non iscritto) data: 10/11/2009

    Mi ero dimenticato un istruzione "until"
    ora dovrebbe andare (premesso che lui si posiziona sulla prima cella vuota)
    per quanto riguarda le spiegazioni se vai nell'editor di vba editor e evidenzi workbooks....etc e premi (f1) avrai le spiegazioni ed esempi in italiano
    bye
     
    range ("a1").select 
    do 
    activecell.offset (1).select 
    loop until activecell.value = "" 
    activecell.value = textbox1.text 
    



  • di Salvatore (utente non iscritto) data: 12/11/2009

    il codice è perfetto, l'ho adattato alle mie esigenze e funge alla grande!!! grazie

    però mi son reso conto che mi scrive i valori delle textbox nel foglio di excell attivo, che si dovrebbe aggiungere per fare in modo che il valore della textbox venga inserito in un determinato foglio (esempio "fattura")?

    p.s. non son riuscito a trovare il codice per fare cerca file (lo stesso che esce quando su excell si digita ctrl+shift+t.

    grazie ancora salvatore



  • di Enzo (utente non iscritto) data: 13/11/2009

    Allora per indirizzare il range esempio sul foglio1
    foglio1.range ("a1").select
    per il probelma inerente al tasto trova, non e' proprio corretto ma potresti fare cosi'
    se utilizzi un tasto posto in una userform
    la proprieta' showmodal della userform deve essere settata su false poi inserisci nel pulsante della userform (se esempio si chiama userform1)

    userform1.hide
    sendkeys "^+{t}", true

    fa sapere



  • di Enzo (utente non iscritto) data: 13/11/2009

    ...ripeto utilizzare il comando sendkeys non e' proprio corretto ma non vedo soluzione, almeno per quanto riguarda le mie conoscenza in merito



  • di Salvatore (utente non iscritto) data: 15/11/2009

    Enzo, quel codice è perfetto! come mai dici che non è corretto??

    man mano che le cose vanno avanti pero mi sto rendendo conto di qualche bug che esce

    -quando uso il codice che mi ai dato e mi trova l'elemento sul foglio excell cosa devo aggiungere per far visualizzare il foglio excel con l'elemento trovato?

    -tornando al codice che mi ha dato (primaquello che scrive nella prima cella vuota di excel), ho notato che scrive anche se nelle textbox non sta scritto nulla, che bisogna aggiungere per far si che non scriva in excel se le text box sono vuote o meglio ancora magari che esca un messaggio quando premo il tasto che dice "compilare tutti i campi"

    grazie ancora per l'aiuto che mi stai dando



  • di Enzo (utente non iscritto) data: 16/11/2009

    Inizialmente non capisco cosa tu voglia dire con
    """quando uso il codice che mi ai dato e mi trova l'elemento sul foglio excell cosa devo aggiungere per far visualizzare il foglio excel con l'elemento trovato""
    se alleghi un file di esempio forse si puo' capire meglio
    per il secondo quesito vedi sotto

     
    if userform1.textbox1 <> "" then
    foglio1.range ("a1").select
    do
    activecell.offset (1).select
    loop until activecell.value= ""
    activecell.value= textbox1.text
    end if
    



  • di Salvatore (utente non iscritto) data: 17/11/2009

    Ciao enzo. allora volevo dire che avendo ridotto ad icona il file excell e lavorando solo co le userform, volevo sapere come si fa a fare in modo che dopo aver cercato una parola nel foglio di excell tramite il comando che mi hai dato a far aprire il foglio di excel con selezionato la cella con l'elemento trovato.

    quell'altro codice non va proprio al caso mio, o provato, e rivedendo il file ho notato che sarebbe meglio un codice con la funzione if
    cioe se la textbox1 e vuoto non inserire nulla nella cella di excell (a1, altrimenti inserisci "registrato"

    per creare quel codice ho fatto cosi però non funge sai dirmi perchè? e cosa dovrei modificare

    if textbox1 <> "" then
    range("a1").select
    activecell.value = "registrato"



  • di Enzo (utente non iscritto) data: 17/11/2009

    L'istruzione che hai inserito tradotta vuol dire
    se la textbox1 e' vuota inserisci in a1 la parola "registrato"
    tagliamo la testa al toro
    allega un file di esempio e specifica che vuoi fare
    facciamo prima
    bye



  • di Salvatore (utente non iscritto) data: 17/11/2009

    Ok, senti non è che per caso ai una mail cosi te lo mando li perchè e un file di lavoro e non vorrei che prima che lo veda il "boss" si diffonda.

    eventualmente la mia maile

    saldot80@libero.it



  • di Enzo (utente non iscritto) data: 18/11/2009

    Allega un file di prova senza dati sensibili che riproduca piu' o meno quello che vuoi fare in modo tale da adattarlo alle tue esigenze
    p.s. un consiglio in futuro non inserire mai indirizzi email



  • di Salvatore (utente non iscritto) data: 19/11/2009

    Ok, dammi un paio di giorni di tempo per rifare il file e lo scambio, grazie ancora salvatore



  • di Salvatore (utente non iscritto) data: 24/11/2009

    Enzo, ho caricato un file simile a quello che avevo, ho modificato le voci con alimenti, aspetto fiducioso

    salvatore



  • di Enzo (utente non iscritto) data: 25/11/2009

    Ti ho allegato due file uno zippato ed uno no
    provali
    li ho stravolti un po ma i lavoro l'ho fatto un po di fretta ma per quello che ho potuto provarlo dovrebbe andar bene



  • di Enzo (utente non iscritto) data: 25/11/2009

    Ti ho allegato due file uno zippato ed uno no
    provali
    li ho stravolti un po ma i lavoro l'ho fatto un po di fretta ma per quello che ho potuto provarlo dovrebbe andar bene



  • di Salvatore (utente non iscritto) data: 28/11/2009

    Ciao enzo, scusa se non ti ho risposto prima, ma sto avendo dei problemi e non sto accendendo per niente il computer, appena risolvo (spero presto) guardo gli allegati e ti faccio sapere,

    grazie salvatore