Excel Forum Per condividere esperienze su Microsoft Excel

Difficiltà con combobox e con aggiornamento record tabella

  • Messaggi
  • OFFLINE
    G.Forcesi
    Post: 3
    Registrato il: 05/07/2017
    Città: L'AQUILA
    Età: 59
    Utente Junior
    2010
    00 07/07/2017 13:44
    Carissimi, premesso che sto studiando la programmazione con Excel, macro e VBA, posto un lavoro che non riesco a completare e necessito del vostro aiuto.
    Ho una tabella che sul foglio Fg_Sn_Dupl.
    Per gestire l'inserimento, l'aggiornamento e la cancellazione dei record sto usando il metodo Userform con della macro associate.
    Pertanto ho provato a realizzare la Userform per fare queste operazioni ma non funziona. In particolare:
    - Non riesco a popolare la combobox automatica per la selezione dei nominativi in tabella
    - Non riesco a posizionare il contenuto della Userform al primo record della tabella.
    Se qualcuno piu esperto mi puo' aiutare provo ad andare avanti per fare Inserimento record, Aggiornamento e Cancellazione.
    Vi ringrazio in anticipo e aspetto con fiducia un vostro aiuto.
    Posto il file compresso per farvi capire meglio.
    Il pulsante che attiva la Userform si chiama RECORD ed è sulla tabella.
    Grazie [SM=x423052]
    [Modificato da G.Forcesi 07/07/2017 13:45]
  • OFFLINE
    dodo47
    Post: 1.457
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 08/07/2017 11:15
    Ciao
    ho apportato le seguenti modifiche:
    - eliminata sub Activate
    - aggiunta: Private Sub UserForm_Initialize()
    - modificata: Private Sub ComboBox1_Change()
    - aggiunta 1 colonna (la prima, non visibile - larghezza 0) alla tua comboBox1 nella quale ci va a finire il num. Prog della col. D del foglio che deve essere univoco. Tale valore è la base di ricerca sul foglio del record in elaborazione.

    Una volta aperta la uForm e selezionato il nominativo, verranno riempite tutte le TextBox con i relativi valori. Tale operazione non è stato possibile effettuarla con un unico ciclo continuo per le textBox in quanto i valori da recuperare non sono in colonne contigue.

    Non sono entrato nel merito di altro.

    NOTA_1: ti ricordo che l'unico CF valido è quello rilasciato dalle autorità competenti. Pertanto qualsiasi formula/codice utilizzato per ricavarlo, non fornisce un CF affidabile.
    Ti consiglio pertanto di non emettere documentazione con tali CF.

    Domanda: usi excel 2003 ? Se si, ti ricordo che lo stesso non è più supportato dalla Microsoft.

    saluti


    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    G.Forcesi
    Post: 4
    Registrato il: 05/07/2017
    Città: L'AQUILA
    Età: 59
    Utente Junior
    2010
    00 08/07/2017 12:10
    Grazie Dodo47,
    provo quello che mi hai postato e ti dico l'esito.

    In merito all'utilizzo di Excel lavoro con la versione 2010.

    In merito al CF, la routine di ricalcolo la utilizzo solo per verificare la congruenza dei dati che mi vengono dettati.

    Grazie
    Gianni
  • OFFLINE
    dodo47
    Post: 1.458
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 08/07/2017 12:25
    Re:
    G.Forcesi, 08/07/2017 12.10:


    In merito all'utilizzo di Excel lavoro con la versione 2010.



    e perché l'estensione è xls e non xlsm ??




    [Modificato da dodo47 08/07/2017 12:26]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    alfrimpa
    Post: 3.340
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 08/07/2017 19:14
    Probabilmente perché per errore al salvataggio del file ha scelto come tipo Excel 97-2003.

    Alfredo
  • OFFLINE
    G.Forcesi
    Post: 5
    Registrato il: 05/07/2017
    Città: L'AQUILA
    Età: 59
    Utente Junior
    2010
    00 10/07/2017 23:34
    SCUSATE HO PROVATO A LUNGO E QUESTI GLI ESITI DEL TEST SUL FILE CHE HO SCARICATO DOPO LE CORREZIONI DI DODO47.

    FUNZIONE INSERIMENTO RECORD - FUNZIONA CORRETTAMENTE

    FUNZIONE AGGIORNAMENTO RECORD - NON FUNZIONA. OVVERO SE DIGITO I PRIMI CARATTERI DEL COGNOME, LA COMBOBOX REGOLARMENTE POPOLATA MI DA UN SET DI RECORD, SELEZIONO QUELLO DESIDERATO, FACCIO LA CORREZIONE SUI TESTBOX MA QUANDO VADO A PIGIARE IL TASTO AGGIORNAMENTO MI RESTITUISCE UN VALORE DI RIGA NON CORRISPONDENTE COSI LE MODIFICHE O VANNO SU UN RECORD NON CORRISPONDENTE A QUELLO SELEZIONATO O VANNO ADDIRITTURA AD AGGIUNGERE UN RECORD IN TABELLA.

    FUNZIONE CANCELLAZIONE - NON FUNZIONA. SI COMPORTA COME L'AGGIORNAMENTO. SEMBRA CHE LA SELEZIONE DEL RECORD DA COMBOBOX NON FACCIA POSIZIONARE LA RICERCA SUL RECORD CORRISPONDENTE MA A CASO.

    VI SONO GRATO SE MI RISPONDETE.
    NON POSTO IL FILE TANTO E' LO STESSO CHE HO SCARICATO E CHE GIA' SI TROVA SULLA RETE.
  • OFFLINE
    dodo47
    Post: 1.463
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 11/07/2017 09:31
    Ciao
    ti invito a non scrivere in maiuscolo sui forum perché equivale ad urlare.

    Ciò premesso, ti ho accennato che io non sono entrato nel merito del resto del tuo programma.

    A mio avviso è proprio la struttura della programmazione che devi cambiare.

    Ti allego un file di test che fa più o meno quello che chiedi.

    Provalo così com'è (nella uform c'è pure una casella con l'ora che, se leggi all'interno della macro puoi benissimo eliminare.
    Studiati bene le varie macro.

    In sintesi:
    - la combobox ti permette la selezione di un nominativo
    - lo spinbutton ti permette di scorrere avanti e dietro i record
    - per modificare un dato, scegli il record con una di queste due opzioni, rettifichi quello che vuoi e premi modifica
    - per eliminare un record premi elimina
    - per aggiungere prima premi "Nuovo record", inserisci i dati e poi premi "Inserisci"
    - l'ID è gestito da programma e non lo puoi variare in quanto chiave univoca.
    - i vari pulsanti vengono abilitati/disabilitati secondo l'occasione.

    Se fa al tuo caso adattalo alle tue esigenze.

    saluti

    Edit: nel vb c'è il modulo1 che non ha nessuna attinenza con il lavoro e può essere eliminato
    [Modificato da dodo47 11/07/2017 13:34]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    G.Forcesi
    Post: 6
    Registrato il: 05/07/2017
    Città: L'AQUILA
    Età: 59
    Utente Junior
    2010
    00 11/07/2017 13:50
    Ciao Dodo47,
    ho importato la userform che mi hai trasmesso nel nuovo file, ho adeguato i campi e, a mio avviso sistemato tutto, ma non riesco proprio a lanciare la userform.

    Ho previsto di lanciarla a pressione del pulsante RECORD (quindi senza fare dentro e fuori il file) ma mi genera un errore che non riesco a risolvere.

    Chiaramente non ho potuto testare le funzioni in quanto non riesco proprio ad avviare la userform.

    Ti allego il nuovo file salvato peraltro in excel 10.
    Ti sono grato se dai un'occhiata che con la tua esperienza e capacità è sicuramente più veloce e soprattutto più intuitiva della mia.

    Grazie ancora
    Gianni
    [Modificato da G.Forcesi 11/07/2017 13:50]
  • OFFLINE
    dodo47
    Post: 1.464
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 11/07/2017 14:15
    Ciao
    perché la tua tabella non si chiama: "Fg_Sn_Dupl", ma Tabella2, quindi varia la Private Sub UserForm_Initialize.
    Non ho controllato la funzionalità del resto sul tuo documento, ma non basta importare la uform, hai adattato poco e nulla delle macro, specie il caricamento della cbo ecc

    Inoltre:
    o cancelli come scritto nella macro le sub del timer
    oppure ti devi importare anche il modulo Orario dal mio file.

    Comunque (a parte stasera e domani) sono a disposizione per chiarimenti sui codici.

    saluti
    [Modificato da dodo47 11/07/2017 14:28]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    dodo47
    Post: 1.465
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 11/07/2017 14:20
    ... ti ho detto che il Prog (ID) viene gestito da programma.
    Fai un copia/incolla valoro della colonna D e cancella tutte le formule a partire da D63 in poi.
    Le formule in A B C (come tutte le altre) non ci devono essere, vanno gestite da programma.

    ..la vedo dura adattare la form alle tue esigenze

    saluti





    [Modificato da dodo47 11/07/2017 16:36]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    G.Forcesi
    Post: 7
    Registrato il: 05/07/2017
    Città: L'AQUILA
    Età: 59
    Utente Junior
    2010
    00 11/07/2017 16:45
    Ciao dodo47,
    ho provveduto a:
    - cambiare il nome tabella - risultato la userform si apre e la combobox si carica ma va vedere solo il cognome sebbene ho scritto di fare vedere 7 colonne

    - inserito i primi 62 progressivi come numero secco e non formula e tolto le formule dal 63 in poi -

    - cancellato dalle colonne A,B,C, tutte le formule lasciando solo le colonne vuote.

    Il risultato di tutto ciò è non fruibile perchè la combobox non funziona per alcuna delle funzioni disponibili - Inserire record, modifica, cancella e non si incrementa/decrementa neanche il record cliente cliccando sulle frecce accanto alla box ID

    Ti allego nuova versione sw delle 16:40 11/11/2017
    [Modificato da G.Forcesi 11/07/2017 16:46]
  • OFFLINE
    dodo47
    Post: 1.466
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 11/07/2017 18:47
    Ciao
    Ti scrivo da cell
    Ma tu che conoscenze hai di vba?

    Abbi pazienza, ma se nel mio foglio i dati iniziano da col A e nel tuo da col D, ci sarà pure qualcosa che devi cambiare nelle macro o nel tuo foglio no?

    Segui in debug cosa succede e vedrai che trovi il perché sul tuo foglio la UForm non va mentre sul mio foglio si.

    Infine: se decidi di gestire una tabella tramite una UserForm, devi eliminare dalla tabella tutte le formule (colonne), altrimenti non ha senso l'utilizzo della form

    Saluti

    [Modificato da dodo47 13/07/2017 09:00]
    Domenico
    Win 10 - Excel 2016