Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Excel creare macro per sostituire funzioni

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

Excel creare macro per sostituire funzioni

Postdi Francesco53 » 14/03/19 17:15

Un saluto a tutto il Forum,
cercavo di realizzare una macro per sostituire delle formule presenti in un foglio,
purtroppo mi va in errore e non so come correggerlo.
Vi allego codice in quanto non credo sia il caso di inviare file in quanto mi sembra esplicito

Codice: Seleziona tutto
Sub EliminaSPazi()
Dim n As Byte
'=ANNULLA.SPAZI(DESTRA(SOSTITUISCI(C1;" ";RIPETI(" ";100));100))
For n = 1 To 10
    Cells(n, 3) = Trim(Right(Substitute(Cells(n, 1), " ", Rept(" ", 100)), 100))
Next n
End Sub

ringrazio chi può darmi un aiuto,
Francesco
S.O. Windows 7 e Office 2007
Francesco53
Utente Senior
 
Post: 700
Iscritto il: 20/02/10 18:45

Sponsor
 

Re: Excel creare macro per sostituire funzioni

Postdi Marius44 » 14/03/19 18:16

Ciao
Chi volesse aiutarti deve prima capire cosa vuoi fare :lol:

La formula che hai commentato cosa dovrebbe restituire?
Nel codice VBA cosa vuol dire Rept? (forse sarebbe il caso di precisare quale versione hai di Excel; io la 2010 è non c'è alcuna funzione con quel nome)
Non credi sarebbe opportuno spiegare meglio cosa vuoi esattamente fare, magari con un esempio concreto?

Ciao,
Mario
Marius44
Utente Senior
 
Post: 417
Iscritto il: 07/09/15 22:00

Re: Excel creare macro per sostituire funzioni

Postdi Francesco53 » 14/03/19 19:14

Ciao Marius vorrei fare quanto è scritto nella riga remmata che è poi quanto è scritto nella cella in cui ottengo il risultato nel foglio.
Io ho Excel 2007, ma il codice ho cercato di crearlo, ma non funziona proprio quel rept.
Francesco
S.O. Windows 7 e Office 2007
Francesco53
Utente Senior
 
Post: 700
Iscritto il: 20/02/10 18:45

Re: Excel creare macro per sostituire funzioni

Postdi Anthony47 » 15/03/19 01:09

Ti assicuro che la domanda e' un rebus

La mia migliore ipotesi, anche l'unica che sono in grado di fare:
Codice: Seleziona tutto
Cells(n, 3) = Trim(Right(Replace(Cells(n, 1), " ", String(100, " ")), 100))


E quando non ti restituira' il risultato che vuoi allora rassegnati a dire come sono i tuoi dati e che cosa stai cercando di ottenere

Ciao a tutti
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16193
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel creare macro per sostituire funzioni

Postdi klingklang » 15/03/19 09:11

Ma perché dite che è un rebus? L'utente ha scritto (commentandola) la funzione Excel che vorrebbe "tradurre" in VBA... e l'unico errore che stava facendo è l'inesistente funzione Rept, giustamente da Anthony sostituita con String (oltre a Replace al posto di Substitute, che esiste come membro di WorkSheetFunction, ma visto che usiamo il VBA tanto vale stare sul Replace).

A quanto capisco dalla lettura della funzione, serve a estrarre l'ultima parola da una stringa formata da più parole... ma questo ha un'importanza relativa: se la funzione Excel era quella e funzionava, altrettanto farà la versione VBA scritta da Anthony
Enrico
Windows 7 + Office 2016 64bit / Windows 10 + Office 365 32/64bit
Avatar utente
klingklang
Utente Junior
 
Post: 56
Iscritto il: 23/11/18 15:01
Località: San Giovanni in Persiceto

Re: Excel creare macro per sostituire funzioni

Postdi Anthony47 » 15/03/19 10:36

Anche i rebus si risolvono, lo so...
Pero' perche' devo dar il mio contributo a completare una "Sub EliminaSpazi" senza essere certo di che cosa quella Sub dovrebbe fare? Perche' contribuire a realizzare una soluzione potenzialmente poco efficiente perche' non e' stato spiegato quale e' l'obiettivo finale? Ad esempio, secondo me (per quello che sembra essere lo scopo finale) il modo migliore per risolvere con macro e' utilizzare InStrRev.

Se invece uno chiede genericamente come si traduce in vba una formula allora io gli suggerisco di provare a registrare una macro mentre inserisce quella formula in una cella.

Ciao!
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16193
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel creare macro per sostituire funzioni

Postdi klingklang » 15/03/19 11:12

Anthony47 ha scritto:Se invece uno chiede genericamente come si traduce in vba una formula allora io gli suggerisco di provare a registrare una macro mentre inserisce quella formula in una cella.

Ciao Anthony, lo sai da solo che questa non sarebbe la tua risposta, visto che così facendo ti ritroveresti con un "ActiveCell.Formula = ..." con la formula in inglese come la scriveresti sul foglio di calcolo. Questo non è "tradurre in VBA", bensì inserire una formula nella cella tramite VBA, e sono due cose ben diverse.
Per il resto, concordo con te sulla possibile inefficienza del codice proposto al posto di un altro, ma restando sulla richiesta dell'utente, non c'è ragione di credere che "non otterrà il risultato che vuole" ;)
Enrico
Windows 7 + Office 2016 64bit / Windows 10 + Office 365 32/64bit
Avatar utente
klingklang
Utente Junior
 
Post: 56
Iscritto il: 23/11/18 15:01
Località: San Giovanni in Persiceto

Re: Excel creare macro per sostituire funzioni

Postdi Francesco53 » 15/03/19 15:08

Buon pomeriggio a tutti, ringrazio per la partecipazione e mi dispiace aver creato incomprensioni.
Quello che chiedevo era la sostituzione di una formula o funzione presente in una cella da copiare
su circa 1200 righe, con una macro, ( che ho cercato di realizzare nella mia poca conoscenza, e non funzionava).
Utilizzando la macro scritta da Anthony sono riuscito ad ottenere quanto richiesto.
Scusate ma pensavo che con la scritta remmata fosse chiara la richiesta.
Grazie
Francesco
S.O. Windows 7 e Office 2007
Francesco53
Utente Senior
 
Post: 700
Iscritto il: 20/02/10 18:45

Re: Excel creare macro per sostituire funzioni

Postdi Anthony47 » 16/03/19 00:25

Avessi spiegato quello che devi ottenere come risultato finale ti avrei proposto qualcosa di piu' performante.
Vale per la prossima volta!
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16193
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Excel creare macro per sostituire funzioni":


Chi c’è in linea

Visitano il forum: contiend, wallace&gromit e 13 ospiti