› Sviluppare funzionalita su Microsoft Office con VBA › cercare un indirizzo
-
AutoreArticoli
-
Buongiorno ho un'ulteriore quesito. Ho un foglio "toponomastica" con una colonna dove c'è il quartiere (es prati) e una colonna dove c'è la via (es via Roma) in un altro foglio "pazienti" un indirizzo via Roma 5 sc b int 1, ovviamente il cerca.vert non funziona neanche con l'opzione jolly. Vorrei che alla colonna vicino indirizzo nel foglio pazienti ci compaia il quartiere. Es via roma 5 sc b int 1 ----- prati. Vi ringrazio sempre per il gradevole aiuto.
Ciao #giulioc
Se ho capito bene, vorresti che su ogni riga nella colonna che contiene l'indirizzo, venisse aggiunto anche il quartiere (se presente)?
E' un po' complesso, non a livello di istruzioni, ma a livello di normalizzazione dei dati!
Puoi allegare un file con i due fogli?
Ciao
Paolo
Ecco l'esempio grazie per l'aiuto.
Allegati:
You must be logged in to view attached files.Ciao #giulioc
Come sei messo su VBA?
In questo caso devi fare una prima scansione sul foglio "pazienti" e per ogni riga cercare sul foglio "toponomastica" la corrispondenza del quartiere alla via.
Rimane comunque il problema legato alla normalizzazione dei dati (indirizzo del paziente) in quanto dove mi fermo con la ricerca?
Ciao
Paolo
Ciao #giulioc
Direi che con le formule è molto difficile (o quanto meno io non ne sarei davvero in grado)
Temo che sia necessaria una macro VBA con due cicli di scansione annidati priam del foglio pazienti ed all'interno del foglio toponomastica
Per quanto mi riguarda, come già detto più volte, "pappa fatta" --> FINITA
Se ritieni di poter fare una donazione al sito (che verò devoluta in beneficenza, ben volentieri), altrimenti nessun problema, ma mi fermo qui
Buona giornata
Paolo
#giulioc
A parte che non è una donazione a me o ad altri utenti, ma verrà girata a qualche ente benefico (ricerca o aiuto), non è un dramma come macro da fare...
Vedi tu...
Un euro o due
Paolo
Sono da separare le informazioni di scala e interno, quindi lasciando solo la via; allora una formula come quella sotto andrà bene, senza scomodare VBA:
=INDICE(TOPONOMASTICA!$A$2:$B$1000;CONFRONTA(F2&"*";TOPONOMASTICA!$A$2:$A$1000;0);2)#vecchio frac
A questo punto mi astengo dal dare soluzioni se tanto pensare di poter mandare 5/10 € al mese al'AIRC o simili ti fa schifo...
Peccato!
Paolo
Di quanto la donazione
Non sono richieste donazioni per avere risposte. Si tratta di atti liberali e volontari.
Per quanto mi riguarda, come già detto più volte, "pappa fatta" --> FINITA
PMC77 naturalmente parla a titolo personale.
A questo punto mi astengo dal dare soluzioni
Ti invito a rileggere il nostro regolamento.
#vecchio frac
Ti sbagli! Un forum nasce per aiutare, ma non per fare da piccola software house gratuita!
Se un utente posta una sua Sub che non funziona e non riesce a trovare l'errore, ben volentieri!
Ma un utente che dice che non sa usare VBA e vuole ottenre una soluzione credo che sia davvero un altra situazione!
Come già spiegato non sono donazioni che arrivano a me o ad altri iscritti!
Vanno ad Enti di ricerca o benefici!
Dopo di che ognuno fa cosa vuole!
Questo NON è un Forum di raccolta fondi, né un ente di sostegno che fa beneficenza.
E non si parla solo di VBA. L'utente ha il diritto di non conoscere VBA o di non saperlo usare bene, e comunque può chiedere assistenza. Poi certo, bisogna saper dare la giusta assistenza valutando nel complesso l'atteggiamento dell'utente.Ma non significa condizionare l'intervento a una raccolta fondi di cui questo Forum non è promotore nè interessato.
Ti invito a spostarti in Area riservata se vuoi continuare questa discussione su un argomento di cui abbiamo peraltro già parlato.
Per quanto riguarda questa discussione, adesso siamo ampiamente OT e non ammetto ulteriori repliche su questo argomento, in questo thread.Scusatemi non volevo creare un guazzabuglio. Purtroppo la formula mi da n/d su confronta. Non voglio creare polemiche ma io faccio donazioni puntuali a Amnesty international e comunità di s. egidio e quando ci sono le giornate anche ad AIRC via sms. Scusatemi! Vi ringrazio sempre della vostra attenzione e sollecitudine.
Giulio, il capitolo donazioni è chiuso. Non sono richieste e rimangono un atto di pura liberalità. Non devi giustificarti con nessuno su questo, ci mancherebbe.
Nel merito come ho detto il confronto viene effettuato sul testo del foglio toponomastica così come è scritto, perciò devi separare in colonne diverse il civico, l'interno e la scala se vuoi che la ricerca della via / piazza venga fatta correttamente.
Allego il file da me rivisto per farti capire meglio.
Allegati:
You must be logged in to view attached files.@giuloc
Sennò ti scrivi una macro in VBA che fa il confronto al contrario (ovvero la colonna del foglio toponomastica con i primi x caratteri a sinistra dell'indirizzo - in cui x è la lunghezza del contenuto della colonna del foglio toponomastica)
Capisci perché ritengo che la formula sia complicata e limitativa?
Paolo
PS= a scanso di equivoci ti allego il file con la macro funzionante, ma ribadisco il mio punto di vista: il forum serve per aiutare, non per scrivere codice in conto terzi!
Allegati:
You must be logged in to view attached files.inserisci il codice che ti posto in un modulo VBA, naturalmente il codice deve essere ampliato e adattarlo alle tue esigenze.
Option Explicit Sub m() Dim strada As String, sToken As String, sret As String Dim j As Integer Dim cerca As Object strada = Sheets("pazienti").Range("f3") For j = 1 To Len(strada) sToken = Mid(strada, j, 1) If Not IsNumeric(sToken) Then sret = sret & sToken Else GoTo vai End If Next vai: Set cerca = Sheets("TOPONOMASTICA").Range("A2:A615").Find(Trim(sret)) If cerca Is Nothing Then MsgBox "non esiste" Else MsgBox cerca.Address Sheets("pazienti").Range("f2").Offset(0, 1) = cerca.Offset(0, 1) End If End SubQual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )in VBA, si potrebbe utilizzare il metodo .Find applicato a un range magari col parametro LookAt:=xlPart.
Veloce ed efficace senza smanettare con le stringhe 🙂
Albatros quel Goto è un pugno in un occhio 😀
la macro che suggerisci tu da un messaggio per ogni riga del foglio pazienti (tu l'hai impostata sula riga 3), ma temo che il numero pazienti sia ben più elevato!
Prova a dare uno sguardo alla macro che propongo io (che gira su tutto il foglio e carica direttamente il quartiere)
Ciao
Paolo
Albatros quel Goto è un pugno in un occhio
lo so!!!
Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )la macro che suggerisci tu da un messaggio per ogni riga del foglio pazienti (tu l'hai impostata sula riga 3), ma temo che il numero pazienti sia ben più elevato!
albatros ha scritto:
naturalmente il codice deve essere ampliato e adattarlo alle tue esigenze.Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )Qui ricadiamo nel solito problema!
@giulioc ha detto "Non sto messo bene con vba un po' meglio con le formule"
Di conseguenza come pensi che possa inserire la tua soluzione in un ciclo di scansione del foglio e non mettere il messaggio, ma caricare direttamente il valore del quartiere nella cella che gli interessa?
Paolo
-
AutoreArticoli
