Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Visualizzare la cella selezionata nel foglio attivo in alto a sinistra.

123 views
Skip to first unread message

Alberto

unread,
Jan 21, 2012, 5:27:15 AM1/21/12
to aam...@iccrea.bcc.it
Buongiorno a tutti,
se tramite VBA, seleziono una cella, in linea di massima, mi viene
mostrata al centro della videata.
Vorrei invece che la cella selezionata venisse visualizzata nel foglio
attivo, in alto a sinistra.
ActiveWindow.VisibleRange.Address è di sola lettura e quindi non
impostabile !!!

Ho scritto il seguente codice per visualizzare ad esempio la cella Q70
ma ci sono dei limiti (tempi di esecuzione e necessità di impostare un
giusto numero di righe).
Quindi ... funziona ma è poco utilizzabile, soprattutto se la cella
che si vuole visualizzare è molto in basso (non oltre riga 100
nell'esempio) e molto a destra come colonne.

Sapreste indicarmi un codice migliore?

Grazie, Alberto (Excel 2003 e Win 7)



Sub Macro()
[A1].Select
Do
ActiveWindow.SmallScroll Down:=1
r = r + 1
If r = 100 Then
ActiveCell.Select
ActiveWindow.SmallScroll ToRight:=1
ActiveCell.Offset(, 1).Select
r = 0
c = c + 1
End If
Loop Until Left(ActiveWindow.VisibleRange.Address, 5) = "$Q$70"
End Sub

plinius

unread,
Jan 21, 2012, 9:28:53 AM1/21/12
to

"Alberto" <alberto...@tin.it> ha scritto nel messaggio
news:89558956-2751-47a6...@dp8g2000vbb.googlegroups.com...
****************************

Sub s()
Dim c As Range
Set c = [Q70]
c.Select
ActiveWindow.ScrollColumn = c.Column
ActiveWindow.ScrollRow = c.Row
End Sub

Ciao,
E.


Alberto

unread,
Jan 21, 2012, 9:56:44 AM1/21/12
to
Perfettamente funzionante!

Ciao e grazie.
Alberto

eliano

unread,
Jan 21, 2012, 4:25:41 PM1/21/12
to
Ciao Alberto.

Oltre alle indicazioni di Plinius (che funzionano sempre), prova
anche:

Public Sub prova()
'Commenta/decommenta le istruzioni in base alle necessita'

'Allinea il foglio su una cella qualsiasi
Dim vai As Variant
vai = Range("Q70").Address '<---- Variare
Application.Goto Reference:=Range(vai), scroll:=True

'Allinea il foglio sulla cella attiva
'Application.Goto Reference:=ActiveCell, scroll:=True

End Sub

Saluti
Eliano

Alberto

unread,
Jan 21, 2012, 6:48:43 PM1/21/12
to
Grazie Eliano per l'ulteriore suggerimento.
Ciao, Alberto

eliano

unread,
Jan 21, 2012, 7:51:27 PM1/21/12
to
On 22 Gen, 00:48, Alberto <alberto.amo...@tin.it> wrote:
> Grazie Eliano per l'ulteriore suggerimento.
> Ciao, Alberto

Grazie del riscontro.
Nel caso ti piacesse demandare l'esecuzione ad un evento, ad esempio
un doppioclic sx del mouse, copia questa macro nel modulo del foglio
interessato, ad esempio "Foglio1".

Private Sub Worksheet_BeforeDoubleClick( _
ByVal Target As Range, Cancel As Boolean)
Cancel = True
Application.Goto Reference:=Target, _
scroll:=True
End Sub

Eliano
0 new messages