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

Mi occorre una macro......

89 views
Skip to first unread message

gimart

unread,
Nov 2, 2009, 11:55:01 AM11/2/09
to
Ciao a tutti. Non sono un esperto di Visual Basic ed avrei bisogno che
qualcuno dei Maestri mi aiutasse a creare una macro per Excel 2003. Si tratta
di questo: stando in una qualsiasi cella del foglio, vorrei copiare in essa
solo le note (commenti) di una particolare cella dello stesso foglio che,
naturalmente, ha un nome, ad es. "COMMENTO". In effetti, quindi, si
tratterebbe di questo: stando ad es. nella cella A15, dovrei dire "copia solo
le note della cella "COMMENTO" in questa cella (A15). Spero non sia troppo
difficile :-). Grazie.

r

unread,
Nov 2, 2009, 12:34:01 PM11/2/09
to
non ho capito ...
comunque scrissi questo ... per recuoperare tutti i commenti del foglio attivo

Option Explicit

Sub test()
Dim rng As Excel.Range
Dim rngr As Excel.Range
Dim rngT As Excel.Range
Dim r As Long

On Error Resume Next
Set rng = ActiveSheet.UsedRange.SpecialCells(xlCellTypeComments)
If Err Then
Exit Sub
End If
On Error GoTo 0

Set rngr = Nuovo_Range(ThisWorkbook)

For Each rngT In rng
rngr.Offset(r, 0) = rngT.Address(, , , True)
rngr.Offset(r, 1) = rngT.Comment.Text
r = r + 1
Next

End Sub
Function Nuovo_Range( _
Wb As Excel.Workbook, _
Optional Nome_base As _
String = "Res") As Excel.Range

Dim b
Set Nuovo_Range = Wb.Worksheets.Add.Range("A1")

Application.ScreenUpdating = False
On Error Resume Next
Do
Err.Clear
b = b + 1
Nuovo_Range.Parent.Name = Nome_base & b
Loop While Err
Application.ScreenUpdating = True

End Function

saluti
r

--
Come e dove incollare il codice:
http://www.rondebruin.nl/code.htm

Il mio ultimo lavoro ...
http://excelvba.altervista.org/blog/index.php/Excel-VBA/UsedRange-eccezioni-e-alternative.html


"gimart" ha scritto:

Mauro Gamberini

unread,
Nov 3, 2009, 4:21:20 AM11/3/09
to

Se(se) ho capito.
Una cella(A15) con un commento e
alla stessa hai assegnato il nome
Commento.
Vuoi in qualsiasi cella selezionata,
inserire il commento di quella cella.

Copia/incolla questa in un modulo
standard.

Public Sub m()
With ActiveCell
.Value = Range( _
"Commento").Comment.Text
End With
End Sub

Un' alternativa.

Public Sub m()
With ActiveCell
.Value = [Commento].Comment.Text
End With
End Sub

Assegna la macro ad un tasto di scelta rapida,
esempio CTRL + a.
Seleziona una cella, premi CTRL+a.

--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://www.maurogsc.eu/
http://social.microsoft.com/Forums/it-IT/excelit/threads


Bruno Campanini

unread,
Nov 3, 2009, 4:32:21 AM11/3/09
to
"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> wrote in
message news:Od#vGcGXK...@TK2MSFTNGP02.phx.gbl...

[...]


> Un' alternativa.
>
> Public Sub m()
> With ActiveCell
> .Value = [Commento].Comment.Text
> End With
> End Sub

[Commento]?
[ C o m m e n t o ]??
[ ]???

Inorridisco...

Bruno

Mauro Gamberini

unread,
Nov 3, 2009, 5:46:15 AM11/3/09
to
> [Commento]?
>
> Inorridisco...
>

;-)

L'ho gi� scritto altre volte, non leggi... ;-)
Le parentesi quadre le utilizzo
per i Name. Nei miei files, sempre.
Il perch�? Ritengo di sapere
cosa sto facendo(nei miei files)
e quindi le [] identificano *solo*
i Names.
Non � la prima volta che per i
Names propongo le [] anche qui.

Nello specifico.
[Commento] rappresenta una cella
sola per tutto il file,
vedila come una costante.
[A1], no e qui � il problema, quello vero.
In entrambi i casi � comunque pi� veloce
*non utilizzare* le [].

[A1] = qualcosa
�, sopratutto qui dove viene *chiunque*,
un modo che ritengo sbagliato di proporre
una soluzione. Ritengo io, che non sono
nessuno, lo sottolineo.

NomeFoglio.Range(Range).Value = qualcosa
penso sia pi� comprensibile e sia pi� sicuro
ed *educativo*. Sempre il Mauro pensiero,
sempre il pensiero di un signor nessuno.

Come al solito, per le [] rimando qui:
http://support.microsoft.com/kb/104502/en-us

Ognuno libero di fare come vuole, ci mancherebbe.

Bruno Campanini

unread,
Nov 3, 2009, 7:08:42 AM11/3/09
to
"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> wrote in
message news:u8fTjLHX...@TK2MSFTNGP02.phx.gbl...

>> [Commento]?
>>
>> Inorridisco...
>>
>
> ;-)
>
> L'ho gi� scritto altre volte, non leggi... ;-)
> Le parentesi quadre le utilizzo
> per i Name.

Mi pareva...

[...]


> In entrambi i casi � comunque pi� veloce
> *non utilizzare* le [].

Me lo ricorder� alla prossima F1.

> [A1] = qualcosa
[Sheet23!A1] = qualcosa
Mai, se non per trascuratezza, il solo [A1].

Bruno

gimart

unread,
Nov 3, 2009, 7:13:04 AM11/3/09
to

"r" wrote:

> non ho capito ...

Cercherò di spegarmi meglio: in una certa cella di un foglio Excel 2003 ho
inserito un commento. Ora vorrei poter copiare questo commento in altre celle
dello stesso foglio senza passare per "Copia" -> "Incolla speciale" ->
"Note", ma semplicemente, posizionandomi nella cella ove debbo copiare questo
commento e premendo un pulsante cui assocerò la macro che ho descritto.
Esempio pratico: supponiamo che il commento da inserire sia "Pagato", io
scrivererò questo commento in una cella del mio foglio che chiamerò proprio
"Pagato". Ora se in altre celle del foglio dovrò inserire il commento
"Pagato", mi posizionerò via via in tutte queste celle ed ogni volta lancerò
la macro con il pulsante a cui l'avrò associata. Spero di essermi spiegato
bene :-).

Mauro Gamberini

unread,
Nov 3, 2009, 8:25:03 AM11/3/09
to
> Me lo ricorder� alla prossima F1.
>

ROTFL!

> [Sheet23!A1] = qualcosa
> Mai, se non per trascuratezza, il solo [A1].
>

Libero, ci mancherebbe.

Per�, perch� nei siti degli MVP,
negli ng in inglese, ecc., le [] non
si vedono?

--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://www.maurogsc.eu/

http://social.microsoft.com/Forums/it-IT/officeit/threads

Mauro Gamberini

unread,
Nov 3, 2009, 9:28:01 AM11/3/09
to
> Esempio pratico: supponiamo che il commento da inserire sia "Pagato", io
> scriverer� questo commento in una cella del mio foglio che chiamer�
> proprio
> "Pagato". Ora se in altre celle del foglio dovr� inserire il commento
> "Pagato", mi posizioner� via via in tutte queste celle ed ogni volta
> lancer�
> la macro con il pulsante a cui l'avr� associata. Spero di essermi spiegato
> bene :-).
>

...e io spero tu abbia letto la mia risposta.

--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://www.maurogsc.eu/

http://social.microsoft.com/Forums/it-IT/excelit/threads


Bruno Campanini

unread,
Nov 3, 2009, 9:41:16 AM11/3/09
to
"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> wrote in
message news:uOcTQkIX...@TK2MSFTNGP05.phx.gbl...

> Per�, perch� nei siti degli MVP,
> negli ng in inglese, ecc., le [] non
> si vedono?

Noi liberi pensatori a questo mondo siamo in pochi!

Bruno

Mauro Gamberini

unread,
Nov 3, 2009, 9:46:19 AM11/3/09
to
> Noi liberi pensatori a questo mondo siamo in pochi!
>

Anche Socratis(Tunze) scrive pi� o meno
la stessa cosa... ;-)))

Ciao Bruno, leggo sempre volentieri
i tuoi interventi, [] o non [].

--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://www.maurogsc.eu/

http://social.microsoft.com/Forums/it-IT/excelit/threads


Bruno Campanini

unread,
Nov 3, 2009, 10:11:39 AM11/3/09
to
"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> wrote in
message news:#trQwRJX...@TK2MSFTNGP05.phx.gbl...

>> Noi liberi pensatori a questo mondo siamo in pochi!
>>
>
> Anche Socratis(Tunze) scrive pi� o meno
> la stessa cosa... ;-)))
>
> Ciao Bruno, leggo sempre volentieri
> i tuoi interventi, [] o non [].

Da' un'occhiata a microsoft.public.excel,
thread: Deprecated [...].

Vediamo cosa risponde la comunit� internazionale.

Bruno

Mauro Gamberini

unread,
Nov 3, 2009, 11:15:00 AM11/3/09
to
> Da' un'occhiata a microsoft.public.excel,
> thread: Deprecated [...].
>
> Vediamo cosa risponde la comunit� internazionale.
>

Forse era pi� indicato excel.programming.
Comunque non � una guerra, eh.

Per la terza volta: ognuno � libero
di fare come crede.
Ricordi:
http://groups.google.it/group/microsoft.public.it.office.excel/msg/00146bf8258b5cc5

Non interverr� pi� sulle []
come sul Set a Nothing, su
Public e Private
o su altre cose di questo
genere se non in risposte ad OP
che chiedano opinioni.

E' da un po' che ignoro la cosa,
tu e Roberto credo ve ne siate accorti.
Rispetto il vostro punto di vista,
pur non condividendolo.

Maurizio scrisse(pi� o meno) che le [] c'erano,
bastava sapere come e dove utilizzarle.

gimart

unread,
Nov 4, 2009, 12:55:01 AM11/4/09
to
Porca miseria, nessuna soluzione, ma è proprio difficile?

Mauro Gamberini

unread,
Nov 4, 2009, 2:23:05 AM11/4/09
to
> Porca miseria, nessuna soluzione, ma � proprio difficile?
>

Te la *riposto*:

Se(se) ho capito.
Una cella(A15) con un commento e
alla stessa hai assegnato il nome
Commento.
Vuoi in qualsiasi cella selezionata,
inserire il commento di quella cella.

Copia/incolla questa in un modulo
standard.

Public Sub m()
With ActiveCell


.Value = Range( _
"Commento").Comment.Text
End With
End Sub

Un' alternativa.

Public Sub m()
With ActiveCell
.Value = [Commento].Comment.Text
End With
End Sub

Assegna la macro ad un tasto di scelta rapida,


esempio CTRL + a.
Seleziona una cella, premi CTRL+a.

--

plinius

unread,
Nov 4, 2009, 6:46:38 AM11/4/09
to

"gimart" <gim...@discussions.microsoft.com> ha scritto nel messaggio
news:BC17A3CC-B8EC-4E1A...@microsoft.com...

Se capisco correttamente la tua richiesta, intendi copiare il commento
contenuto della cella di nome "commento".nella cella attiva (non come
contenuto bens�, anche in questa, come commento)
E' cos�?

Allora assegna questa maxi-macro ad un tasto di scelta rapida:
-----
Sub CopyComm()
ActiveCell.AddComment.Text [commento].Comment.Text
End Sub
-----

Dimmi se ho capito esattamente, oppure spiega meglio quello che vuoi fare.

Ciao,
E.


r

unread,
Nov 4, 2009, 9:03:01 AM11/4/09
to
http://groups.google.it/group/microsoft.public.it.office.excel/browse_thread/thread/71b42cf84e49e6f8/b2f18a41d99f0d5c?hl=it&lnk=gst&q=strane+formule#b2f18a41d99f0d5c

http://spreadsheetpage.com/index.php/oddity/a_user_define_function_cant_change_the_worksheet_oh_yeah/

attenzione hai commenti di John Walkenbach

qui sotto le mie udf ... cchio però ricordo che se utilizzate da inserisci
funzione ->definite dall'utente ... andava in palla ...
quindi eventualmente devi scrivere direttamente nella cella la formula ...
es.

B1=FormulaCommento("prova";A1)
oppure
B1=FormulaCommento(C1;A1)

Public Function FormulaCommento(testo As String, d As Excel.Range) As String
'aggiunge un commento ad una o più celle
Dim rnG As Excel.Range
Application.Volatile (False)


For Each rnG In d
rnG.ClearComments
rnG.AddComment
rnG.Comment.Visible = False
rnG.Comment.Text Text:=testo
Next
FormulaCommento = ""
End Function


Public Function CancellaCommento(d As Excel.Range) As String
'cancella i commenti di celle
Dim rnG As Excel.Range
Application.Volatile (False)


For Each rnG In d
rnG.ClearComments
Next
CancellaCommento = ""
End Function


saluti
r


--
Come e dove incollare il codice:
http://www.rondebruin.nl/code.htm


"gimart" ha scritto:

> Porca miseria, nessuna soluzione, ma è proprio difficile?

gimart

unread,
Nov 4, 2009, 11:54:01 AM11/4/09
to
Scusami r, ma non ci ho capito niente! Dovresti darmi delle spiegazioni
"terra, terra", come diciamo a Napoli :-).
Grazie

r

unread,
Nov 4, 2009, 12:12:17 PM11/4/09
to
On 4 Nov, 17:54, gimart <gim...@discussions.microsoft.com> wrote:
> Scusami r, ma non ci ho capito niente! Dovresti darmi delle spiegazioni
> "terra, terra", come diciamo a Napoli :-).
> Grazie
>
>
>
> "r" wrote:
> >http://groups.google.it/group/microsoft.public.it.office.excel/browse...
>
> >http://spreadsheetpage.com/index.php/oddity/a_user_define_function_ca...
> >http://excelvba.altervista.org/blog/index.php/Excel-VBA/UsedRange-ecc...
>
> > "gimart" ha scritto:
>
> > > Porca miseria, nessuna soluzione, ma è proprio difficile?- Nascondi testo citato
>
> - Mostra testo citato -

incollo sempre nei miei post il link come e dove incollare il
codice ...
cosa non hai capito?
sono UDF funzioni definite dall'utente ...
dimmi cosa non hai capito ed eventualmente ti rispondo.
saluti
r

--
Come e dove incollare il codice:
http://www.rondebruin.nl/code.htm

Le mie case nel web:
http://excelvba.altervista.org/blog/index.php/Table/Excel-VBA/

http://r-mensa.blogspot.com/


r

unread,
Nov 4, 2009, 12:13:07 PM11/4/09
to
On 3 Nov, 16:11, "Bruno Campanini" <B...@gmail.com> wrote:
> "Mauro Gamberini" <maurogscRIMUOV...@RIMUOVEREaliceposta.it> wrote in
> messagenews:#trQwRJX...@TK2MSFTNGP05.phx.gbl...

>
> >> Noi liberi pensatori a questo mondo siamo in pochi!
>
> > Anche Socratis(Tunze) scrive più o meno

> > la stessa cosa... ;-)))
>
> > Ciao Bruno, leggo sempre volentieri
> > i tuoi interventi, [] o non [].
>
> Da' un'occhiata a microsoft.public.excel,
> thread: Deprecated [...].
>
> Vediamo cosa risponde la comunità internazionale.
>
> Bruno

voglio leggere ... aggiungi il link non lo trovo ...

r

unread,
Nov 4, 2009, 12:20:01 PM11/4/09
to
"gimart" ha scritto:

> Scusami r, ma non ci ho capito niente! Dovresti darmi delle spiegazioni
> "terra, terra", come diciamo a Napoli :-).
> Grazie

incollo sempre nei miei post il link come e dove incollare il

codice ...
cosa non hai capito?
sono UDF funzioni definite dall'utente ...
dimmi cosa non hai capito ed eventualmente ti rispondo.

saluti
r

--
Come e dove incollare il codice:
http://www.rondebruin.nl/code.htm

Le mie case nel web:
http://excelvba.altervista.org/blog/index.php/Table/Excel-VBA/

http://r-mensa.blogspot.com/


Mauro Gamberini

unread,
Nov 5, 2009, 3:07:30 AM11/5/09
to
> Vediamo cosa risponde la comunit� internazionale.
>
> Bruno

voglio leggere ... aggiungi il link non lo trovo ...
saluti
r

***************************************

Eccolo qui:
http://groups.google.it/group/microsoft.public.excel/browse_thread/thread/87e939d549fa98ac/c4b7f160009ba845?hl=it&ie=UTF-8&q=Deprecated+%5B...%5D+bruno+campanini

Ma non dice nulla
(alla data e all'ora di questo post).
L'ng pi� adatto sarebbe stato:
microsoft.public.excel.programming

Resta il fatto che su quegli ng di []
ne trovi poche, come sui siti
degli MVP che tutti conosciamo,
sui libri in lingua inglese e, non ultima,
sulla guida del vb di Excel.

*E' una constatazione,
non una polemica.*

Resta il documento di Microsoft
che non dice di non utilizzare mai le [],
ma un'altra cosa ben specificata
in 3 punti.

Ciao Roberto e buona giornata.

--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://www.maurogsc.eu/

http://social.microsoft.com/Forums/it-IT/officeit/threads

gimart

unread,
Nov 5, 2009, 7:31:01 AM11/5/09
to

"Mauro Gamberini" wrote:

> Se(se) ho capito.
> Una cella(A15) con un commento e
> alla stessa hai assegnato il nome
> Commento.
> Vuoi in qualsiasi cella selezionata,
> inserire il commento di quella cella.

Non voglio inserire il commento della A15 come testo, ma come commento della
cella selezionata. In buona sostanza, voglio ottenere che la cella
selezionata abbia lo stesso commento della cella A15.
Grazie Mauro

gimart

unread,
Nov 5, 2009, 7:43:01 AM11/5/09
to

"plinius" wrote:

>
> "gimart" <gim...@discussions.microsoft.com> ha scritto nel messaggio
> news:BC17A3CC-B8EC-4E1A...@microsoft.com...
> > Ciao a tutti. Non sono un esperto di Visual Basic ed avrei bisogno che
> > qualcuno dei Maestri mi aiutasse a creare una macro per Excel 2003. Si
> > tratta
> > di questo: stando in una qualsiasi cella del foglio, vorrei copiare in
> > essa
> > solo le note (commenti) di una particolare cella dello stesso foglio che,
> > naturalmente, ha un nome, ad es. "COMMENTO". In effetti, quindi, si
> > tratterebbe di questo: stando ad es. nella cella A15, dovrei dire "copia
> > solo
> > le note della cella "COMMENTO" in questa cella (A15). Spero non sia troppo
> > difficile :-). Grazie
>
> Se capisco correttamente la tua richiesta, intendi copiare il commento
> contenuto della cella di nome "commento".nella cella attiva (non come

> contenuto bensì, anche in questa, come commento)
> E' così?


>
> Allora assegna questa maxi-macro ad un tasto di scelta rapida:
> -----
> Sub CopyComm()
> ActiveCell.AddComment.Text [commento].Comment.Text
> End Sub
> -----
>
> Dimmi se ho capito esattamente, oppure spiega meglio quello che vuoi fare.
>
> Ciao,
> E.
>

Hai capito benissimo: copiare il commento della cella "Commento" come
commento della cella selezionata.
Ho provato la tua macro, ma, quando la lancio, mi compare un messaggio di
errore, in cui il testo [commento] è selezionato, che dice "Errore di
compilazione: prevista Function o variabile".

plinius

unread,
Nov 5, 2009, 8:20:50 AM11/5/09
to

"gimart" <gim...@discussions.microsoft.com> ha scritto nel messaggio
news:999EFC1F-898B-4CC9...@microsoft.com...

>
>
> "plinius" wrote:
>
>>
>> "gimart" <gim...@discussions.microsoft.com> ha scritto nel messaggio
>> news:BC17A3CC-B8EC-4E1A...@microsoft.com...
>> > Ciao a tutti. Non sono un esperto di Visual Basic ed avrei bisogno che
>> > qualcuno dei Maestri mi aiutasse a creare una macro per Excel 2003. Si
>> > tratta
>> > di questo: stando in una qualsiasi cella del foglio, vorrei copiare in
>> > essa
>> > solo le note (commenti) di una particolare cella dello stesso foglio
>> > che,
>> > naturalmente, ha un nome, ad es. "COMMENTO". In effetti, quindi, si
>> > tratterebbe di questo: stando ad es. nella cella A15, dovrei dire
>> > "copia
>> > solo
>> > le note della cella "COMMENTO" in questa cella (A15). Spero non sia
>> > troppo
>> > difficile :-). Grazie
>>
>> Se capisco correttamente la tua richiesta, intendi copiare il commento
>> contenuto della cella di nome "commento".nella cella attiva (non come
>> contenuto bens�, anche in questa, come commento)
>> E' cos�?

>>
>> Allora assegna questa maxi-macro ad un tasto di scelta rapida:
>> -----
>> Sub CopyComm()
>> ActiveCell.AddComment.Text [commento].Comment.Text
>> End Sub
>> -----
>>
>> Dimmi se ho capito esattamente, oppure spiega meglio quello che vuoi
>> fare.
>>
>> Ciao,
>> E.
>>
> Hai capito benissimo: copiare il commento della cella "Commento" come
> commento della cella selezionata.
> Ho provato la tua macro, ma, quando la lancio, mi compare un messaggio di
> errore, in cui il testo [commento] � selezionato, che dice "Errore di

> compilazione: prevista Function o variabile".

Hai prima creato la cella "commento" con menu\inserisci\nome\definisci?


plinius

unread,
Nov 5, 2009, 8:23:30 AM11/5/09
to

"plinius" <punto....@libero.it> ha scritto nel messaggio
news:SiAIm.90096$1s6....@twister2.libero.it...

La macro d� errore anche se la cella "commento" esiste ma non ha un
commento.
Se vuoi evitarlo cambiala cos�:
Sub CopyComm()
On Error Resume Next

Mauro Gamberini

unread,
Nov 5, 2009, 8:43:45 AM11/5/09
to
> Non voglio inserire il commento della A15 come testo, ma come commento
> della
> cella selezionata. In buona sostanza, voglio ottenere che la cella
> selezionata abbia lo stesso commento della cella A15.
>

Sempre tua la scelta su quale
selle due:

Public Sub m()
On Error Resume Next
With ActiveCell
.AddComment
.Comment.Text _
Text:=Range( _


"Commento").Comment.Text
End With
End Sub

Public Sub ma()
On Error Resume Next
With ActiveCell
.AddComment
.Comment.Text _
Text:=[Commento].Comment.Text
End With
End Sub

Poi assegna alla macro un tasto di scelta rapida
come consigliato precedentemente.

Grazie per l'attenzione.

--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://www.maurogsc.eu/

http://social.microsoft.com/Forums/it-IT/officeit/threads

r

unread,
Nov 5, 2009, 9:19:51 AM11/5/09
to
On 5 Nov, 09:07, "Mauro Gamberini"
<maurogscRIMUOV...@RIMUOVEREaliceposta.it> wrote:
> > Vediamo cosa risponde la comunità internazionale.

>
> > Bruno
>
> voglio leggere ... aggiungi il link non lo trovo ...
> saluti
> r
> ***************************************
>
> Eccolo qui:http://groups.google.it/group/microsoft.public.excel/browse_thread/th...

>
> Ma non dice nulla
> (alla data e all'ora di questo post).
> L'ng più adatto sarebbe stato:

> microsoft.public.excel.programming
>
> Resta il fatto che su quegli ng di []
> ne trovi poche, come sui siti
> degli MVP che tutti conosciamo,
> sui libri in lingua inglese e, non ultima,
> sulla guida del vb di Excel.
>
> *E' una constatazione,
> non una polemica.*
>
> Resta il documento di Microsoft
> che non dice di non utilizzare mai le [],
> ma un'altra cosa ben specificata
> in 3 punti.
>
> Ciao Roberto e buona giornata.
>
> --
> ---------------------------
> Mauro Gamberinihttp://www.riolab.org/http://www.maurogsc.eu/http://social.microsoft.com/Forums/it-IT/officeit/threads

Ciao Mauro,
nessuna polemica concordo ...
solo mi piace capire e non mi basta che MVP, comunità
e guru di ogni tipo mi dica fai così ...

Io uso la notazione breve ... a differenza di Bruno
però la uso principalmente per riferirmi ad una cella
o un intervallo di celle ... evito di aggiungere il nome del foglio
o il nome di altri intervalli denominati all'interno delle [] ...
raramente ... ma possono creare
problemi all'orchè in situazioni tanto deprecabili quanto
comunque consentite da Excel il nome del foglio o
della cartella o del Nome Definito assumono diciture
diciamo *ambigue*

Bruno dice mai [A1] ... mi piacerebbe sapere perchè ...
io l'ho già detto ... secondo me il modo più semplice
per settare riferimenti a fogli e cartelle è quello di assegnare
precisamente un riferimento ad un range e successivamente
utilizzare la proprietà parent per settare riferendosi al range

così nelle routine test se devo riferirmi a foglio e cartella attiva
scrivo
Set rng=[a1]
normalmente questa è l'unica riga di codice che andrebbe
modificata prima dell'uso ...

saluti
r

incollo alcuni nomi che generano l'errore
all'interno della notazione breve

Sub TestNotazioneBreve1()
Dim rng As Excel.Range
Dim s As String

'primo problema può essere il punto esclamativo
'nel nome ... deprecabile ovviamente ma consentito
s = "Pippo!"
ActiveSheet.Name = s
Set rng = ThisWorkbook. _
Worksheets(s).[a1]

Set rng = [Pippo!!B1] 'questa riga va in errore

End Sub

Sub TestNotazioneBreve2()
Dim rng As Excel.Range
Dim s As String

'secondo problema può essere il nome *ambiguo*
'... deprecabile ovviamente ma consentito
s = "A1 A2"
ActiveSheet.Name = s
Set rng = ThisWorkbook. _
Worksheets(s).[a1]

Set rng = [A1 A2!B1] 'questa riga va in errore
End Sub

Sub TestNotazioneBreve3()
Dim rng As Excel.Range
Dim s As String

'Altro nome *ambiguo*
'... deprecabile ovviamente ma consentito
s = "pippo A1"
ActiveSheet.Name = s
Set rng = ThisWorkbook. _
Worksheets(s).[a1]

Set rng = [pippo A1!B1] 'questa riga va in errore
Debug.Print rng.Parent.Name
End Sub

Sub TestNotazioneBreve4()
Dim rng As Excel.Range
Dim s As String

'Altro nome *ambiguo*
'... deprecabile ovviamente ma consentito
s = "+"
ActiveSheet.Name = s
Set rng = ThisWorkbook. _
Worksheets(s).[a1]

Set rng = [+!B1] 'questa riga va in errore
Debug.Print rng.Parent.Name
End Sub

Sub TestNotazioneBreve5()
Dim rng As Excel.Range
Dim s As String

'Altro nome *ambiguo*
'... deprecabile ovviamente ma consentito
s = "uno-due"
ActiveSheet.Name = s
Set rng = ThisWorkbook. _
Worksheets(s).[a1]

Set rng = [uno-due!B1] 'questa riga va in errore
End Sub

Mauro Gamberini

unread,
Nov 5, 2009, 10:16:22 AM11/5/09
to
nessuna polemica concordo ...
solo mi piace capire e non mi basta che MVP, comunit�
e guru di ogni tipo mi dica fai cos� ...
**************************************

Ok, perfetto.
Io non ho ne *la* ne *una* risposta.
Ho le mie convinzioni ed il *mio* modo
di scrivere codice, cos� come tu hai
il tuo. Se qualcuno mi/ci illumina,
ben venga.


Io uso la notazione breve ... a differenza di Bruno

per� la uso principalmente per riferirmi ad una cella


o un intervallo di celle ... evito di aggiungere il nome del foglio
o il nome di altri intervalli denominati all'interno delle [] ...
raramente ... ma possono creare

problemi all'orch� in situazioni tanto deprecabili quanto


comunque consentite da Excel il nome del foglio o
della cartella o del Nome Definito assumono diciture
diciamo *ambigue*

**************************************

Io la uso solo ed esclusivamente per puntare
a nomi da me definiti e in ambiente ben controllato,
preferendo anche l�, se possibile, Range(Nome).

Non ho altro da aggiungere a questo
thread se non pareri personali
e dettati da esperienze passate,
quindi mi astengo dal proporli perch�
non sono *la* risposta ma la *mia*
risposta.


incollo alcuni nomi che generano l'errore
all'interno della notazione breve

********************************

Uno in pi�:


Public Const a1 As String = "Pippo"

Public Sub m()
MsgBox [a1]
End Sub

r

unread,
Nov 5, 2009, 10:36:30 AM11/5/09
to
On 5 Nov, 16:16, "Mauro Gamberini"

<maurogscRIMUOV...@RIMUOVEREaliceposta.it> wrote:
> nessuna polemica concordo ...
> solo mi piace capire e non mi basta che MVP, comunità
> e guru di ogni tipo mi dica fai così ...

> **************************************
>
> Ok, perfetto.
> Io non ho ne *la* ne *una* risposta.
> Ho le mie convinzioni ed il *mio* modo
> di scrivere codice, così come tu hai

> il tuo. Se qualcuno mi/ci illumina,
> ben venga.
>
> Io uso la notazione breve ... a differenza di Bruno
> però la uso principalmente per riferirmi ad una cella

> o un intervallo di celle ... evito di aggiungere il nome del foglio
> o il nome di altri intervalli denominati all'interno delle [] ...
> raramente ... ma possono creare
> problemi all'orchè in situazioni tanto deprecabili quanto

> comunque consentite da Excel il nome del foglio o
> della cartella o del Nome Definito assumono diciture
> diciamo *ambigue*
> **************************************
>
> Io la uso solo ed esclusivamente per puntare
> a nomi da me definiti e in ambiente ben controllato,
> preferendo anche lì, se possibile, Range(Nome).

>
> Non ho altro da aggiungere a questo
> thread se non pareri personali
> e dettati da esperienze passate,
> quindi mi astengo dal proporli perchè

> non sono *la* risposta ma la *mia*
> risposta.
>
> incollo alcuni nomi che generano l'errore
> all'interno della notazione breve
> ********************************
>
> Uno in più:

>
> Public Const a1 As String = "Pippo"
>
> Public Sub m()
>     MsgBox [a1]
> End Sub
>

beh la *Tua* risposta aggiunge un caso
molto significativo ... ottimo motivo *vero*
per considerare di non usare la notazione
breve ... non la sottovaluterei ...
saluti
r

Mauro Gamberini

unread,
Nov 5, 2009, 11:32:46 AM11/5/09
to
beh la *Tua* risposta aggiunge un caso
molto significativo ... ottimo motivo *vero*
per considerare di non usare la notazione
breve ... non la sottovaluterei ...
****************************

;-)

Ciao grande Robby!

Mauro Gamberini

unread,
Nov 9, 2009, 5:55:10 AM11/9/09
to
<cut>

Ciao Bruno.
Direi che la risposta ricalca
pi� o meno alcune tesi sostenute
in questo thread.

Credo per� che qualcosa di
pi� interessante si potrebbe
ottenere postando qui:

microsoft.public.excel.programming

maggiormente frequentato da chi scrive codice
per Excel.
Vedi tu.

Buona giornata.

--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://www.maurogsc.eu/

http://social.microsoft.com/Forums/it-IT/officeit/threads

0 new messages