Condividi tramite

Copiare contenuto cella in un altra cella sulla stessa riga tramite selezione

Anonimo
2023-11-01T11:20:47+00:00

Ho un foglio excel contenente test a risposta multipla dove ho nella colonna A l'ordinamento (1.2.3. ecc. ecc.), nella colonna B le domande e nelle colonne C,D,E,F le risposte adesso vorrei per es. che selezionando la cella C4 il suo contenuto fosse copiato in G4 dove in H4 effettuerò il controllo dell'esattezza della selezione effettuata.

Amplio la mia richiesta sarebbe possibile qualora la risposta sia errata evidenziare quella esatta (solo dopo che la routine ha copiato la risposta scelta naturalmente)

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

Eleuterio Tedeschi 18,590 Punti di reputazione Moderatore volontario
2023-11-11T00:35:05+00:00

Carissimo Norman il tuo codice funziona egregiamente ma come fare per evitare, dopo il doppio click, di entrare in modalità "edit" nella cella selezionata scongiurando una possibile cancellazione del testo ?

Prima dell'ultimo End If aggiungi:

Cancel = True

Ciao.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2023-11-01T14:44:38+00:00

Ciao Mykia,

Se vuoi sfruttare l'evento Worksheet_BeforeDoubleClick, sostituisci il codice suggerito con la seguente versione:

'========>>

Option Explicit

'-------->>

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim Rng As Range 

Const sColonne\_Risposte As String = **"C:F"                             '<<=== Modifica** 

Const sColonna\_Destinazione As String = **"H"                        '<<=== Modifica** 

Set Rng = Intersect(Me.Range(sColonne\_Risposte), Target) 

If Not Rng Is Nothing Then 

    With Rng 

        .Copy Destination:=Intersect(Me.Columns(sColonna\_Destinazione), .EntireRow) 

    End With 

End If 

End Sub

'<<========

Potresti scaricare il mio file di prova aggiornato Mykia20231101.xlsm

===

Regards,

Norman

Immagine

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni

  2. Anonimo
    2023-11-01T13:44:12+00:00

    Grazie per l'aiuto ma non so perchè ma incollando il solo codice postato non funziona mentre se metto i miei dati nel tuo file di esempio va ma a questo punto come posso decidere la colonna dove va a copiare la selezione? per esempio H, I oppure L nel mio è già presente una macro che mischia sulla stessa riga le varie risposte (è stato necessario perchè parto da un test dove le risposte esatte sono sulla medesima colonna).

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2023-11-01T11:42:02+00:00

    Ciao Mykia,

    Ho un foglio excel contenente test a risposta multipla dove ho nella colonna A l'ordinamento (1.2.3. ecc. ecc.), nella colonna B le domande e nelle colonne C,D,E,F le risposte adesso vorrei per es. che selezionando la cella C4 il suo contenuto fosse copiato in G4 dove in H4 effettuerò il controllo dell'esattezza della selezione effettuata

    Prova qualcosa del genere:

    • Fai clic dx sulla linguetta del foglio di interesse
    • Seleziona l'opzione Visualizza Codice dal **** menu contestuale risultante
    • Incolla il seguente codice:

     '========>>

    Option Explicit

    '-------->>

    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

    Dim Rng As Range 
    
    Const sColonne As String = **"C:F"** 
    
    Set Rng = Intersect(Me.Range(sColonne), Target) 
    
    If Not Rng Is Nothing Then 
    
        With Rng 
    
            .Copy Destination:=Intersect(Me.Columns("G"), .EntireRow) 
    
        End With 
    
    End If 
    

    End Sub

    '<<========

    • Alt+Q per chiudere l'editor di VBA e tornare a Excel.
    • Salva il file con l'estensione xlsm

    In questo modo, cliccando con il tasto destro sulla risposta selezionata, la risposta viene automaticamente copiata nella cella della colonna G della stessa riga.

    Puoi scaricare il mio file di prova Mykia20231101.xlsm

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento