Excell

matematicoestinto
C'è un modo per mettere delel formule all'interno dei riferimenti di cella?

Mi spiego meglio e nel caso che interessa a me: nella cella A1 c'è il numero 4.

Io desidero che quando nella barra degli stumenti digito FA1, la cella mostri il contenuto della cella F4.

Grazie
A presto

Risposte
Cheguevilla
Temo che non sia possibile.
Prova a descrivere per intero il tuo problema.
Probabilmente esistono altre vie per ottenere lo stesso risultato.

Cheguevilla
Non vorrei sbilanciarmi troppo, ma direi che sembra proprio impossibile.
Credo sia necessario arrangiarsi per altre vie...
Se vuoi provare a postare il tuo problema, penso di poterti aiutare.

luciano791
"matematicoestinto":
C'è un modo per mettere delel formule all'interno dei riferimenti di cella?

Mi spiego meglio e nel caso che interessa a me: nella cella A1 c'è il numero 4.

Io desidero che quando nella barra degli stumenti digito FA1, la cella mostri il contenuto della cella F4.

Grazie
A presto


Copia in Foglio1 (se vuoi che funzioni solo in foglio 1) dell'editor di VBA questo codice. Così funziona in qualsiasi cella scrivi, e puoi far riferimento a qualsiasi cella vuoi.
Se per es vuoi inserire nella cella B2 il contenuto della cella CA1 basta che nella B2 scrivi fca1 (maiuscolo o min è uguale).
Funziona perchè grazie all'evento Change del Worksheet, è possibile risalire alla cella appena modificata.
Dim X As Integer
Dim Y As Integer
Dim Riga As String
Dim Colonna As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If X > 0 Then 'se non hai appena aperto il foglio then
        If VerificaFormatoCella(Trim(Cells(Y, X))) = True Then
            Cells(Y, X) = Cells(CInt(Riga), Colonna)
        End If
    End If
    Y = ActiveCell.Row
    X = ActiveCell.Column
End Sub

Function VerificaFormatoCella(ContenutoCella As String) As Boolean
    Dim i As Integer, j As Integer
    
    VerificaFormatoCella = False
    
    If ContenutoCella = "" Then
        Exit Function
    End If
    If UCase(Left(ContenutoCella, 1)) <> "F" Then
        Exit Function
    End If
    For i = 1 To Len(ContenutoCella)
        If IsNumeric(Mid(ContenutoCella, i, 1)) = True Then
            Riga = Mid(ContenutoCella, i)
            Exit For
        End If
    Next i
    If Riga = "" Then
        Exit Function
    End If
    If IsNumeric(Riga) = False Then
        Exit Function
    End If
    Colonna = UCase(Mid(ContenutoCella, 2, i - 2))
    If Asc(Colonna) < 65 Or Asc(Colonna) > 90 Then
        Exit Function
    End If
    
    'se sei qui vuol dire che in una cella hai scritto per es:
    'FA21 oppure FF1 oppure FBA25, quindi hai indicato una cella nel modo corretto
    'e vai a sostituire la "tua formula" col contenuto della cella che hai indicato
    
    VerificaFormatoCella = True
End Function

In realtà, pur essendo una cosa carina perchè personalizzata, basta scrivere nelle celle il simbolo uguale seguito dalle coordinate e ottieni lo stesso risultato (quasi lo stesso, il codice che ho fatto funziona anche per il formato cella di tipo testo, l'uguale no)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.