attivare una macro con un clic sulla cella

Anonimo
2017-01-26T19:45:30+00:00

Vorrei far partire una macro facendo clic non su un pulsante ma su una cella. Più specificamente, ho tre colonne in un foglio Excel e nella cella di testa delle tre colonne (C1, B1 e C1), c'è il titolo della colonna, ad esempio, Nome, Indirizzo, Città.

Ho la necessità che facendo Clic su NOME, le tre colonne mi vengano ordinate per nome e la scritta nome, assuma il colore rosso, così che mi resti evidenziato quale ordinamento ha la tabella. Idem per le altre colonne.

L'ho fatto con i pulsanti ma per replicare la cosa su più fogli diventa scomodo gestire il nome di tutti i pulsanti e preferisco farlo direttamente con le celle.

Grazie.

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
2017-01-26T20:29:07+00:00

Potresti pensare di sfruttare l'evento Worksheet_SelectionChange dei fogli di lavoro.

Ad es. qualcosa del genere:

'---

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

  Const sAddressNome As String = "C1"

  Const sAddressIndirizzo As String = "B1"

  Const sAddressCittà As String = "D1"

  Dim iColor1 As Long, iColor2 As Long, iColor3 As Long

  Select Case Target.Address(False, False)

    Case sAddressNome

      'Call OrdinaPerNome '<=== macro che ordina per nome

      iColor1 = vbRed

      iColor2 = vbBlack

      iColor3 = vbBlack

    Case sAddressIndirizzo

      'Call OrdinaPerIndirizzo '<=== macro che ordina per indirizzo

      iColor1 = vbBlack

      iColor2 = vbRed

      iColor3 = vbBlack

    Case sAddressCittà

      'Call OrdinaPerCittà '<=== macro che ordina per città

      iColor1 = vbBlack

      iColor2 = vbBlack

      iColor3 = vbRed

    Case Else

      iColor1 = vbBlack

      iColor2 = vbBlack

      iColor3 = vbBlack

  End Select

  With Me

    .Range(sAddressNome).Font.Color = iColor1

    .Range(sAddressIndirizzo).Font.Color = iColor2

    .Range(sAddressCittà).Font.Color = iColor3

  End With

End Sub

'----

La risposta è stata utile?

0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2017-02-01T09:25:13+00:00

    Grazie per la soluzione Casan.

    La risposta è stata utile?

    0 commenti Nessun commento