Problema con stringhe



  • Problema con stringhe
    di Edoardo (utente non iscritto) data: 01/12/2014 17:11:45

    Buona sera a tutti,
    avrei bisogno di una mano su un progetto che sto portando a termine. In breve
    Sul Foglio1 ho un elenco di indirizzi.
    Sul Foglio2 ho l'elenco dei comuni italiani, in totale 8103

    Il problema è che la funzione che utilizzo io non trova il comune esatto all'interno della stringa ma anche quello che si avvicina.

    Per esempio se devo estrarre dall'indirizzo: VIA MARIO ROSSI 1 - RO
    Il risultato sarebbe CATANZARO visto che in ordine alfabetico viene prima

    Come posso risolvere?
     
    Sub comuni()
    Dim data, i
    Dim indirizzo1, comune, controllo
    r = 1
    indirizzo1 = Foglio2.Cells(r, 8)
    
    
    For i = 1 To 8103
    comune = Foglio1.Cells(i, 1)
    controllo = InStr(indirizzo1, comune) > 0
    
    If controllo <> 0 Then
    Foglio2.Cells(r, 8) = comune
    End If
    Next
    
    End Sub



  • di lepat (utente non iscritto) data: 01/12/2014 17:20:30

    non capisco bene il significato di controllo = InStr(indirizzo1, comune) > 0
    occorrerebbe il file per capire bene, ma prova
     
    Sub comuni()
    Dim data, i
    Dim indirizzo1, comune, controllo
    r = 1
    indirizzo1 = Foglio2.Cells(r, 8)
    For i = 1 To 8103
      comune = Foglio1.Cells(i, 1)
      if InStr(indirizzo1, comune) > 0 Then  Foglio2.Cells(r, 8) = comune
    Next
    End Sub



  • di Zer0Kelvin data: 01/12/2014 22:50:58

    Salve a tutti.
    D'accordo con patel che la variabile controllo è superflua, ma non mi è chiaro invece cosa intendi con
    " non trova il comune esatto all'interno della stringa ma anche quello che si avvicina"
    con tutto quello che segue.
    L'esempio citato non è affatto comprensibile.

    Come già scritto da Patel, un file di esempio sarebbe fortemente consigliato per interpretare correttamente la situazione.

    Poi, per evitare che ogni volta vengono eseguiti tutti gli 8103 cicli, bisognerebbe prevedere l'uscita dal ciclo una volta che il valore desiderato viene trovato.



  • di Edoardo (utente non iscritto) data: 03/12/2014 13:46:44

    Chiedo scusa per la mancata trasparenza nella mia necessità.

    Quello che a me serve è sapere come fare ad estrarre il comune in un indirizzo.

    Come dicevo:
    nel Foglio A ho un elenco di indirizzi
    nel Foglio B ho l'elenco di tutti i comuni presenti in italia.
    Per esempio se come indirizzo mi ritrovo V. S. GENNARO 1 - 80078 POZZUOLI, NAPOLI e dovrei estrarre l'indirizzo con InStr(indirizzo1, comune) >0 mi trova POZZUOLI.
    Ma se l'elenco dei comuni non fosse in ordine alfabetico.....mi troverebbe il Comune di RO. Visto che nella parola GENNARO è presente parte del comune di RO.

    A me servirebbe che la parola all'interno dell'indirizzo corrisponda esattamente al comune.



  • di lepat (utente non iscritto) data: 03/12/2014 16:54:49

    vuoi risolvere ? ALLEGA un piccolo file di esempio con i dati ed anche il risultato desiderato