Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Macro di EXCEL

Hai problemi con i file Zip, vuoi formattare l'HD, non sai come funziona FireFox? O magari ti serve proprio quel programmino di cui non ricordi il nome! Ecco il forum dove poter risolvere i tuoi problemi.

Moderatori: Dylan666, hydra, gahan

Macro di EXCEL

Postdi fabry » 27/11/02 11:51

Oggetto : Macro di Excel

Dispongo di WINDOWS 98 e di EXCEL 97.
Sto costruendo una Macro nella colonna D di un foglio Macro di Excel.

a - Ho bisogno di inserire nella cella D99 la Funzione FORMULA(formula;rif)
in cui:
# formula deve essere l'istruzione =FORMULA((TESTO.RIF(VALORE.RIF(E86);VERO));F92)
# rif deve essere la cella D100

In sintesi, quando la macro arriva alla cella D99, deve scrivere nella cella D100 la suddetta
istruzione (che provvede a scrivere in F92 il contenuto della cella E86).

b - Ho provato a inserire in D99
=FORMULA(("=FORMULA((TESTO.RIF(VALORE.RIF(E86);VERO));F92)");D100)
ma appare il messaggio "La formula digitata contiene un errore ".

c - A titolo di verifica, ho inserito uno spazio prima del secondo simbolo di UGUALE "="
=FORMULA((" =FORMULA((TESTO.RIF(VALORE.RIF(E86);VERO));F92)");D100)
In D100 l'istruzione viene inserita , ovviamente, con lo spazio prima del simbolo =.
A parte lo spazio vuoto, l'istruzione e' pero' sintaticamente corretta.
Infatti, se elimino lo spazio vuoto manualmente, la macro la esegue perfettamente.

Agli Esperti in materia CHIEDO: cosa devo scrivere nella cella D99, perche' in D100
venga inserita l'istruzione correttamente ?

Grazie anticipate dell'aiuto.
fabry
Utente Junior
 
Post: 18
Iscritto il: 27/11/02 11:41

Sponsor
 

Postdi JClark » 27/11/02 17:18

In sintesi, quando la macro arriva alla cella D99, deve scrivere nella cella D100 la suddetta istruzione (che provvede a scrivere in F92 il contenuto della cella E86).


Come ci arriva ? Ci vai tu con un click del mouse ? Spostandoti con le frecce di direzione ? A causa di un evento particolare ?

Dove hai trovato le istruzioni:
FORMULA
TESTO.RIF
VALORE.RIF

e cosa dovrebbero fare ?

Cmq essendo una macro del codice VBA l'istruzione puoi scriverla in questo modo:
activecell.formula = ... ecc. (vedi help VBA)
oppure sempre in VBA ad esempio così
Worksheets("Foglio1").Range("A1").Formula = "=$A$4+$A$10"

spiegami un po' meglio che cerco di aiutarti un po' di più :)
Il brutto tempo non esiste ... il brutto tempo è quello che passo senza andare in moto !

Bye Frank
:-)
JClark
Utente Senior
 
Post: 416
Iscritto il: 24/09/01 01:00
Località: Voghera

Postdi fabry » 28/11/02 15:47

Ringrazio JClark per la risposta di ieri.

1 - Le istruzioni sono quelle classiche per le Macro di Excel "Vecchio Stile".
Le definisco "Vecchio Stile" perche' le uso dal 1994.
Non si tratta dei piu' recenti VisualBasic Application e VisualBasic 5.0.
E' comprensibile che, trattandosi di "cose vecchie", Tu non le abbia mai usate.

2 - Come contropartita, io non ho mai usato Visual Basic 5.0.

Nuovamente grazie.
fabry
Utente Junior
 
Post: 18
Iscritto il: 27/11/02 11:41

Postdi JClark » 29/11/02 08:06

Ok, io sono un giovane Jedi e tu eri in classe con Obi One ... ma le tre istruzioni cosa devono fare ?

Se me lo dici magari riusciamo a fare l'equivalenza con VBA :)
Il brutto tempo non esiste ... il brutto tempo è quello che passo senza andare in moto !

Bye Frank
:-)
JClark
Utente Senior
 
Post: 416
Iscritto il: 24/09/01 01:00
Località: Voghera

Postdi fabry » 29/11/02 19:09

Risposta a JClark

1 - Nuovamente grazie per il tuo interessamento al mio problema, e per
la proposta di trovare alternative con VBA.
Ho molto apprezzato lo spirito del giovane Jedi.
Il mio problema e' quello di adattare alle mie esigenze, se possibile,
la macro fatta con il "vecchio stile" (tra l'altro, perche' lunga alcune
centinaia di righe).
Se non possibile, modifichero' certe impostazioni; in ogni caso non
potrei utlizzare la VBA.

2 - Per contraccambiare la tua cortesia, Ti fornisco comunque
le precisazioni che mi chiedi sulle Istruzioni della "vecchia macro".

VALORE.RIF(INDIRIZZO di una cella del foglio macro)
Memorizza nella Macro il CONTENUTO della cella, senza visualizzarlo.
Es.
=VALORE.RIF(E86)
Se la cella E86 contiene l'indirizzo E38,
la funzione memorizza "E38" in formato "STRINGA", non in formato
Riferimento.
Per poterlo usare in altre funzioni, occorre pertanto anzitutto convertirlo
da STRINGA a Riferimento di cella.


TESTO.RIF(INDIRIZZO in formato "STRINGA";VALORE LOGICO)
Converte una "Stringa" nel Riferimento a una cella.
Il VALORE LOGICO precisa lo stile dell'INDIRIZZO: VERO equivale
allo stile A1.
Es.
=TESTO.RIF(VALORE.RIF(E86);VERO)
Restituisce E38 in formato Riferimento

FORMULA(cella Origine; cella di Destinazione)
Scrive il contenuto della cella Origine nella cella Destinazione
Es.
=FORMULA((TESTO.RIF(VALORE.RIF(E86);VERO));F92)
Scrive il contenuto della cella E38 (cella Origine) nella cella F92

--------------------------------------------------
Fin qui la mia Macro funziona bene.

Il problema sorge quando chiedo alla Macro di scrivere questa istruzione
nella cella D100, utlilizzando la funzione "=FORMULA(..........)".
Teoricamente, a quanto penso io, l'istruzione completa dovrebbe essere

=FORMULA(("=FORMULA((TESTO.RIF(VALORE.RIF(E86);VERO));F92)");D100)

Purtroppo non viene accettata.

Un cordiale saluto e auguri di bel tempo per poter correre con la moto
sulle colline dell'Oltrepo.
fabry
Utente Junior
 
Post: 18
Iscritto il: 27/11/02 11:41

Postdi ezechiel2517 » 02/12/02 17:18

che sf.....ortuna, capita un problema con excel (di cui sono un espertone mondiale!!) e si tratta di qualcosa che ho rimosso per fare spazio alle nuove macro in VBA!!!
ecco la mia soluzione con metodo pseudo-informatico (trad: se non riesci a risolvere un problema.. tenta di aggirarlo!):
devi per forza utilizzare la macro? altrimenti puoi semplicemente utilizzare in f92 una formuletta tipo
=if(d100=1;e86;"")
che provvede a scrivere in F92 il contenuto della cella E86 se in d100 c'e' un 1. Se invece devi scrivere in f92 il contenuto della cella il cui indirizzo e' in e86 allora devi inserie
=if(d100=1;indirect(e86);"")
HTH
ezechiel2517
Utente Senior
 
Post: 1598
Iscritto il: 05/04/02 20:21


Torna a Software Windows


Topic correlati a "Macro di EXCEL":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti