Ciao
te li importa due volte per via del ciclo For fg = 1 To 2.
La prima volta si trova fg=1 e importa i dati da ELEDIP, la seconda volta, con fg=2, avendo commentato l'istruzione if fg=2 then...., prosegue la macro.
Ora devi chiarire se il ciclo deve essere fatto per entrambi i file esterni oppure no. Se lo devi fare per entrambi va bene così, ma se lo devi fare per uno solo dei file esterni, che bisogno hai di fare il ciclo?
Per quanto riguarda MARE, COLLINA, se è esattamente come hai detto, potresti cercare la parole all'interno della cella da importare e, se trovata scrivere solo quella:
....
If InStr(cella.Offset(0, 15).Value, "MARE") > 0 Then 'Stabilimento
.Offset(0, 5).Value = "MARE"
Else
.Offset(0, 5).Value = "COLLINA"
End If
......
saluti
Domenico
Win 10 - Excel 2016