Condividi:        

verifica macro assegnate o no controlli modulo e active x

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

verifica macro assegnate o no controlli modulo e active x

Postdi matzap » 07/05/13 13:39

Ciao, eccomi di nuovo qui.
nel mio file ho molte macro ognuna delle quali assegnate a un controllo modulo o active x.
nel corso della compilazione del programma ho usato diverse macro di appoggio che ora non servono piùma prima di cancellarle vorrei verificare se sono assegnate a qualche controllo. C'è un modo? inoltre passando da office 2003 a 2010 non riesco più a dare una corretto dimensionamento a tutti i controlli inseriti in una casella di gruppo, nel senso che come li raggruppo si spostano o si ridimensionano sapete dirmi perchè?

grazie ancora
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27

Sponsor
 

Re: verifica macro assegnate o no controlli modulo e activ

Postdi Anthony47 » 07/05/13 16:45

Mah...
Per gli oggetti Modulo potresti usare la Proprietà OnAction per capire se c' e' una macro associata, ma gli activex hanno un modo diverso di assegnazione.
Inoltre una macro potrebbe benissimo essere richiamata da un' altra macro.

Pertanto, se proprio vuoi fare pulizia, io ti suggerisco di inserire in ogni macro la possibilita' di registrare che la macro e' stata usata, poi confronti questo elenco con le tue macro e procedi alla pulizia.
Per avere questo log potresti ad esempio inserire in ogni macro un codice come questo
Codice: Seleziona tutto
If Application.WorksheetFunction.CountIf(Foglio1.Range("Z1:Z1000"), "LaMacroCorrente") = 0 Then
    Foglio1.Cells(Rows.Count, "Z").End(xlUp).Offset(1, 0) = "LaMacroCorrente"
End If
Questo memorizza in Foglio1, celle Z1 e sottostanti (fino a max Z1000, ma spero che tu abbia meno di 1000 macro) il nome delle macro man mano che vengono eseguite. Nota che ho usato il "codename" dei fogli e non il "nome".
Ovviamente devi usare poi in modo intensivo il tuo workbook, per essere certo di intercettare tutte le macro ancora in uso.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: verifica macro assegnate o no controlli modulo e activ

Postdi matzap » 08/05/13 14:24

Ciao Anthony, ho inserito il codice sostiutendo nome foglio e nome macro:

( come faccio ha in serire lo script della macro come fai tu?)
Sheets("verifica").Select
If Application.WorksheetFunction.CountIf(verifica.Range("Z1:Z1000"), "nuovo_rapportino") = 0 Then
verifica.Cells(Rows.Count, "Z").End(xlUp).Offset(1, 0) = "nuovo_rapportino"
End If

ma mi da un debug: necessario oggetto

per il dimensionamento dei controlli che si sfasano sai dirmi qualcosa?
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27

Re: verifica macro assegnate o no controlli modulo e activ

Postdi Anthony47 » 08/05/13 14:37

Non devi usare Select, perche' non ce n' e' bisogno e perche' interferirebbe col normale lavoro delle macro.
Se non vuoi usare il "codename" ma il "name" del foglio in cui vuoi creare l' elenco delle macro usate userai, ad esempio
Codice: Seleziona tutto
If Application.WorksheetFunction.CountIf(Sheets("verifica").Range("Z1:Z1000"), "nuovo_rapportino") = 0 Then
   Sheets("verifica").Cells(Rows.Count, "Z").End(xlUp).Offset(1, 0) = "nuovo_rapportino"
End If

In questo caso l' elenco delle macro usate sara' creato nel foglio chiamato "verifica", intervallo Z1 e sottostante.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: verifica macro assegnate o no controlli modulo e activ

Postdi matzap » 08/05/13 17:37

ok domani mattina riprovo...
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27

Re: verifica macro assegnate o no controlli modulo e activ

Postdi matzap » 09/05/13 11:34

Ciao Anthony,

Si funziona!

Ma volendo creare una macro generale con questo codice usando come variabile il nome della macro e poi richiamarla in tutte le macro senza riscrivere ogni volta il codice, come assegno alla varibile il nome della macro in running?
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27

Re: verifica macro assegnate o no controlli modulo e activ

Postdi Anthony47 » 09/05/13 12:16

Per quello che ne so non si riesce a individuare il nome della procedura in esecuzione.
Una piccola semplificazione potresti ottenerla inserendo le istruzioni per il log in una procedura a se stante, richiamabile con parametro.

Del tipo:
-in ogni macro
Codice: Seleziona tutto
Call LogProc("IlNomeDellaProcedura")

e poi una LogProc in cui il parametro passato e' prima oggetto del countif e poi usato per la scrittura in Z1:Z100; il vantaggio e' che si scrive "IlNomeDellaProcedura" una sola volta invece che due.

Lo schema di massima di LogProc e'
Codice: Seleziona tutto
Sub LogProc(byVal myProc as string)
If Application.WorksheetFunction.CountIf(Sheets("verifica").Range("Z1:Z1000"), myProc) = 0 Then
   Sheets("verifica").Cells(Rows.Count, "Z").End(xlUp).Offset(1, 0) = myProc
End If
End sub


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: verifica macro assegnate o no controlli modulo e activ

Postdi matzap » 09/05/13 15:23

ok, ma credo che il primo metodo sia più semplice....
l'ho inserito in quasi tutte le macro e non ricontro problemi..
grazie
excel 2010
matzap
Utente Senior
 
Post: 246
Iscritto il: 16/04/13 08:27


Torna a Applicazioni Office Windows


Topic correlati a "verifica macro assegnate o no controlli modulo e active x":


Chi c’è in linea

Visitano il forum: Nessuno e 108 ospiti