PDA

View Full Version : suggerimento per excel


giad
01-04-2003, 22:25
un saluti a tutti gli utenti del forum programmazione, premetto che non sono molto pratico di programmazione.
volevo chiedere alcune cose di programmazione di excel 2000
1. ci si può spostare con un comando preimpostato (invio o simili) da una determinata cella ad un'altra, ad esempio dalla cella B5/ invio/ alla cella H22

2. posso creare un menù a tendina tipo quelli dei siti internet con un elenco dove io posso scrivere le voci che mi interessano per richiamare poi quella che mi serve da scrivere nella cella, avevo già provato (con scarso risultato) creando mi sembra un collegamento ipertestuale.

3. come creare un comando per chiudere un foglio di lavoro senza salvare
non so se queste cose si possono fare con excel o se si deve usare access?
grazie per l'attenzione saluti

giad
01-04-2003, 22:32
per il terzo punto ho già avuto la risposta
grazie

a2000
02-04-2003, 21:16
:pig:

a2000
02-04-2003, 21:42
poi ci sono altre soluzioni più alla VisualMinchia. :p

monkey72
03-04-2003, 09:53
Originally posted by "a2000"

:pig:

ma è con l'invio che nel foglio di lavoro che hai postato si risolve il punto 1??
non va... :(

a2000
03-04-2003, 11:12
và, và, vai tranquillo :pig:

giad
06-04-2003, 15:21
Originally posted by "a2000"

và, và, vai tranquillo :pig:

ho provato e va bene e proprio quello che intendevo fare, però non so come creare ciò sul mio foglio di lavoro.
un aiuto?
ciao grazie

a2000
06-04-2003, 15:49
Mi fa piacere.

1) Ad ogni foglio di lavoro sono associati degli eventi (procedure attivate dalle azioni dell'utente) che puoi vedere elencate e pronte all'uso con:
Alt+F11 > elenco a discesa sinistro: Worksheet > elenco a discesa destro: tutte le procedure-evento.

Tra questi eventi c'è anche Change (ma potresti usare anche Selection_Change per la gioia di monkey72) che intercetta la variazione di contenuto (change) di qualunque cella o range restituendotelo come argomento Target (range).
Se Target è di tuo interesse (B5) fai eseguire le istruzioni relative, nel tuo caso il salto ad H22:


Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$B$5" Then
Range("H22").Activate
End If

End Sub




2) ogni cella ha un filtro sui dati immessi:
solo numeri; solo numeri interi; solo numeri compresi tra un minimo e un massimo; solo numeri che rispondono ai più svariati criteri; solo strighe alfanumeriche con qualunque regola di struttura;
oppure solo stringhe alfanumeriche (o numeri) scelti da un elenco a piacere.

Si fa così:

Dati > Convalida > Consenti: Elenco > Origine: range di celle oppure elenco di valori separato da ;
(oppure anche una formula o un range nominato del Foglio o della Cartella, ma questo lo puoi lasciare per dopo).


Un'altra cosa che può essere utile, nel genere, è l'autoformattazione condizionale che ti permette di formattare a piacere una cella in base al suo valore, a quello di un'altra cella o al valore restituito da una formula.

:)

monkey72
07-04-2003, 12:47
Originally posted by "a2000"

ma potresti usare anche Selection_Change per la gioia di monkey72

:) ma io ho workbook, non worksheet

cmq a me non funziona :(

a2000
07-04-2003, 12:55
Originally posted by "monkey72"



:) ma io ho workbook, non worksheet

cmq a me non funziona :(

eh, lo so a volte succede ... :(
hai provato col viagra ? :D

certe volte anche le martellate nei C++ hanno qualche effetto ! :eek:

monkey72
07-04-2003, 13:06
dai sii serio :D
io worksheet non ce l'ho e neanche gli eventi di cui parli

a2000
07-04-2003, 13:30
OK.

Alt+F11 > Visualizza > Gestione progetti > espandi VBAproject
vedrai elencati tutti i moduli di classe e i moduli utente.

Tra questi ci sono anche:
- i moduli di classe dei Fogli di calcolo o Worksheet (normalmente nominati come Foglio1, Foglio2, Foglio3);
- il modulo di classe dell'intera Cartella o Workbook (normalmente nominata ThisWorkbook).
Doppio click su Foglio1 (per esempio) e ti compare il modulo di classe dell'oggetto Worksheet.
Casella a discesa sinistra: seleziona "Worksheet"
Casella a discesa destra: hai tutto l'elenco degli eventi predefiniti per l'istanza (per quelli che parlano bene) Foglio1 dell'oggeto Worksheet tra cui anche Change.

:)

xxx Alcatraz xxx
07-04-2003, 15:25
Scusate se mi intrometto nella discussione, avrei una domanda da fare.
Come posso far assegnare un valore ad'una cella in base a quello che ho scelto nella cella dove ho fatto il menu a tendina?
Mi servirebbe fare una cosa più complessa in verità ma non sapendo fare la domanda :p faccio l'esempio:
Devo fare una specie di catalogo delle calorie degli alimenti, in una cella faccio il menu a tendina con i nomi delle varie pietanze, in un'altra cella inserisco i grammi di questa, e in base a cio vorrei che in un'altra cella mi comparissero le calorie. Ovviamente mi appoggio ad'una tabella con i nomi delle pietanze (cioè quelle che finiranno nel menu a tendina) e accanto le calorie per 100 grammi di prodotto.
Qualcuno riesce a risolvere questo problemino di un niubbo alle prime armi in exel come me?


Byez!

a2000
07-04-2003, 15:46
tipo così ?

xxx Alcatraz xxx
07-04-2003, 19:08
Tipo sei un genio!
Grazie mille! :)
Dopo avere cercato nell'help di exel la funzione CERCA.VERT, sono riuscito anche a capire cosa e come hai fatto. Grazie mille! ;)
Senti mi sai consigliare qualche bel tutorial che si trova in rete?
Grazie,


byez!

a2000
07-04-2003, 20:32
Originally posted by "xxx Alcatraz xxx"


Tipo sei un genio!
....

byez!

Ahimè, incompreso su questo forum :cry:

a2000
07-04-2003, 20:39
Originally posted by "xxx Alcatraz xxx"


...
Senti mi sai consigliare qualche bel tutorial che si trova in rete?



Non in rete ma sulla tua intranet personale ! :)

Per Excel:
Excel > F1 > Guida in linea su Microsoft Excel
Ti consiglio di cominciare da:
Creazione di formule e .... > Funzioni del foglio di lavoro

Per Visual Basic:
Alt+F11 > F1
Inizia con "Riferimento al linguaggio VisualBasic"

Una volta avevo fatto un corso di Excel che si intitolava:

"Excel in 60 minuti" !

:p

giad
07-04-2003, 22:29
Originally posted by "a2000"

tipo così ?

grazie a2000 le tue indicazioni mi sono state di grande aiuto e già sarebbero sufficienti così, sei un genio anche secondo me.
Ma se posso approfittare della tua disponibilità ti volevo chiedere altre cose:
1. ho scaricato il secondo file temp.zip che ti aveva chiesto xxxalcatrazxxx ma non ho capito come si fa ad assegnare un valore ad una voce dell'elenco, mi pare che me lo avevi già accennato, non sono riuscito a capirlo e non conosco i termini che usa excel nella guida.
2. sono riuscito a fare come da te spiegato tramite worksheet>change i primi tre passaggi da una cella all’altra, un passaggio successivo (il quarto) non me lo ha riconosciuto, poi altri successivi si.
ho ricontrollato le formule e mi sembrano giuste :(
inoltre modificando ulteriormente adesso mi da errore di compilazione End If End Sub :confused:
mi potresti dire come vanno usati End If End Sub
3. ogni volta che apro il file excel mi appare la finestra che indica che il file contiene delle macro, come posso fare per far si che excel apra il file normalmente senza dover dire “attiva macro” ogni volta?
ciao grazie

a2000
08-04-2003, 01:02
1)
con la convalida dati selezioni una stringa alfanumerica da una colonna (per esempio);

con CERCA.VERT(valore; range; offset; opz) cerchi il valore che hai selezionato nella prima colonna di un range di colonne e restituisci il valore corrispondente sulla stessa riga della colonna n° offset.

2)
avrai fatto degli If annidati ....
togliteli dai C++ e usa Select Case (vedi Help in linea con F1)

3)
Strumenti > Macro > Protezione > Bassa (occhio ai birus)

:)

monkey72
08-04-2003, 07:54
Originally posted by "a2000"

OK.

- i moduli di classe dei Fogli di calcolo o Worksheet (normalmente nominati come Foglio1, Foglio2, Foglio3);
- il modulo di classe dell'intera Cartella o Workbook (normalmente nominata ThisWorkbook).
Doppio click su Foglio1 (per esempio) e ti compare il modulo di classe dell'oggetto Worksheet.
:)

ok... :D
mi mancava solo un passaggio!!!!! :D
tnks

giad
10-04-2003, 20:58
:sofico: a2000 grazie di esistere

ciao

giad
17-04-2003, 21:26
Ciao se vi va di rispondere chiedo nuovi consigli per l’uso di excel

1. le macro tipo quelle sotto che avevo creato con il visual basic per andare da una cella all’altra non funzionano più
Codice:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$5" Then Range("H22").Activate End If End Sub

Ho cercato nella guida il Select Case ma non sono riuscito a trovare come si fa

2.se uso quotidianamente un foglio di lavoro che può essere un buono di consegna, c’è la possibilità in excel per far si che le voci del buono di consegna vadano automaticamente ad aggiungersi progressivamente nelle righe di un'altro foglio di lavoro che può essere un estratto conto mensile?

3. come gestire un magazzino magari sempre in riferimento al buono di consegna,
esempio: io metto in carico nel foglio di lavoro del magazzino 500 mele,
400 pere, 600 arance. per ogni buono di consegna che può essere o di mele o di pere o di arance far si che si sottraggano le unità o quantità in automatico nel foglio di lavoro del magazzino

Ciao grazie

a2000
19-04-2003, 13:15
1.
macro non deterministiche ???

Select Case Target.Address
Case "$B$5$": Range("H22").Activate
Case "$A$2$": Range("G25").Activate
Case "minchia": Range("pucchiacchia").Activate
......

End Select

si deve fare un po' diversamente ma per la leggibilità va anche bene così.
poi per maggiore semplicità con 5 righe di codice puoi semplicemente inputare le tue transizioni dalle celle di partenze a quelle di arrivo nella forma di una stringa di transizioni: "da > a" :

a$ ="b5 > h22, a2 > g25, minchia > pucchiacchia, .... "

o altro a piacere ...


2.
SI' , con 10 righe di codice. :eek:


3.
SI' , con 0 righe di codice. :cool:


:)

giad
19-04-2003, 14:45
Originally posted by "a2000"


2.
SI' , con 10 righe di codice. :eek:


3.
SI' , con 0 righe di codice. :cool:


:)

1. proverò anche in questo modo (comunque ho cestinato uno dei file contenente le macro e sembra che ora l'altro file funzioni)

2. vuoi dire che è complicato da fare :cry: (anche perchè bisogna vedere quali sono le celle del foglio di lavoro)

3. :confused:

ciao grazie

a2000
19-04-2003, 14:53
1.
tutti i file che ti ho mandato funzionano.

2. 3.
no, è tutto mooolto semplice da fare.

giad
19-04-2003, 15:05
Originally posted by "a2000"

1.
tutti i file che ti ho mandato funzionano.

2. 3.
no, è tutto mooolto semplice da fare.

1. di file me ne avevi mandati due e funzionano, i problemi li avevo io con altri file di prova che avevo fatto ora risolti.

2.3. se ti va aspetto indicazioni

ciao ;)

a2000
19-04-2003, 15:10
mandami un file di esempio con due parole.

:)

giad
19-04-2003, 15:40
ciao grazie

a2000
19-04-2003, 23:59
ciao prego

giad
21-04-2003, 15:57
è ok funziona :sofico:
se vuoi c'è qualcosa da modificare nell'allegato per una mia personalizzazione
;) ciao

a2000
21-04-2003, 22:25
che ne dici ?

giad
22-04-2003, 21:18
gran bel lavoro
guarda l'allegato ciao

giad
23-04-2003, 08:20
lascia stare il file sopra e scarica quest'altro ;)

giad
24-05-2003, 19:13
a2000 ti ricordi il file temp 4 ?
lo sto usando, se puoi mi serve una modifica alla macro "aggiorna" si può aggiungere alla stessa macro in un unico click anche la stampa, cioè quando faccio click sulla macro "aggiorna" : aggiorno e stampo.
ciao grazie ancora ;)

giad
24-05-2003, 19:16
Originally posted by "a2000"

che ne dici ?
temp 4 lo rinominato io quando lo salvato te lo riallego

a2000
24-05-2003, 19:39
ciao giad, vecchia quercia !

il tuo nick mi ricorda di quattro anni fa a Pechino ... io, John Fante e Charles Bukowski ...
eravamo ospiti del China World Hotel sulla Jianguomenwai Avenue ...
http://www.beijing-hotels.net/beijing_hotels/china_world/china_world_hotel.jpg


beh, vecchio giad, a Pechino quell'inverno, mi chia++rono la bellezza di 600 mila lire per un anello di giada che ne valeva meno della metà :mad:
(ma me ne accorsi solo quando calammo dal forfettario cinese (x 5) a quello milanese :p )

quando lo regalai mi dissero: "non ti preoccupare, basta il pensiero" !!!! :( :D

a2000
24-05-2003, 21:42
Originally posted by "giad"

a2000 ti ricordi il file temp 4 ?
lo sto usando, se puoi mi serve una modifica alla macro "aggiorna" si può aggiungere alla stessa macro in un unico click anche la stampa, cioè quando faccio click sulla macro "aggiorna" : aggiorno e stampo.
ciao grazie ancora ;)

ma cosa vuoi stampare ?
il buono di consegna o anche il resto ?

giad
25-05-2003, 00:13
dovrei stampare solo il buono di consegna.
forse però ho risolto, mi sono documentato un po sul vba e su come registrare le macro (e adesso ne so pochissimo di più). http://forum.hwupgrade.it/faccine/11.gif
comunque ho registrato una nuova macro facendo la seguente registrazione: aggiorna>stampa e sembra che funziona http://forum.hwupgrade.it/faccine/7.gif l'unica cosa mi ha creato in visual basic un nuovo modulo (modulo 2) http://forum.hwupgrade.it/faccine/22.gif ma comunque va.
vedi tu se è il caso di metterci le mani o no.
seguo tutte le discussioni a cui partecipi, per saperne qualcosa in più, excel mi appassiona (come a te del resto).
ciao a presto http://forum.hwupgrade.it/faccine/32.gif
grazie http://forum.hwupgrade.it/faccine/23.gif

per a2000 http://forum.hwupgrade.it/faccine/47.gif

a2000
25-05-2003, 08:38
bravo giad, allora vedrò di comprimere quell'interfaccia grafica in excel per mandartela in 30 Kb.

:)