Condividi:        

[vba] macro per correggere macro

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

[vba] macro per correggere macro

Postdi ramset64 » 28/05/09 17:39

Questa mi sa che è dura, ma ci provo, con Anthony non si può mai sapere....

Ho molti file che contengono una macro con un piccolo errore, correggerli uno ad uno porterebbe via un tempo lunghissimo, mi domandavo se fosse possibile scrivere una macro che "sostituisse" l'intero codice presente in un determinato modulo.... credete sia possibile?
Grazie!
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Sponsor
 

Re: [vba] macro per correggere macro

Postdi Anthony47 » 28/05/09 19:35

Si puo' fare... Meglio sostituire istruzioni o aggiungerne invece che sostituire in blocco (il risultato e' piu' verificabile).

Quindi allega le sequenze di codice, vecchie e nuove, il nome macro, il Modulo su cui si trovano.

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

Re: [vba] macro per correggere macro

Postdi ramset64 » 28/05/09 20:23

Se fosse possibile vorrei capire come sostituire tutto il codice contenuto in un determinato modulo (per problematiche future).... in ogni caso, al momento ciò che mi servirebbe è sostituire questa riga:

Range("HD").FormulaLocal = "=CONTA.SE(INDICE(v,CONTA.VALORI(v)-passo):INDICE(v,CONTA.VALORI(v)),""=0"")"

con questa:
Range("HD").FormulaLocal = "=CONTA.SE(INDICE(v,CONTA.VALORI(v)-passo+1):INDICE(v,CONTA.VALORI(v)),""=0"")"

Grazie Anthony!!
Ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [vba] macro per correggere macro

Postdi Anthony47 » 28/05/09 22:18

Comincia a guardare questa discussione (i primi due messaggi): viewtopic.php?f=26&t=65595
In linea di massima imposterai la ricerca del codice da cambiare e la sua sostituzione con una sequenza di questo tipo:
Codice: Seleziona tutto
For I=1 to ThisWorkbook.VBProject.VBComponents("Modulo1").CodeModule.CountOfLines
CodeLine = ThisWorkbook.VBProject.VBComponents("Modulo1").CodeModule.Lines(I, 1)
If CodeLine="La tua istruzione da cambiare, come stringa valida (attenzione agli apici...)" Then
ThisWorkbook.VBProject.VBComponents("Modulo1").CodeModule.DeleteLines I
ThisWorkbook.VBProject.VBComponents("Modulo1").CodeModule.InsertLines (I), "La nuova stringa di Codice"
Exit For
Next I
If I >= ThisWorkbook.VBProject.VBComponents("Modulo1").CodeModule.CountOfLines then
Msgbox("La riga cercata non e' stata trovata")
Else Msgbox("Sostituita riga " & I & " con nuova stringa")

Con queste istruzioni cerchi quale linea del tuo codice contiene l' istruzione da modificare, quini la togli e la sostituisci con la nuova.
Richiede che sia definito come "attendibile l' accesso al progetto visual basic": prima di xl2007 bastava Menu /Strumenti /Macro /Protezione, tab Fonti attendibili; qui si spunta la voce suddetta. Con xl2007 non so come si fa...

Prova e fai sapere.
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19223
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[vba] macro per correggere macro":


Chi c’è in linea

Visitano il forum: Nessuno e 71 ospiti