Condividi tramite

Dal click di un pulsante spostarsi alla cella successiva della stessa colonna.

Anonimo
2017-05-15T15:30:11+00:00

Ciao,

qual'è il codice VBA da inserire nella proprietà di un pulsante in modo che ad ogni suo click il focus si sposti di volta in volta nella sottostante cella della stessa colonna?

Esempio:

Focus su cella A1

Primo Click: Range("A2").Select

Secondo Click: Range("A3").Select

ecc...

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

  1. Anonimo
    2017-05-15T19:04:58+00:00

    ciao Vladimiro,

    prova ad assegnare al pulsante questa macro :

    Sub nextCell()

    ActiveCell.Offset(1).Select

    End Sub

    Ciao, Sandro.

    La risposta è stata utile?

    2 persone hanno trovato utile questa risposta.
    0 commenti Nessun commento

15 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2017-05-16T17:48:00+00:00

    ciao Vladimiro,

    [...]

    Grande Sandro.

    Che piacere incontrarti anche qui! :-)

    [...]

    heilà...! addirittura...! piacere reciproco :-)

    [...]

    Giusto una cosa.

    Se volessi impostare il focus in una determinata cella prima del suo spostamento sempre dallo stesso pulsante, si può fare?

    [...]

    eh lo so, noi ragioniamo con campi, controlli, predicati sql...qui credo si parli di selezione di celle, il focus rappresenta un concetto che forse su Excel non è riproducibile, ma ci siamo capiti :-)

    penso comunque che si possa fare, se ho colto la domanda prova ad esempio come segue :

    Option Explicit

    Private lngCol          As Long

    Private Const strRange  As String = "h1" ' personalizza la cella

    Sub nextCell()

    Dim wbk  As Excel.Workbook

    Dim wsh  As Excel.Worksheet

    Dim rng  As Excel.Range

    Dim rngA As Excel.Range

    Set wbk = ThisWorkbook

    Set wsh = wbk.Worksheets("foglio1")

    Set rng = wsh.Range(strRange)

    Set rngA = Application.ActiveCell

    lngCol = rng.Column

    wsh.Range(strRange).Activate

    ' al posto dell'attivazione della cella

    ' prova a selezionare l'intera colonna con :

    ' wsh.Range(strRange).EntireColumn.Select

    ' commentando l'istruzione: wsh.Range(strRange).Activate

    If rngA.Column = lngCol Then

        rngA.Offset(1).Activate

    End If

    Set rng = Nothing

    Set rngA = Nothing

    Set wsh = Nothing

    Set wbk = Nothing

    End Sub

    [...]

    Grazie comunque.

    Vladimiro

    prego, e sempre HTH.

    Ciao!

    Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-05-15T20:01:06+00:00

    Ciao Norman e grazie per la disponibilità dimostrata.

    Il problema l'ho pienamente risolto con la risposta di Sandro avendo centrato in pieno la mia richiesta.

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-05-15T19:57:51+00:00

    ciao Vladimiro,

    prova ad assegnare al pulsante questa macro :

    Sub nextCell()

    ActiveCell.Offset(1).Select

    End Sub

    Ciao, Sandro.

    Grande Sandro.

    Che piacere incontrarti anche qui! :-)

    Giusto una cosa.

    Se volessi impostare il focus in una determinata cella prima del suo spostamento sempre dallo stesso pulsante, si può fare?

    Grazie comunque.

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2017-05-15T19:13:25+00:00

    Ciao Vladimiro,

    Ciao,

    qual'è il codice VBA da inserire nella proprietà di un pulsante in modo che ad ogni suo click il focus si sposti di volta in volta nella sottostante cella della stessa colonna?

    Esempio:

    Focus su cella A1

    Primo Click: Range("A2").Select

    Secondo Click: Range("A3").Select

    Non sono sicuro di aver capito pienamente la tua esigenza in quanto pare che si possa ottenere una funzionalità equivalente con i tasti di direzione della tastiera.

    Tuttavia, come punto di partenza, prova ad assegnare la seguente macro al tuo pulsante:

    '=========>>

    Option Explicit

    '--------->>

    Public Sub Tester()

        Dim vVar As Variant

        vVar = Application.Caller

        With ActiveCell

            .Offset(1).Select

            If TypeName(vVar) = "String" Then

                ActiveSheet.Buttons(vVar).Top = .Offset(1).Top

            End If

        End With

    End Sub

    '<<========= 

    Potresti scaricare il mio file di prova Vladimiro20170515.xlsm

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento