Buongiorno, ho sfogliato vari thread nel forum ma non ho ancora trovato uan soluzione "adattabile" al mio caso, spero di non violare le regole del forum.
Premetto che non ho competenze professionali in termini di vba, tutto cio' che arrivo a fare é dato dall'utilizzo del registratore e dei thread.
Dunque, la situazione é questa:
Ho un file "Città", che riporta varie colonne, e supponiamo che "colonna A" sia la colonna su cui voglio lavorare; in questa colonna vengono riportate i nomi delle stazioni di partenza dei viaggiatori, dell'aeroporto etc (milano centrale, malpensa, roma termini, ciampino).
Quello che dovrei fare é sostituire stazioni, aeroporti etc della stessa città con il nome della città, ad esempio
Milano Malpensa = Milano
Milano Centrale = Milano
Non posso fare un cerca e sostituisci poiché si tratta di troppi casi differenti, quindi avevo pensato di creare un file "Codifica" a parte ove codificare tutte le varie origini possibili con la città di riferimento, dunque due colonne, la prima l'origine, la seconda colonna la città (dunque milano per esempio).
Fatto questo file pensavo di avviare una macro che, per ogni valore nel file "Città" nella colonna A, controlli nel file "Codifica" colonna A ove si posiziona e, trovata la riga, copi il valore della colonna B (dunque il nome della città ricodificato) nel file "Città", l'obiettivo é ovviamente quello di "pulire" i dati e renderli analizzabili.
Ho provato una macro, che vi copio di seguito, ove dovevo inserire manualmente i "casi", il problema é che non funzionava con il file in questione, mentre funzionava benissimo con un file da me creato a mano.
ecco la macro
Sub FindChange()
Dim cella As Range
For Each cella In Range("BP1:BP3000")
Dim strCella As String
strCella = cella.Text
Dim parole() As String
parole() = Split(strCella)
Dim nuovaStr As String
nuovaStr = ""
For I = 0 To UBound(parole)
Select Case parole(I)
Case "Tours"
parole(I) = "Tours"
Case "GARE DU NORD PARIS"
parole(I) = "PARIS"
Case "LILLE EUROPE"
parole(I) = "lille"
'Case ...
End Select
nuovaStr = nuovaStr & parole(I) & " "
Next
cella.FormulaR1C1 = nuovaStr
Next
End Sub