#RIF! - problemino spostando il contenuto di una cella

Anonimo
2010-05-03T13:22:27+00:00

buonpomeriggio.

in C1 ho una banalissima concatenazione di celle: A1 & B1

se sposto il contenuto di una delle due celle referenziate (A1 o B1) o se faccio taglia A1 e incolla in B1, nella cella C1 otterrò l'errore in oggetto.

mi suggerite un runaround ?

l'obiettivo è quello di avere sempre nella cella C1 la concatenazione di A1 e B1, indipendentemente dal loro contenuto o dalle azioni che vengono compiute su A1 o B1.

però non vorrei usare la funzione INDIRETTO...

:-)

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2010-05-04T08:27:26+00:00

Per applicare la stessa azione a tutte le celle della colonna "C" non puoi lavorare in quel modo... Devi eseguire le singole operazioni per ciascuna cella.

Questo è un esempio di codice per eseguire l'operazione sul range da C1:C1000:

Sub concatena2()  Dim oFoglio As Worksheet  Dim i As Long     'imposta il foglio su cui eseguire l'operazione.  Set oFoglio = ActiveSheet      'effettua un loop sulle celle da C1 a C1000.  With oFoglio    For i = 1 To 1000      .Range("C" & i) = .Range("A" & i) & .Range("B" & i)    Next i  End With      'Pulizia variabili oggetto.  Set oFoglio = NothingEnd Sub

Basta quindi cambiare il range indicato all'inizio del loop (For i = 1 to 1000) per farlo lavorare su un range più esteso, oppure ci sono infiniti modi per usare un intervallo dinamico ma serve avere requisiti più specifici.

Ciao

Roberto


Roberto Restelli

Microsoft MVP - Office Systems - Outlook

************************************************

Le FAQ del newsgroup di Outlook: http://www.msoutlook.it

************************************************

Se la risposta ti ha aiutato clicca su "Vota come Utile".

Se ha risolto il problema clicca su "Segna come Risposta".

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2010-05-03T15:17:34+00:00

Mi sembra ovvio che se tagli e sovrapponi una delle due celle che fanno parte della formula poi hai l'errore ri riferimento; se fai la prova ad incollare in un'altra qualsiasi cella vedrai che non si verifica, oppure dovresti fare più semplicemente un copia e incolla e poi cancelli il valore copiato; non ho capito il discorso di INDIRETTO(), forse mi sfugge cosa realmente vuoi fare.

Comunque per ovviare al problema utilizza VB, associa ad un pulsante la seguente macro:

Sub Concatena()

Range("C1") = Range("A1") & Range("B1")

End Sub

oppure metti la in esecuzione sotto l'evento "Change" del foglio/cella.

Ciao

Antonio

La risposta è stata utile?

0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-05-04T07:19:55+00:00

    Sub Concatena()

    Range("C1") = Range("A1") & Range("B1")

    End Sub

    fatto, grazie.

    vorrei modificare il range riferendomi a tutta la colonna, puoi dirmi come si fa ?

    Ho già visto che questo non piace al parser vbscript:

    Range("C:C") = Range("A:A") & Range("B:B")

    :-)

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-05-04T07:07:26+00:00

    Più che di workaround qui bisognerebbe capire quale uso ne vorresti fare... Senza sapere altri dettagli direi che l'unico modo per impedire che le celle vengano spostate è di proteggere il foglio di lavoro.

    Grazie Roberto.

    L'obiettivo è quello di eseguire una concatenazione slegata dai riferimenti di cella.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-05-03T15:38:57+00:00

    in C1 ho una banalissima concatenazione di celle: A1 & B1

    se sposto il contenuto di una delle due celle referenziate (A1 o B1) o se faccio taglia A1 e incolla in B1, nella cella C1 otterrò l'errore in oggetto.

    Vero solo in parte!

    Se sposti la cella A1 oppure la cella B1, per esempio tramite Drag&Drop oppure Taglia&Incolla, la formula in C1 viene modificata di conseguenza per tracciare la nuova posizione della cella, e non avrai errori.

    Diverso è il caso in cui sovrapponi le due celle (A1 in B1 o viceversa) perchè così facendo distruggi uno dei due riferimenti. Ed in questo caso specifico il risultato in C1 è effettivamente #RIF!

    Più che di workaround qui bisognerebbe capire quale uso ne vorresti fare... Senza sapere altri dettagli direi che l'unico modo per impedire che le celle vengano spostate è di proteggere il foglio di lavoro.

    Ciao

    Roberto


    Roberto Restelli

    Microsoft MVP - Office Systems - Outlook

    ************************************************

    Le FAQ del newsgroup di Outlook: http://www.msoutlook.it

    ************************************************

    Se la risposta ti ha aiutato clicca su "Vota come Utile".

    Se ha risolto il problema clicca su "Segna come Risposta".

    La risposta è stata utile?

    0 commenti Nessun commento