La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Ciao, vi propongo un altro programmino che onestamente non è tutta farina del mio sacco. Funziona tutto come dovrebbe tranne i pulsanti "nuovo" e "cerca". Il pulsante "nuovo" si ostina a inserire i dati sempre sulla stessa riga invece di passare alla successiva mentre il pulsante "cerca" mi restituisce un errore di runtime sulla riga che definisce isearch. Il codice è esattamente quello del file da cui ho preso spunto, fatta eccezione ovviamente per la posizione dei dati. Allego il file, se qualcuno è così gentile da aiutarmi a scoprire l'arcano. Grazie in anticipo
PS: posso risolvere il problema del pulsante "nuovo" semplicemente cancellando tutto e
facendo in modo che apra l'altra piccola userform che avevo fatto in precedenza e funziona come dovrebbe, ma preferirei capire dove sta l'errore..
Ciao @Cyberlady
ho dato un veloce sguardo al file ma prima di approfondire i problemi che hai evidenziato vorrei capire come mai fai utilizzo di una Tabella (ListObject) per raccogliere i vari dati (Cognome, Nome, Indirizzo, Nr. Telefonico, ecc...). Se ci devi fare calcoli particolari allora avrebbe anche un senso, ma dato che devi solo memorizzare dei dati, converrebbe sfruttare le celle pure e semplici del foglio. Se invece ti interessa continuare con la Tabella allora bisognerà intraprendere una strada diversa a livello di codice (un po' più tortuosa rispetto alle normali celle), e sfruttare quelle che sono Metodi e Proprietà delle ListObject.
Quindi prima di procedere a darti una mano, fai sapere quale strada intraprendere.
@alexps81 ciao, lo scopo della listbox è visualizzare tutti i contatti che contengano il termine di ricerca inserito nella text box in alto, selezionare quello desiderato e visualizzare i dati nelle text box a sinistra per poterli aggiornare, cancellare eccetera. Non riesco a capire bene perché premendo “a vuoto” il pulsante “nuovo” mi appaiano tutti i contatti nella listbox a prescindere, per me quel pulsante dovrebbe servire solo a inserire un eventuale contatto non trovato tramite ricerca. Come dicevo, il problema di quel pulsante è facilmente risolvibile ma preferirei capire dove stanno gli errori per imparare qualcosa in più
Ciao @Cyberlady, penso che tu non abbia letto bene ciò che ho chiesto. La mia domanda era rivolta alla presenza di una ListObject sul Foglio "Indirizzi" e non della ListBox nella UserForm. Comunque non fa nulla...proseguiamo con la ListObject così com'è adesso. Appena è tutto pronto ti pubblico il file e le spiegazioni.
@alexps81 scusami hai ragione..le listobject sul foglio in realtà non hanno nessun senso, ho solo dimenticato di levarle 😓 Ero partita da quello e poi ho pensato bene di darmi al vba per automatizzarlo
Ciao @Cyberlady
come promesso di giro in allegato il file con le dovute modifiche e spiegazioni commentante nel codice.
Purtroppo quando si realizza una "Rubrica Telefonica" è necessario seguire una certa struttura. Ad esempio ogni nominativo deve avere un proprio numero ID unico e non replicabile. Questo si rende necessario in quanto possono esserci delle omonimie, quindi dobbiamo far leva su un numero che sia unico e identifica quel nominativo.
Questo numero ID l'ho memorizzato in un Names (non so se sei pratica della Gestione Nomi). In realtà questo numero ID tu non lo vedrai in Gestione Nomi perché l'ho nascosto. Questa è una tecnica che serve ad evitare che per qualche motivo, quel Names venga accidentalmente o volontariamente eliminato.
Come detto il Names "numeroID" conserva il numero identificativo da assegnare al nuovo nominativo da inserire in Rubrica. Ad ogni nuovo inserimento, questo numero subisce un incremento.
Quando andrai a modificare un nominativo che selezioni dalla ListBox, grazie al numeroID riusciremo a risalire al nominativo da modificare in ListObject.
Prova a vedere il funzionamento della Form Ricerca così come l'ho modificata.
Ti spiego il funzionamento dei vari pulsanti (per ora sono codificati da me solo "NUOVO", "SALVA", "CERCA", "MODIFICA", "AZZERA RUBRICA")
- NUOVO (preleva un nuovo numero ID e lo prepara in TextBox "ID", abilita il pulsante "SALVA")
- SALVA (dopo che hai compilato tutti i campi (cognome, nome, ecc...), premi su SALVA e i dati verranno trasferiti nella ListObject)
- MODIFICA (dopo selezionato il nominativo in ListBox, i dati verranno visualizzati nelle varie TextBox. Dopo aver effettuato le modifiche, premi sul pulsante "MODIFICA" e i dati verranno modificati in ListObject).
- CERCA (quando scrivi il cognome del nominativo, anche parzialmente, poi premi su "CERCA" e la ListBox verrà popolata solo con quei cognomi che iniziano con ciò che hai scritto in txtCerca)
- AZZERA RUBRICA (se lo premi verranno azzerati tutti i dati in ListObject e riportato a 0 il valore del numero ID. Se t'interessa qui possiamo prevedere una richiesta di immissione password prima di cancellare tutti i dati)
Se vuoi il numeroId presente nella ListBox si può anche nascondere, non è necessario che venga visualizzato...ma è importante che sia presente.
I test falli aggiungendo i nominativi attraverso la UserForm e mai direttamente in ListObject perché si perderebbe il numeroID.
@alexps81 Grazie mille, funziona perfettamente..adesso vado anche a studiarmi il codice da povera autodidatta quale sono 😘
Prego...se serve altro aiuto sono/siamo qui 😊