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

Altezza e Larghezza Commenti

613 views
Skip to first unread message

Paolo B

unread,
Jul 25, 2004, 9:30:46 AM7/25/04
to
In un particolare file Excel ho la necessità di avere dei "commenti" che
abbiano dimensioni maggiori rispetto a quelle di default-standard, pertanto
ho bisogno di una macro.
Infatti, quando ho inserito un commento (inserisci commento) e poi passo
sopra con il cursore sul triangolino rosso, vorrei che le dimensioni del
commento fossero molto grandi (all'incirca più della metà dello schermo).

Volevo avere quindi una macro che mi "aumentasse" le dimensioni del
commento, in particolare mi interessa quando il commento lo visualizzo
passando sopra il triangolino rosso. Se fosse possibile, poi, vorrei che in
fase di visualizzazione il commento fosse visibile completamente e non, come
succede quando la cella è vicina al bordo in alto o in basso, che una parte
del commento sparisce al di sopra o al di sotto del bordo e quindi non è
visibile.

Preciso che NON desidero aumentare "manualmente" ogni singolo commento con
Formato commento > Dimensioni > Altezza e Larghezza oppure trascinando con
il cursore il bordo del commento.
Preciso inoltre che NON voglio cambiare le "opzioni generali dei commenti"
su tutti i tooltip di tutti i programmi e cioè non voglio andare a
modificare da "pannello di controllo" perché queste modifiche alle
dimensioni standard varrebbero per TUTTE le applicazioni di Office mentre
invece questa esigenza di avere maggior dimensioni è limitata esclusivamente
e solo a questo file Excel e non ad altri o ad altre applicazioni di Office.

Grazie di tutto
Paolo
P.S. credo che l'unica soluzione sia la macro, ma se ne esistono altre le
seguirò volentieri, sono sempre pronto ad imparare ;-))


saoche

unread,
Jul 25, 2004, 10:40:14 AM7/25/04
to
Nella news:O4FfOvkc...@TK2MSFTNGP10.phx.gbl del 25 lug 2004
*Paolo B* ha scritto:

> In un particolare file Excel ho la necessità di avere dei
> "commenti" che abbiano dimensioni maggiori rispetto a quelle di
> default-standard, pertanto ho bisogno di una macro.

[...]

Penso che qui troverai ciò che fa al caso tuo.

http://www.contextures.com/xlcomments03.html#Resize

Ciao

--
...saoche[at]despammed[dot]com...

Paolo B

unread,
Jul 25, 2004, 11:48:24 AM7/25/04
to
> > In un particolare file Excel ho la necessità di avere dei
> > "commenti" che abbiano dimensioni maggiori rispetto a quelle di
> > default-standard, pertanto ho bisogno di una macro.
> [...]
>
> Penso che qui troverai ciò che fa al caso tuo.
>
> http://www.contextures.com/xlcomments03.html#Resize


Ciao Saoche,

ho inserito questa macro dal link che mi hai indicato, e funziona anche se
ho due piccoli problemi:
1) non riesco ad aumentare l'Altezza e la Lunghezza (ho ad esempio cambiato
If .Shape.Width > 300 Then prima da "300" a "30" e poi a "3000" ma non si
ingrandisce) cosa devo cambiare per avere una dimensione del commento pari a
circa metà schermo?
2) come posso mantenere sempre in esecuzione la macro, perchè se io la
inserisco in visualizza codice, poi sono costretto "manualmente" ad andare
in Strumento > Macro > Esegui

Paolo

Sub Comments_AutoSize()
'posted by Dana DeLouis 2000-09-16
Dim MyComments As Comment
Dim lArea As Long
For Each MyComments In ActiveSheet.Comments
With MyComments
.Shape.TextFrame.AutoSize = True
If .Shape.Width > 300 Then
lArea = .Shape.Width * .Shape.Height
.Shape.Width = 200
' An adjustment factor of 1.1 seems to work ok.
.Shape.Height = (lArea / 200) * 1.1
End If
End With
Next ' comment
End Sub


saoche

unread,
Jul 25, 2004, 1:05:46 PM7/25/04
to
Nella news:eFSXI8lc...@tk2msftngp13.phx.gbl del 25 lug 2004
*Paolo B* ha scritto:

[...]


> ho inserito questa macro dal link che mi hai indicato, e funziona
> anche se ho due piccoli problemi:
> 1) non riesco ad aumentare l'Altezza e la Lunghezza (ho ad esempio
> cambiato If .Shape.Width > 300 Then prima da "300" a "30" e poi a
> "3000" ma non si ingrandisce) cosa devo cambiare per avere una
> dimensione del commento pari a circa metà schermo?

La macro Comments_AutoSize allinea il testo e ridimensiona il commento
se la sua larghezza è maggiore di un certo valore prefissato.
Per fare ciò che vuoi tu bisogna apportare qualche variazione.

Sub Commenti_Ridimensiona()
Dim MyComments As Comment


For Each MyComments In ActiveSheet.Comments

MyComments.Shape.Width = 400
MyComments.Shape.Height = 300
Next
End Sub

> 2) come posso mantenere sempre in esecuzione la macro, perchè se
> io la inserisco in visualizza codice, poi sono costretto
> "manualmente" ad andare in Strumento > Macro > Esegui

[...]

Non devi tenere sempre in esecuzione la macro, la devi lanciare dopo
aver inserito tutti i commenti o comunque dopo averne aggiunto
qualcuno.
Facci sapere.

Paolo B

unread,
Jul 25, 2004, 1:25:06 PM7/25/04
to
Ciao Saoche,

quando mi parli di "variazione"
> Per fare ciň che vuoi tu bisogna apportare qualche variazione.

se capisco bene, copio SOLO la macro che mi hai scritto e basta, lasciando
perdere quella che avevo inserito in precedenza dal link che mi avevi
indicato, vero?

Sub Commenti_Ridimensiona()
Dim MyComments As Comment
For Each MyComments In ActiveSheet.Comments
MyComments.Shape.Width = 400
MyComments.Shape.Height = 300
Next
End Sub

> > 2) come posso mantenere sempre in esecuzione la macro, perchč se


> > io la inserisco in visualizza codice, poi sono costretto
> > "manualmente" ad andare in Strumento > Macro > Esegui
> [...]
>
> Non devi tenere sempre in esecuzione la macro, la devi lanciare dopo
> aver inserito tutti i commenti o comunque dopo averne aggiunto
> qualcuno.

Ma "non devo" o "non posso" tenere sempre in esecuzione la macro? Ti
chiedevo questo perchč sarebbe molto piů comodo averla sempre in esecuzione,
anche se non so se potrei avere degli inconvenienti.

grazie
PaoloB
P.S. dopo il tuo post nel mio thread "Elenco completo colori" del 22/7/04 si
č scoperto che i colori anche nel formato > cella > personalizzato sono 56!!

saoche

unread,
Jul 25, 2004, 1:48:02 PM7/25/04
to
Nella news:OSEwKymc...@TK2MSFTNGP10.phx.gbl del 25 lug 2004
*Paolo B* ha scritto:

[...]


> se capisco bene, copio SOLO la macro che mi hai scritto e basta,
> lasciando perdere quella che avevo inserito in precedenza dal link
> che mi avevi indicato, vero?

Si, hai capito bene.

> Ma "non devo" o "non posso" tenere sempre in esecuzione la macro?

Quando una macro è in esecuzione il foglio di calcolo non è
attivo, quindi non puoi.

> Ti chiedevo questo perchè sarebbe molto più comodo averla sempre


> in esecuzione, anche se non so se potrei avere degli
> inconvenienti.

[...]

Puoi sempre associare la macro ad una combinazione di tasti o ad un
bottone.

Ciao.

Paolo B

unread,
Jul 26, 2004, 4:01:25 AM7/26/04
to
> Si, hai capito bene.
>
> > Ma "non devo" o "non posso" tenere sempre in esecuzione la macro?
>
> Quando una macro è in esecuzione il foglio di calcolo non è
> attivo, quindi non puoi.
>
> > Ti chiedevo questo perchè sarebbe molto più comodo averla sempre
> > in esecuzione, anche se non so se potrei avere degli
> > inconvenienti.
> [...]
>
> Puoi sempre associare la macro ad una combinazione di tasti o ad un
> bottone.

Ciao Saoche,

grazie mille per le utili notazioni, solo un'ultima domanda. Come potrei
"integrare" la macro in modo che quando apro il file si esegua
automaticamente? In questo modo avrei, quantomeno, già ingranditi tutti i
commenti già presenti nel file (ovviamente per quei commenti che poi dovessi
aggiungere dovrei fare una esecuzione manuale della macro ma poco male).
Inoltre quando dovessi "integrare" la macro in modo che quando apro il file
si esegua automaticamente tieni presente che i fogli sono 4 di cui il
foglio2, 3 e 4 sono "collegati" (incolla speciale) col foglio1. Te l'ho
precisato perchè non so bene se per far "eseguire automaticamente" una macro
all'apertura del file sia bastevole inserire la macro in tutti i quattro
fogli o che altro

Sub Commenti_Ridimensiona()
Dim MyComments As Comment
For Each MyComments In ActiveSheet.Comments
MyComments.Shape.Width = 400
MyComments.Shape.Height = 300
Next
End Sub

grazie ancora Paolo


Tiziano Marmiroli

unread,
Jul 26, 2004, 4:42:16 AM7/26/04
to
Il Mon, 26 Jul 2004 10:01:25 +0200, Paolo B ha scritto:

> Ciao Saoche,
>
> grazie mille per le utili notazioni, solo un'ultima domanda. Come potrei
> "integrare" la macro in modo che quando apro il file si esegua
> automaticamente?

IMHO ha più senso che la macro venga eseguita automaticamente alla
chiusura o al salvataggio, piuttosto che all'apertura. Per farla
eseguire al momento del salvataggio puoi sfruttare l'evento BeforeSave
dell'oggetto Workbook.

--
Tiziano Marmiroli
Microsoft MVP - Office

Mauro Gamberini

unread,
Jul 26, 2004, 5:12:13 AM7/26/04
to
Concordo con Tiziano. Comunque prova così:

> Come potrei
> "integrare" la macro in modo che quando apro il file si esegua
> automaticamente? In questo modo avrei, quantomeno, già ingranditi tutti i
> commenti già presenti nel file (ovviamente per quei commenti che poi
dovessi
> aggiungere dovrei fare una esecuzione manuale della macro ma poco male).
>

Visual Basic Editor
Doppio click su ThisWorkbook in Progetto - VBAProject
In alto a Sinistra nella ComboBox dove trovi Generale seleziona Workbook.
Inserisci:
Call Nome_della_tua_macro
all'interno dell'evento Workbook_Open()

> Inoltre quando dovessi "integrare" la macro in modo che quando apro il
file
> si esegua automaticamente tieni presente che i fogli sono 4 di cui il
> foglio2, 3 e 4 sono "collegati" (incolla speciale) col foglio1. Te l'ho
> precisato perchè non so bene se per far "eseguire automaticamente" una
macro
> all'apertura del file sia bastevole inserire la macro in tutti i quattro
> fogli o che altro
>

Private Sub Workbook_Open()

Dim y
Dim x As Integer
Dim MyComments As Comment

x = Worksheets.Count

For y = 1 To x
For Each MyComments In Worksheets(y).Comments


MyComments.Shape.Width = 400
MyComments.Shape.Height = 300
Next

End Sub

--
----------------------------
Mauro Gamberini


Mauro Gamberini

unread,
Jul 26, 2004, 5:24:34 AM7/26/04
to
Scusa ma manca un Next:
************************

Paolo B

unread,
Jul 26, 2004, 12:07:12 PM7/26/04
to
Ciao Mauro,

ho inserito la macro (che in basso ritrascrivo) in visualizza cadice poi ho
salvato il file e l'ho nuovamente aperto ma NON funziona.

La cosa poi strana e che se vado su strumenti > macro > non mio compare
alcuna macro e quindi non posso neppure eseguirla manualmente.

Quanto invece se sia meglio, come suggerito da Tiziano (che saluto),
eseguire alla fine la macro piuttosto che all'apertura, il motivo mi sfugge
e mi spiego. L'esigenza è di avere le dimenioni dei commenti maggiori di
quelle standard in modo da poter vedere tutto quanto vi ho scritto. Ora è
chiaro che se le macro fosse in grado di "espandere definitivamente" le
dimensioni del commento allora mi potrebbe andare bene eseguire la macro
alla fine in modo di avere già, alla prossima volta che andrò ad aprire il
file, il commento già espanso. Ma da quanto ho capito l'espansione delle
dimensioni dell'area del commento non è definitiva e quindi alla volta
successiva che andrò ad aprire il file se la macro non viene eseguita le
dimensioni ritornano quelle standard (piccole), è cosi? Ecco perchè
immaginavo di eseguire la macro con l'apertura del file in modo da avere
immediatamente, quantomeno per quei commenti già presenti, l'area di
dimensioni molto più grande. Ma forse mi potrete chiarire il motivi
dell'esecuzione al termine della sessione.
Grazie in anticipo Paolo


Private Sub Workbook_Open()

Dim y
Dim x As Integer
Dim MyComments As Comment

x = Worksheets.Count

For y = 1 To x
For Each MyComments In Worksheets(y).Comments
MyComments.Shape.Width = 400
MyComments.Shape.Height = 300
Next
Next

End Sub

"Mauro Gamberini" <maur...@RIMUOVEREaliceposta.it> ha scritto nel messaggio
news:%23RdjQHv...@tk2msftngp13.phx.gbl...

Mauro Gamberini

unread,
Jul 26, 2004, 1:29:02 PM7/26/04
to
> ho inserito la macro (che in basso ritrascrivo) in visualizza cadice poi
ho
> salvato il file e l'ho nuovamente aperto ma NON funziona.
>
Ma quale protezione sulle macro hai attivato?
Strumenti-->Macro-->Protezione Dovrebbe essere su medio
Al via accetta la macro.

A me, Excel 2003, XP, 2000 funziona.

> La cosa poi strana e che se vado su strumenti > macro > non mio compare
> alcuna macro e quindi non posso neppure eseguirla manualmente.
>

Nulla di strano. Workbook_Open() non è una macro, ma un
evento, quindi non puoi visualizzarlo da Strumenti-->Macro.

--
----------------------------
Mauro Gamberini


Mauro Gamberini

unread,
Jul 26, 2004, 1:35:49 PM7/26/04
to
Per maggior chiarezza ti riposto dove devi mettere il codice:

Visual Basic Editor
Doppio click su ThisWorkbook in Progetto - VBAProject
In alto a Sinistra nella ComboBox dove trovi Generale seleziona Workbook

Sostituisci:

Private Sub Workbook_Open()

End Sub

Con il codice:

Private Sub Workbook_Open()

Dim y
Dim x As Integer
Dim MyComments As Comment

x = Worksheets.Count

For y = 1 To x
For Each MyComments In Worksheets(y).Comments
MyComments.Shape.Width = 400
MyComments.Shape.Height = 300
Next
Next

End Sub

D_E_V_E funzionare...

--
----------------------------
Mauro Gamberini


Paolo B

unread,
Jul 26, 2004, 1:42:35 PM7/26/04
to
> Ma quale protezione sulle macro hai attivato?
> Strumenti-->Macro-->Protezione Dovrebbe essere su medio


Ciao Mauro,


si la protezione č media

> Al via accetta la macro.
>
> A me, Excel 2003, XP, 2000 funziona.

anch'io ho XP ma purtroppo non funziona ma, caro Mauro, riprovo a
trascrivere tutta la procedura che seguo:

inserisco la macro in visualizza codice
inserisco dei commenti
chiudo e salvo il file
apro il file e mi compare la maschera di avviso di protezione e clicco su
"attiva macro"
mi pongo con il cursore sopra il triangolino rosso e mi si visualizza il
commento in........dimensioni standard e non grandi, sic!!

la macro che inserisco č

Private Sub Workbook_Open()

Dim y
Dim x As Integer
Dim MyComments As Comment

x = Worksheets.Count

For y = 1 To x
For Each MyComments In Worksheets(y).Comments
MyComments.Shape.Width = 400
MyComments.Shape.Height = 300
Next
Next

End Sub

Infine quanto al dubbio se attivare la macro all'inizio o alla fine, sei
sempre dello stesso avviso?
Un grazie anticipato Paolo


Bruno

unread,
Jul 26, 2004, 1:49:40 PM7/26/04
to
Mauro Gamberini ci ha detto :

Provata da me Funziona
ciao e grazie anche da parte mia
Bruno

--
Ugo Foscolo
"Io non so né perché venni al mondo, né come, né cosa sia il mondo, né
cosa io stesso sia. E s'io corro ad investigarlo, mi ritorno confuso
d'una ignoranza sempre più spaventosa." Ciao Bruno

Paolo B

unread,
Jul 26, 2004, 1:53:36 PM7/26/04
to
> Per maggior chiarezza ti riposto dove devi mettere il codice:
>
> Visual Basic Editor
> Doppio click su ThisWorkbook in Progetto - VBAProject
> In alto a Sinistra nella ComboBox dove trovi Generale seleziona Workbook


Ciao Mauro,

il mio post precedente si era incrociato con il tuo.
In effetti ora funziona!! grazie mille.
Non capisco perché non era sufficiente inserire "semplicemente" la macro in
visualizza codice ma è necessario inserirla nel Workbook, in ogni caso
questo è il metodo e devo studiarmelo.......!!!

Quanto invece ad eseguire la macro all'inizio o alla fine sei sempre della
stessa opinione oppure concordi con le mie osservazioni?

Potremmo "tagliare la testa al toro" e potresti allora - cortesemente -
integrare la macro in modo che ANCHE salvi alla fine quando chiudo il file?

Paolo


Mauro Gamberini

unread,
Jul 27, 2004, 3:10:35 AM7/27/04
to
> Non capisco perché non era sufficiente inserire "semplicemente" la macro
in
> visualizza codice ma è necessario inserirla nel Workbook, in ogni caso
> questo è il metodo e devo studiarmelo.......!!!
>
Il Workbook dispone di eventi che vengono eseguiti in determinati momenti
della sua vita. Ad esempio Workbook_Open() è l'evento che si verifica
all'apertura della cartella ed il codice che si trova al suo interno verrà
eseguito per primo.
Se vai nell'editor del VBA e selezioni Workbook, sulla dx nell'altro
ComboBox
viene selezionato di default proprio Workbook_Open() che è l'evento
predefinito
del Workbook. Ma se clicchi sul ComboBox, vedi che il Workbook ha molti
altri
eventi, come BeforeSave e BeforeClose.
BeforeSave viene eseguito *prima* del salvataggio, sia che tu mi prema
il pulsante Salva(o Salva con nome), sia che tu stia chiudendo la cartella
e accetti le modifiche.
Prova a mettere:
MsgBox("Ciao ciao")
all'interno dell'evento BeforeSave e fai un po' di prove.
BeforeClose viene eseguito prima della chiusura della cartella.
Puoi mettere lo stesso codice che hai messo in Workbook_Open()
in Workbook_BeforeSave() in modo da confermarlo *prima* del
salvataggio del tuo file.
Puoi metterlo anche in Workbook_BeforeClose(), quindi *prima* della
chiusura(però ha già salvato).

Terra terra diciamo che puoi *mettere codice* nel Workbook(cartella),
nel Worksheet(foglio), nelle Form, nei Moduli, nei Moduli di classe.

Se fai doppio click sul Foglio1 in Progetto - VBAProject nell'editor del
VBA,
in alto a sx hai il ComboBox con Generale. Click e seleziona Worksheet.
Il Worksheet ha come evento predefinito SelectionChange() che si verifica
ogni volta tu cambi la selezione sul foglio. Prova ad inserire il solito
MessageBox:
MsgBox("Ciao ciao")
all'interno dell'evento SelectionChange().
Adesso vai in Excel e semplicemente spostati da una cella all'altra(stai
cambiando
le selezione sul foglio).
Ti faccio notare come il Worksheet abbia l'evento Activate() che si verifica
al momento dell'attivazione del foglio(un po' l'equivalente di
Workbook_Open()...),
l'evento Change() che si verifica quando cambi qualcosa sul foglio(ad
esempio aggiungi o togli
testo o numeri e poi confermi) e l'evento Deactivate() che si verifica
quando
selezioni un altro foglio.
Giocaci un po'.

Adesso basta, altrimenti ci sgridano.

> Quanto invece ad eseguire la macro all'inizio o alla fine sei sempre della
> stessa opinione oppure concordi con le mie osservazioni?
>

Tu adesso sai che puoi mettere il tuo codice in tre eventi.
Fai alcune prove e decidi in base ai tuoi riscontri.

--
----------------------------
Mauro Gamberini


Paolo B

unread,
Jul 27, 2004, 6:21:19 AM7/27/04
to
> Giocaci un po'.

Ciao Mauro,

ti ringrazio moltissimo per la lunga e dettagliata spiegazione, ora vado a
giocarci un po!! ;-)

PaoloB


Paolo B

unread,
Jul 27, 2004, 6:30:11 AM7/27/04
to


Ciao Mauro,

dopo i meritati complimenti ora ti devo fare un piccolo appunto:

non cambiare mai l'oggetto di un post perché altrimenti rendi difficile la
lettura del thread, specie per chi farà la ricerca su Google

PaoloB
P.S. ho pensato di fare io la tirata d'orecchie così è meno dolorosa ;-))


Mauro Gamberini

unread,
Jul 27, 2004, 6:55:07 AM7/27/04
to
> non cambiare mai l'oggetto di un post perché altrimenti rendi difficile la
> lettura del thread, specie per chi farà la ricerca su Google
>
O Gesù...........

--
----------------------------
Mauro Gamberini


Paolo B

unread,
Jul 27, 2004, 2:33:07 PM7/27/04
to
> > non cambiare mai l'oggetto di un post perché altrimenti rendi difficile
la
> > lettura del thread, specie per chi farà la ricerca su Google
> >
> O Gesù...........


Ciao Mauro,

guarda che scherzavo!! anche se è una buona regola

un saluto
Paolo


saoche

unread,
Jul 28, 2004, 12:32:25 PM7/28/04
to
Nella news:uKLPqT8c...@TK2MSFTNGP09.phx.gbl del 27 lug 2004
*Paolo B* ha scritto:

[...]


> dopo i meritati complimenti ora ti devo fare un piccolo appunto:
>
> non cambiare mai l'oggetto di un post perché altrimenti rendi
> difficile la lettura del thread, specie per chi farà la ricerca su
> Google

[...]

E' giusto, mi associo.
Ciao Mauro, prova a dare un'occhiata qui

http://tinyurl.com/3tqd9

Come puoi constatare tu stesso, il thread su google si esaurisce nel
momento in cui hai modificato il subject:, questo significa che chi
effettuerà delle ricerche su google non potrà leggere il thread
completo, oppure vuole dire che questo thread non potrà essere
selezionato come thread interessante per il prossimo numero di
it.office, o, ancora, che quando si presenterà un problema analogo non
si potrà rimandare a quel thread.
Se vogliamo che questo ng sia facilmente consultabile, alcune regole
bisogna che le rispettiamo.
Ciao

Mauro Gamberini

unread,
Jul 28, 2004, 12:55:49 PM7/28/04
to
Ancora!?!?

--
----------------------------
Mauro Gamberini


0 new messages