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

parola chiama macro

4 views
Skip to first unread message

Mauro Zini

unread,
Feb 12, 2012, 8:32:03 AM2/12/12
to
Salve a tutti,
chiedo il vostro aiuto perchè di codice non ne capisco.
Mi serviva che digitando una parola in una data cella mi si attivasse
una macro.
La seguente funziona ma quando in una cella qualsiasi cancello un dato
mi appare la finestra di debug che mi evidenzia un errore.
La macro è questa:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
If Target.Column = 26 And Target.Row = 1 And CStr(Target.Value) =
"pippo" Then
Aprisezione
ElseIf Target.Column = 26 And Target.Row = 1 And CStr(Target.Value) =
"" Then
Chiudisezione
End If
End Sub

L'errore mi evidenzia la seconda riga ma non so come modificarla.
Qualche anima pia mi aiuta?
Grazie a tutti.
Mauro.

plinius

unread,
Feb 12, 2012, 9:28:27 AM2/12/12
to

"Mauro Zini" <zinim...@gmail.com> ha scritto nel messaggio
news:3f85514b-51d8-4850...@m2g2000vbc.googlegroups.com...
*************************

La seconda riga è "Aprisezione", cioè il nome della macro da lanciare.
Può darsi che la macro non esista oppure sia in un modulo diverso e
qualificata come Private.
Ciao,
E.


Mauro Zini

unread,
Feb 12, 2012, 10:15:24 AM2/12/12
to
Ma la macro è si in un modulo diverso è nel modulo1 mentre questa è
nel ThisWorkBook.
Ad Ogni modo la macro è questa:

Sub Aprisezione()
'
' Aprisezione Macro

Columns("Z:AE").Select
Selection.ColumnWidth = 8.43
Range("Z1").Select
End Sub

Che faccio la copio anche nel ThisWorkBook?
E da quel che capisco non è Private...
Grazie, ciao.

Mauro Zini

unread,
Feb 12, 2012, 10:19:55 AM2/12/12
to
Aggiornamento:
l'ho copiata anche li ma nulla è cambiato.
Quando mi esce l'errore che si apre la finestra di debug se posiziono
il mouse sulla riga evidenziata mi da questo suggerimento:
CStr(Target.Value) = <tipo non corrispondente>
può servire?

eliano

unread,
Feb 12, 2012, 12:07:21 PM2/12/12
to
Prova a sostituire "CStr(Target.Value)" con "Target.Value".
Senza doppi apici, ovviamente.:-))
Eliano

Mauro Zini

unread,
Feb 12, 2012, 12:43:35 PM2/12/12
to
Niente da fare continua l'errore.
Grazie Eliano.

eliano

unread,
Feb 12, 2012, 1:21:57 PM2/12/12
to
On 12 Feb, 18:43, Mauro Zini <zinimaur...@gmail.com> wrote:
> Niente da fare continua l'errore.
> Grazie Eliano.

Strano, perche' con XL2003 e la stringa "pippo" (senza doppi apici) in
Z1 funziona.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
If Target.Column = 26 And Target.Row = 1 And Target.Value = "pippo"
Then
Aprisezione
ElseIf Target.Column = 26 And Target.Row = 1 And Target.Value = ""
Then
Chiudisezione
End If
End Sub

Eliano

Mauro Zini

unread,
Feb 12, 2012, 2:52:35 PM2/12/12
to
Si è vero funzionare funziona però se seleziono tipo due caselle vuote
(non una ma più di una) e schiaccio il tasto CANC (anche se sono
vuote) mi apre la finestra di debug segnalandomi l'errore...
Ho pensato che il problema potesse essere altrove ma se cancello
questa macro nessun errore rimettendola et voilà...
Mauro.

eliano

unread,
Feb 12, 2012, 3:32:21 PM2/12/12
to
LOL
E bravo Mauro, ma che c'incastra, anzi che ci azzecca la cancellazione
di una o piu' celle o righe con il post di apertura ? :-))
In quell'evento (Workbook_SheetChange) viene usato il parametro Target
che riguarda la variazione effettuata su UNA SOLA cella, per
l'esattezza la cella Z1.
Chiarisciti un po' le idee, sperimenta ancora e poi ne possiamo anche
riparlare.
E visto che con XL2003 funge, per quanto mi riguarda l'argomento e'
chiuso.
Eliano

eliano

unread,
Feb 12, 2012, 3:47:44 PM2/12/12
to
Urca, il copia/incolla mi ha fregato due righe.:-))

Inserisci all'inizio della macro:
If Target.Count > 1 Then Exit Sub

Vale ovviamente l'invito a continuare la sperimentazione.:-))

Mauro Zini

unread,
Feb 13, 2012, 4:52:37 PM2/13/12
to
Beh ora va benissimo.
scusa sai se non sono riuscito ad esprimermi bene.
La macro come avrai capito funzionava però se nel foglio selezionavo
più celle e cancellavo il contenuto (può capitare lavorandoci sopra)
mi appariva l'errore e non andava bene.
Con l'ultima dritta hai risolto brillantemente il problema.
Ti ringrazio tantissimo.
Chiudi pure.
Ciao, Mauro.

eliano

unread,
Feb 13, 2012, 6:29:09 PM2/13/12
to
Grazie a te per il riscontro.
Eliano
0 new messages