È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Modifica di un contatto in rubrica telefonica semplice

Ultimo Aggiornamento: 20/01/2022 16:48
Post: 81
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
31/12/2021 18:22

...pensavo di potercela fare da solo ma, evidentemente, devo mangiare ancora tanta vitamina...
Avevo scritto a by sal riguardo ad una discussione precedente (https://www.freeforumzone.com/d/11783437/Cancellazione-nominativi-da-rubrica-telefonica-semplice/discussione.aspx), dicendogli che avrei provato da solo a inserire il codice per poter modificare i dati di un contatto, tramite la visualizzazione nella listbox, selezionando il contatto stesso da variare; ahimè, sono diventato più scemo di prima e non son riuscito a cavare un ragno dal buco.
Santo by sal (o se ci fosse qualcun altro armato della stessa pazienza), ti ri-allego il file (ho fatto qualche piccola modifica estetica) con l'aggiunta del nuovo CommandButton che dovrebbe risolvere il caso: riesci a fare anche questo miracolo, prima che io impazzisca?

PS - inoltre, se qualcuno può indicarmi un buon libro che spieghi, in modo semplice e chiaro, il vba, ne sarei grato.

Grazie anticipatamente e ancora augurissimi per un 2022 migliore!!!!
Elio
EcoBand
Post: 6.640
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
01/01/2022 11:06

Ciao Elio, eccoti il file con la modifica fatta, nel codice ho indicato quello aggiunto.

una cosa non comprendo perche con 1 solo foglio il tuo file pesi 6 Mb

Ciao By Sal (8-D
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 81
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
03/01/2022 07:56

Ciao By Sal,
è inutile dire che sei un Grande.
Prima di tutto ti rinnovo gli auguri per un migliore 2022 possibile; ho scaricato il file, l'ho provato e va che è una bellezza!!!
Il tempo di riordinarlo e lo ri-posto, nell'eventualità qualcuno voglia utilizzarlo ed evitare, così, tutti quei fogli e fogliettini vari sparsi su una scrivania contenenti numeri di telefoni e contatti presi al volo...
Per quanto riguarda il peso del file.... hai una domanda di riserva? 😂😂😂
non so se è dovuto al fatto che abbia formattato 5000 righe (se non erro) atte ad accogliere altrettanti nominativi.... altrimenti non saprei.
Ringraziarti non è mai abbastanza.
Appena finisco di rifare il "make-up", allegherò il file.
Grazie ancora, prezioso amico.
Elio
EcoBand
Post: 1.168
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Veteran
Excel 2016-32bit Win11
OFFLINE
03/01/2022 11:56

Un saluto a tutti.
Nella macro CommandButton4_Click puoi aggiungere questo codice, non fa niente di particolare ma può evitare un momento di panico:
'...
Next i
If nome = "" Then MsgBox ("Non hai selezionato alcunché."): Exit Sub ' <- aggiunta
Risposta = MsgBox("VUOI ELIMINARE IL NOME SELEZIONATO DALLA RUBRICA ?", vbYesNo)
'...

e in CommandButton5_Click:
'...
Next i
If nome = "" Then MsgBox ("Non hai selezionato alcunché."): Exit Sub ' <- aggiunta
Risposta = MsgBox("VUOI MODIFICARE IL NOME SELEZIONATO DALLA RUBRICA ?", vbYesNo)
'...

Poi per evitare di formattare inutilmente spazio destinato ai nuovi nominativi (così puoi eliminare le 5000 righe ed alleggerire il file) nella macro CommandButton1_Click puoi aggiungere quest'altre due righe codice in modo che la formula necessaria sia inserita solo all'occorrenza:
'...
Else
If Range("C2").Value = "" Then
Cells(2, 1).FormulaR1C1 = "=IF(RC[2]=0,"" "",CONCATENATE(RC[1],"" "",,RC[2],"" - "",RC[3]))" '<- aggiunta
Cells(2, 3).Value = TextBox1.Value
Cells(2, 4).Value = TextBox2.Value
'ordinamento dati dopo l'inserimento
Call OrdE("INDIRIZZARIO", 1, 2, 4, 3, 0)
Range("E20").Select
TextBox1.Value = ""
TextBox2.Value = ""
'Sheets("INDIRIZZARIO").Protect ("ecoband")
Else
'per individuare la prima riga vuota
UltimaRiga = Cells(Rows.Count, 3).End(xlUp).Row + 1
Cells(UltimaRiga, 1).FormulaR1C1 = "=IF(RC[2]=0,"" "",CONCATENATE(RC[1],"" "",,RC[2],"" - "",RC[3]))" '<- aggiunta
Cells(UltimaRiga, 3).Value = TextBox1.Value
Cells(UltimaRiga, 4).Value = TextBox2.Value
'ordinamento dati dopo l'inserimento
'...

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 82
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
07/01/2022 13:17

...ancora un problemino...
Grazie Rollis13, le tue aggiunte sono risultate preziose anch'esse!!!
Resta solo un piccolo problema che mi si proponeva anche prima (dopo l'ultimo aiuto di By Sal):
se provate a fare una modifica ad un nominativo (provate a farla) e subito dopo volete aggiungere un nuovo contatto (Nuovo), dopo averlo inserito e aver cliccato su "Salva contatto". mi da il messaggio "modifica effettuata" (e non dovrebbe darlo), ma non salva il nuovo nominativo.
...e non riesco a trovare il perchè.
Dov'è l'errore?
PS - tra l'altro poi, mi ritrovo sul desktop un file in più denominato "Backup di Rubrica Telefonica"?!?!?!?
In allegato metto il file aggiornato.
Grazie ancora per la pazienza.
Elio
EcoBand
Post: 1.170
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Veteran
Excel 2016-32bit Win11
OFFLINE
07/01/2022 18:28

Anche se non ho fatto 'mille' test con tutte le combinazioni sono certo che se apporti questa modifica il messaggio non ti compare:
'...
MsgBox "MODIFICA EFFETTUATA", vbInformation, "Modifica dati"
NomT = ""                                 '<- aggiunta
Label4.Caption = "REGISTRAZIONE NUOVO CONTATTO"
'...

PS. fai un "Salva con Nome" e una volta arrivato alla conferma accanto al pulsante "Salva" trovi il menu "Strumenti". Al suo interno scegli "Opzioni Generali..." e togli la spunta su "Crea sempre una copia" e completa. Dopo potrai eliminare il file .xlk ma poi non lamentarti se per qualche incidente perdi il file originale e non hai a disposizione una copia😀.
[Modificato da rollis13 07/01/2022 18:37]

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 83
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
12/01/2022 08:30

RISOLTO
ALLA GRANDE!!!
Adesso funziona tutto, grazie al vostro preziosissimo intervento.
Lo allego, casomai possa servire a qualcuno.
Grazie ancora: siete fantastici!!!
[Modificato da elioeco 12/01/2022 08:35]
EcoBand
Post: 1.175
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Veteran
Excel 2016-32bit Win11
OFFLINE
12/01/2022 08:49

Grazie del riscontro positivo👍. Sono contento che siamo stati in grado di aiutare ma io mi sono limitato ad un ritocco✍.

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 84
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
12/01/2022 09:14

allegato modificato
...il tuo ritocco è stato comunque risolutivo (lo stesso problema che dava dopo la modifica (quando si modificava un nominativo e, subito dopo si inserivano nuovi nominativi, salvava solo l'ultimo inserito), lo dava anche dopo aver eliminato un nominativo...
Come vedi il tuo "ritocco" è stato fondamentale: la stessa istruzione l'ho inserita nel codice del pulsante "Elinina...".
Grazie ancora.
PS - riallego il file poichè c'era questo piccolo intoppo.
[Modificato da elioeco 12/01/2022 09:16]
EcoBand
Post: 85
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
12/01/2022 09:23

...per chi ne farà uso...
La Rubrica Telefonica, così come è allegata, è priva di nominativi (vuota); pertanto bisogna inserire i propri. Nel campo "numero telefono" possono essere inseriti, all'occorrenza, più numeri telefonici, magari intervallati da un segno "-".
Poi, per il resto, facendo delle prove, ognuno può gestirla secondo proprie necessità.
Saluti.
Elio
EcoBand
Post: 1.176
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Veteran
Excel 2016-32bit Win11
OFFLINE
12/01/2022 11:21

Credo che c'hai ancora da lavorarci sopra.
1) Non hai tenuto conto dei miei suggerimenti del post #4, in particolare la seconda parte che ti permette di eliminare il riempimento inutile di tutte le celle della colonna A con le formule creando un file da oltre 4Mb quando invece potrebbe essere da 90Kb a crescere lentamente con l'inserimento di informazioni nuove dato che le formule verrebbero inserite solo all'occorrenza.
2) hai ancora un problema di accavallamento al momento di inserire nomi nuovi in un foglio vuoto. Togli per il tempo necessario lo fondo blu delle celle ed inizia ad inserire nomi ed osservane il comportamento. In pratica hai (c'è sempre stato) un problema con la variabile che calcola la prima riga libera e di quella che calcola la riga in cui inserire il dato nuovo. Pare di ricordare che la prima parta dall'alto a scendere mentre la seconda parte subito dalla riga 2. Il fatto crea problemi quando la prima è vuota; poi il tutto si sistema a seguito della prima esecuzione del riordino previsto dalla macro, ovvero, quello che avviene solamente la prima volta che si clicca "esci senza salvare".
[Modificato da rollis13 12/01/2022 11:24]

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 86
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
18/01/2022 18:57

errore di invio
ciao Rollis13
i tuoi consigli li ho seguiti eccome (fin dove ci sono arrivato); il problema che, a furia di fare prove, salva duplicato, risalva questo, cancella quello... alla fine ho mandato un file per un altro, dove mancava di fatto un tuo suggerimento (tra i tanti).
Qualche altra cosa, purtroppo, ho dovuto rinunciare (non sono stato in grado di capire dove dovevo agire), poichè, come sicuramente avrai notato, c'è la colonna B che è li non per caso.
In realtà il foglio, inizialmente, è stato preso da un indirizzario già esistente così composto:
colonna B= tipologia
colonna C= descrizione
colonna D= contatto telefonico
(sono reparti ospedalieri e relativi numeri telefonici).
A questo punto, per facilitare la ricerca, in un primo momento, mi sono inventato il form per ricercare il numeto tel. o il nome del reparto....(per evitare di avere fogliettini sparsi sulle scrivanie con le dovute annotazioni...).
Poi mi sono detto: a questo punto, però, potrei aggiungere altri numeri di telefono non necessariamente di reparto ma anche di "persone" e, con il vostro mega-aiuto, infine, sono riuscito (sieti riusciti) a fare una rubrica telefonica dove poter implementare, modificare, eliminare contatti già inseriti precedentemente oltre ad inserirne, modificarne o eliminarne quelli nuovi.
Allego qui di nuovo il file con solo pochi contatti preesistenti (ho cambiato descrizione e telefono, per ovvi motivi) ed ho aggiunto i contatti di:
Pinco - 1234
Pallino - 4321
per far capire meglio la differenza.
In pratica, per i nuovi contatti che andremo ad aggiungere, non mi servirà valorizzare la colonna B (infatti non ho inserito la textbox corrispondente), ma mi serve tenerla solo per i reparti già pre-inseriti, diciamo così...
Vi riallego il file, sperando che si "esprima" meglio di come ho fatto io (😀😀😀)




[Modificato da elioeco 18/01/2022 18:58]
EcoBand
Post: 1.177
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Veteran
Excel 2016-32bit Win11
OFFLINE
18/01/2022 22:12

Ok, va meglio ma ti manca l'ultimo passaggio ovvero quello di alleggerire il file visto che hai incluso l'inserimento automatico della formula in colonna A. Come ti avevo spiegato nel post #11 il file esempio che hai allegato dagli attuali 6,8MB scenderebbe a soli 115KB rendendolo un po' più snello.
Ti basta selezionare l'intera prima riga vuota fino all'ultima e poi Eliminarle e salvare subito dopo il file per rendere definitiva la dieta.
[Modificato da rollis13 18/01/2022 22:12]

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 87
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
19/01/2022 13:48

dovrebbe essere così
Spero di aver fatto bene... allego 🙏
EcoBand
Post: 1.178
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Veteran
Excel 2016-32bit Win11
OFFLINE
19/01/2022 15:20

Già dalla dimensione si capisce che ancora non va. Abbiamo detto di Eliminare tutto quello che sta dalla prima riga libera in poi, perché ci sono ancora formule in colonna A fino alla riga 7389 ? Forse mi sfugge qualcosa, non è che nel tuo file originale dal quale ricavi l'esempio allegato hai ben 7389 numeri telefonici attivi ?

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 88
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
20/01/2022 12:50

Non so se ho tralasciato qualcosa...
Ho eliminato dalla prima riga libera in giù (fino alla 65000...); ma così facendo, quando inserisco nuovi contatti e quando riordina, i contatti che sono in coda all'indirizzario non appaiono più nella ricerca... (in pratica, nella colonna A non vengono riportati i concatenamenti B+C+D corrispondenti)
Forse manca qualcosa nella sub OrdE?...
Prova anche tu

PS - No, comunque, la rubrica "originale" contiene si e no 260 contatti...
[Modificato da elioeco 20/01/2022 14:50]
EcoBand
Post: 1.179
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Veteran
Excel 2016-32bit Win11
OFFLINE
20/01/2022 15:18

Hai inserito la riga del calcolo dell'ultima riga:
UltimaRiga = Range("C1").End(xlDown).Row + 1
dopo aver già avuto necessità della variabile UltimaRiga presente nel codice che inserisce la formula dove serve (nel mio post #4 era nel posto giusto). Riscrivi questo pezzo di codice così:
'per individuare la prima riga vuota
UltimaRiga = Range("C1").End(xlDown).Row + 1 '<-spostata una riga più in su
Cells(UltimaRiga, 1).FormulaR1C1 = "=IF(RC[2]=0,"" "",CONCATENATE(RC[1],"" "",,RC[2],"" - "",RC[3]))"
Cells(UltimaRiga, 3).Value = TextBox1.Value
Cells(UltimaRiga, 4).Value = TextBox2.Value
'ordinamento dati dopo l'inserimento
[Modificato da rollis13 20/01/2022 15:19]

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 89
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
20/01/2022 16:48

🏁🏁🏁🏁🏁🏁🏁🏁🏁🏁🏁🏁🏁🏁
Adesso è perfetta!!!
Grande Rollis!!!
Allego il file.
EcoBand
Vota: 15MediaObject5,00118 1
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 06:45. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com