Il mio suggerimento e' che separi le celle di input dalle celle calcolate in modo da avere la piena tracciabilita' dei tuoi risultati.
Dallo scarno esempio (1 riga di dati) mi pare che vorresti una colonna che contenga il contenuto di colonna A (se I:L risulta vuoto) oppure il contenuto della prima cella occupata in I:L; potresti ottenere questo usando es in B2 questa formula
- Codice: Seleziona tutto
=SE(I2<>"";I2;SE(J2<>"";J2;SE(K2<>"";K2;SE(L2<>"";L2;A2))))
In questa soluzione la colonna C non sara' piu' necessaria; se (lavorando col file che hai pubblicato) prima inserisci la formula in B2 e poi elimini la colonna C la formula si "aggiusta" automaticamente.
Se vuoi farlo via macro con sostituzione eventuale del contenuto di colonna A in funzione del contenuto di I:L (cosa che io sconsiglio perche' alla fine non sai quali erano i dati di partenza), allora puoi usare questa macro:
- Codice: Seleziona tutto
Sub sconfondi()
Dim Contr As String, I As Long, rContr As Range, myC As Range
Contr = "I:L" '<<< Le colonne in cui guardare
'
Set rContr = Application.Intersect(Range(Contr), Range("1:1"))
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
' If Application.WorksheetFunction.CountA(rContr.Offset(I - 1, 0)) > 0 Then
For Each myC In rContr.Offset(I - 1, 0)
If myC.Value <> "" Then
Cells(I, 1) = myC.Value
Exit For
End If
Next myC
' End If
Next I
End Sub
Ciao