Newsgroup: it.comp.aiuto
Titolo: (Excel) Per un problema, dove posso rivolgermi?

Ciao a tutti. Avrei da porre una domanda su Excel, ma non vorrei che in
questo gruppo fosse OT. Conoscete per caso un forum italiano dove possa
provare a risolvere il mio quesito? I NG dedicati a quel software
sembrano esistere solo stranieri. Il problema dovrebbe essere semplice,
ma se devo mettermi a spiegarlo in Inglese (e magari a dialogare) potrei
non riuscire a spiegarmi.
Molte grazie :)
-- 
Milena

 Milena
Paola
--
e-mail:
paolad(chiocciola)aruba(punto)it

questo gruppo fosse OT. 
Anche qui non dovrebbe essere OT, comunque probabilmente il ng piu'
adatto e' it.comp.os.win.software. 
C'e' anche microsoft.pubblic.it.office ma e' poco frequentato.
Lapalissiano
Icq 57269703

 messaggio (OT).
Bene. Visto che tanto tu quanto Lapalissiano (che ringrazio) mi
suggerite di farmi avanti... lo faccio ^_^  Si tratta di questo:
avrei bisogno di creare una figura (quadrata, triangolare, rettangolare)
le cui dimensioni aumentino o diminuiscano col variare del valore di una
cella. 
Ad esempio, io disegno un rettangolo il cui lato maggiore è di tot cm.
Vorrei che questo lato fosse "schiavo" della cella A1, in maniera tale
che, se in A1 ho "5", quel lato sia di 5 cm, e se nella medesima cella
inserisco "6", il lato aumenti di un centimetro.
L'unica via di far interloquire una figura con un numero l'ho trovata
nei Grafici (istogramma, barre, torta, ecc.), ma i grafici variano nel
rapporto relativo, non nelle dimensioni vere e proprie (o almeno, così
mi è sembrato, lieta di essere smentita).
Sapete se c'è un modo per ottenere una figura che *realmente* si
allunghi o si allarghi obbedendo al valore di una cella?
Spero di essermi spiegata bene, se così non fosse ditemelo, che provo ad
esemplificare meglio. Ciao e grazie :)       
-- 
Milena

cella. 
Credo non sia possibile farlo come desideri. Dovresti creare una macro
che modifica le dimensioni della figura  andando a cercare i valori
delle dimensioni nella cella che indicherai.
Cosi' facendo pero' le dimensioni della figura non cambieranno
automaticamente al variare della/e cella/e, cambieranno solo quando
eseguirai la macro (che potrai assegnare a un pulsante).
A complicare il tutto le misure sono espresse in punti e non in
centimetri.
Lapalissiano
Icq 57269703

 centimetri.
No no, nessuna complicazione. I miei centimetri erano solo un esempio,
andrebbero bene anche i punti.


eseguirai la macro (che potrai assegnare a un pulsante).
Excel non ha qualche controllo come ha Hypercard sotto Macintosh, tipo
`On Exit Field` ? (autoesplicativo)
-- 
Ciao!
        Gian Matteo

dell'oggetto? 
Cosi':
Sub Macro1()
    base = ActiveSheet.Range("A1").Value
    Selection.ShapeRange.LockAspectRatio = msoTrue
    Selection.ShapeRange.Width = base
End Sub
Lapalissiano
Icq 57269703

     base = ActiveSheet.Range("A1").Value
[CUT]
Ah, dunque lavorando in Visual Basic; non č il mio forte, ma mi offri
un'ottima occasione per metterci le mani. Sei stato estremamente
gentile, grazie infinite. Ciao :) 
-- 
Milena

 Ah, dunque lavorando in Visual Basic; non č il mio forte, ma 
... ma col tuo suggerimento hi risolto in cinque minuti. 
Non so come ringraziarti, davvero, funziona tutto alla perfezione. E ti
dirň di piů: forse non c'č neanche bisogno del pulsante, basta che nella
cella (esempio) B2 ci sia una condizione che faccia partire la macro non
appena essa vede modificarsi il valore in A1. Questo devo sperimentarlo,
ma non vedevo l'ora di informarti che, in un modo o in un altro,
FUNZIONA! :)))))))))) 
Un bacione
-- 
Milena

 Ah, dunque lavorando in Visual Basic; non č il mio forte, ma 
... ma col tuo suggerimento ho risolto in cinque minuti. 


appena essa vede modificarsi il valore in A1.
Se riesci a farglielo fare dimmi come si fa!
ciao
Lapalissiano
Icq 57269703

 Se riesci a farglielo fare dimmi come si fa!
No, mannaggia, non ce l'ho fatta :-(  però ti spiego il motivo che me lo
faceva credere. 
Prima di Excel usavo ClarisWorks (non so se lo conosci, è una sorta di
mini-Office per MacOs; c'è anche per Windows); ecco, nel suo foglio
elettronico è possibile far partire una macro proprio come ti ho
descritto. La semplice sintassi per ottenere un risultato del genere è
(vado a memoria, potrebbe non essere precisa):
=IF(A1>0;macro("nome_macro");0). L'ho usata centinaia di volte, credimi,
funziona senza batter ciglio. Anzi, se hai Claris e vuoi sperimentarla
dimmelo, che ci ridò un'occhiata e ti fornisco il codice preciso.
Ebbene, basandomi sul fatto che finora non avevo trovato niente in
Claris che non sapesse fare anche Excel, ero convinta che una cosa del
genere esistesse, e invece devo ricredermi: ho anche cercato
scrupolosamente su "MicrosoftExcel2000", un libro della Mondadori
Informatica che ho acquistato l'anno scorso a 110.000 lire :-(  senza
alcun successo. L'unica cosa che mi incoraggia è che, in seguito al tuo
input su VisualBasic, ho notato "l'IF". Dunque, a rigor di logica, credo
si possa istruire la macro in VisualB partendo da un "if_qualcosa" e
poi:
 
    ActiveSheet.Shapes("Rectangle 3").Select
        base = ActiveSheet.Range("N1").Value 
      [ecc.]
   end if
ma ancora non so come e soprattutto SE si puo' fare. Vedrò di studiarci.
Se però tu sei già sicuro che non è possibile, magari ti prego di
dirmelo, che almeno evito di perdere tempo. Preferisco studiare cose che
esistono, non che vivono unicamente nella mia immaginazione, perché
quelle non c'è verso di farle funzionare ^_^
Di nuovo grazie e a presto :)
-- 
Milena

poi.
Si, avevo pensato anch'io a qualcosa del genere. Ma la cosa deve
essere ricorsiva, cioe' deve fare il controllo di continuo.
Io ci ho provato  con While..Wend:
while condizione 
istruzioni
wend
Risultato: sulla carta funziona, in pratica no...
Il problema e' che finche' la macro e' in esecuzione excel non
permette di fare niente (rimane la clessidra).
Qualcuno sa come fare?
Lapalissiano
Icq 57269703

 Io ci ho provato  con While..Wend:
E sapresti dirmi, tralasciando il While, come si compila direttamente un
If?
Ovvero, poniamo voglia istruire VB dicendogli in partenza:
Se nella cella A1 vedi un valore più alto di 0, allora 
    ActiveSheet.Shapes("Rectangle 3")  ecc.
te lo chiedo perché, con i miei tentativi, non faccio altro che
sbagliare sintassi. Il risultato che ottengo è un messaggio di errore di
compilazione. VB devo proprio studiarlo, così non si va avanti ;-) 
Ciao, grazie :)
-- 
Milena

    ActiveSheet.Shapes("Rectangle 3")  ecc.
If Activesheet.Range("A1").Value > 0 then ActiveSheet.Shapes("Rectangle 3").Select : Selection.ShapeRange.Width = base
Usando la funzione Adesso() e tutte le altre il valore viene
aggiornato ogni volta che avviene il ricalcolo del foglio.
Torniamo al problema iniziale:  "come può quel valore di cella andare
a istruire la dimensione dell'oggetto?"
La mia risposta e' stata: in questo caso mi sembra possibile solo con
una macro e questo ti obbliga, AFAIK, a dover usare un pulsante, visto
che il ricalcolo con le macro non funziona.
E i miei tentativi per aggirare questo limite sono falliti, ma mi pare
impossibile non ci sia modo di farlo...
 
Lapalissiano
Icq 57269703

impossibile non ci sia modo di farlo...
Infatti e' possibile farlo!
Subito ho trovato questo:
http://groups.google.com/groups?ic=1&th=a64263142516f558
e c'ho capito poco...
Poi qui 
http://members.xoom.it/_XOOM/excel/esexcel.htm
  ho trovato
suono_condizionale.zip che spiega passo per passo cosa bisogna fare.
Lapalissiano
Icq 57269703

 ha scritto:

Prova con:
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
sul foglio in cui c'è la cella relativa.
Stefano
stsTO...@fnmail.com
 (occhio all'antispam)