PDA

View Full Version : Esperti in Excel.....datemi una mano....


fabstars
09-08-2004, 16:03
Salve ragazzi,
chiedo il vostro aiuto per un banalissimo quesito che non riesco proprio a risolvere con le varie funzioni matematiche di Excel.

Ho intenzione di creare due colonne; nella prima va inserito un numero di volta in volta, mentre nella seconda deve essere la somma di quello che io continuamente inserisco. Faccio un esempio per essere + chiaro:


|3||3|

bene...se io alla prima colonna al posto di 3 metto il numero 5, ad esempio, nella seconda mi deve fare la somma:


|5||8|

e così via.

Qualcuno saprebbe aiutarmi??

Grazie

Zebiwe
09-08-2004, 16:52
Credo si debbano usare un paio di righe di VBA..altrimenti non so proprio come potresti fare..
EDIT: ti aggiungo un esempio
Dim c As Integer
Set c = Cells(1, 2)
Cells(1, 2) = c + Cells(1, 1)
c = 0
End Sub

Crea un pulsante di comando e associaci questo codice.. ricordati che Cells (1,1) = A1
Cells (1,2)=B1

Byezz

fabstars
09-08-2004, 17:22
dal momento che non ho molta dimistichezza con il VB potresti dirmi esattamente come inserire il pulsante??

Tu hai gia provato il codice? Ti funziona??


Grazie per la pazienza

;)

Zebiwe
09-08-2004, 18:58
Il codice l'ho provato e funziona...mica ti passo la roba scacciona io!!! :D

Per inserire il pulsante devi: visualizzare la barra degli stumenti di VB (tasto dx sulle icone del menù e selezionare).
Clickare sull'icona con martello e chiave inglese (strumenti di controllo).

Compare un menù con gli oggetti che puoi inserire..clicki sul pulsante di controllo e poi lo disegni sul foglio.
Tasto dx sul pulsante che hai inerito e vai su visualizza codice.
A quel punto ci inserisci quello che ti ho scritto io.
Ti verrà una cosa del genere:
Private Sub CommandButton1_Click()
Dim c As Integer
Set c = Cells(1, 2)
Cells(1, 2) = c + Cells(1, 1)
c = 0
End Sub
.
Esci dall'editor VBA e cliccki sull'icona con squadra e matita (che ti fa entrare/uscire dalla modalità di progettazione/esecuzione).

Inserisci un valore nella cella A1 e inizi a sommare :D

fabstars
09-08-2004, 20:46
Innanzitutto ancora grazie per la disponibilità su un argomento per me assai ostico :muro:

Ho provato a fare come dici ma appena clicco sul pulsante mi viene fuori questo errore:

http://utenti.lycos.it/fabstars/VB.JPG

In alternativa avevo pensato ad un'altra soluzione.....perchè non mi invii il file in excel gia fatto?? :D :D

Ti sarei molto grato.

Ciao

fabstars
09-08-2004, 20:52
Originariamente inviato da Zebiwe

Compare un menù con gli oggetti che puoi inserire..clicki sul pulsante di controllo e poi lo disegni sul foglio.



Dimenticavo di dirti che non ho trovato il "pulsante di controllo . Al suo posto c'è "pulsante di comando ". E' la stessa cosa?? :rolleyes:

a2000
09-08-2004, 22:30
Originariamente inviato da fabstars
Salve ragazzi,
chiedo il vostro aiuto per un banalissimo quesito che non riesco proprio a risolvere con le varie funzioni matematiche di Excel.

Ho intenzione di creare due colonne; nella prima va inserito un numero di volta in volta, mentre nella seconda deve essere la somma di quello che io continuamente inserisco. Faccio un esempio per essere + chiaro:


|3||3|

bene...se io alla prima colonna al posto di 3 metto il numero 5, ad esempio, nella seconda mi deve fare la somma:


|5||8|

e così via.

Qualcuno saprebbe aiutarmi??

Grazie


pronti !

senza VBA e senza pulsanti ! :cool:

metti start = 1 e inizia il conteggio come vuoi ! :D

riporta start a 0 e riparti.

fabstars
09-08-2004, 22:51
Originariamente inviato da a2000
pronti !

senza VBA e senza pulsanti ! :cool:

metti start = 1 e inizia il conteggio come vuoi ! :D

riporta start a 0 e riparti.


:eek:

Sei un grande!!!

Grazie molto gentile.....

a2000
09-08-2004, 23:01
grazie. :)

in Excel è possibile fare calcoli iterativi con riferimenti circolari, basta spuntare Strumenti > Opzioni > Calcolo > Iterazioni (e settare il numero di iterazioni per ogni ricalcolo).

Per esempio per fare un contatore in C3 basta scrivere = C3 + 1 e ricalcolare (F9).

Zebiwe
10-08-2004, 10:15
Mmh io continuo a preferire il VBA piuttosto che permettere i riferimenti circolari...de gustibus..

Ti invio cmq il mio file (avevi ragione c'era una cosuccia che non andava.. :p )

Byezz
:sofico:

a2000
10-08-2004, 10:24
sono cattolico anch'io ma i calcoli iterativi a volte è meglio farli direttamente sul foglio.
hai mai provato ad implementare newton ?

a2000
10-08-2004, 10:44
e poi mi pare che devi ancora applicarti ... :D

Zebiwe
10-08-2004, 12:50
Bello come hai messo il codice..quello che non capisco è perchè inveec hai utiliizzato un range..che ti frega? tanto è solo una casella quella in cui mettere il valore..

a2000
10-08-2004, 15:25
il range Target lo fornisce l'evento implementato Worksheet_Change:


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$7" Then
Cells(7, 5) = Cells(7, 5) + Target
End If
End Sub

kibuzo
10-08-2004, 15:52
Ma stiamo ancora parlando di somma su excel?
nn basterebbe mettere =a1+a2??
ed eventualmente bloccare lo scorrimento col $?

a2000
10-08-2004, 15:57
kibuzo non hai capito un buzo ! :D :D

kibuzo
10-08-2004, 15:58
infatti mi pareva :P
ma allora qual'è la questione?

a2000
10-08-2004, 16:05
sulle stesse 2 celle:

0 0
3 3
5 8
7 15
3 18
0 18
9 27

kibuzo
10-08-2004, 16:09
e quindi in questo caso =a2+b1 sarebbe troppo difficile?

apparte che l'ho fatto con openoffice, ma anche il prodotto M$ dovrebbe andare

0
0 0
5 5
6 11
7 18
16 34
789 823
234 1057
1098 2155

a2000
10-08-2004, 16:37
confermo: kibuzo non hai capito un buzo ! :p

kibuzo
10-08-2004, 16:39
uhm... mah
eppure il risultato mi pare quello O_o

a2000
10-08-2004, 16:42
devi utilizzare solo due celle p.es. a1 e b1

o lo fai con i riferimenti circolari tipo (b1) = b1 + a1 o con un evento del foglio e due righe.

guldo76
10-08-2004, 16:43
mi sa che il tipo vuole che la somma vada avanti sempre nella medesima cella; vuole inserire il numero sempre nella a1 e avere la somma aggiornata sempre nella cella b1 (ad esempio) ;)
la slack ti fa male... :O
:D

edit: infatti, come dice a2000

kibuzo
10-08-2004, 16:44
ahh ekko
vedendo il tutto sotto un'altra ottica direi che nonostante le diottrie siano le stesse le onde non si convogliano bene

a2000
10-08-2004, 16:53
chi è sta slack ? quanti anni ha ? è trombabile ? :confused:

kibuzo
10-08-2004, 16:54
ti vedo già a letto con un cd vergine che provi a usarlo per creare una slackware :D (sono anni che voglio fare questa battuta)

cmq a 13 anni, sarebbe un po illegale

Zebiwe
10-08-2004, 16:55
Originariamente inviato da a2000
il range Target lo fornisce l'evento implementato Worksheet_Change:


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$7" Then
Cells(7, 5) = Cells(7, 5) + Target
End If
End Sub


OK...adesso ho capito il perchè e ho capito che devo riprendere in mano il VBA :cry: :cry:

a2000
10-08-2004, 16:56
ma cosa vuoi VBA, se hai fatto economia e comm altro che VBA !

tu devi riprendere l'IVA e fare legna !

tutto il resto sono cagats ! :D

a2000
10-08-2004, 16:58
Originariamente inviato da kibuzo
ti vedo già a letto con un cd vergine che provi a usarlo per creare una slackware :D (sono anni che voglio fare questa battuta)

cmq a 13 anni, sarebbe un po illegale

i CD vergini non li ho mai visti: i miei sono già bucati ! :oink:

e sta' slackware sarebbe ? :confused:

Zebiwe
10-08-2004, 18:22
Originariamente inviato da a2000
e sta' slackware sarebbe ? :confused:
Una distribuzione linux? :rolleyes: :sofico:

PS perchè se faccio economia non dovrei interessarmi di informatica? Le mie soluzioni non saranno il massimo dell'eleganza ma il sapersi arrangiare è importante IMHO. Nella mia ignoranza ho già creato un paio di DB per una ditta per la gestione del personale assegnato ai cantieri e per la gestione della giacenza in magazzino...
Tu avresti saputo fare meglio? Sicuramente si.
Io sono soddisfatto di quello che ho fatto? sicuramente si.


Capito il mio punto di vista....(poi ovvio che la partita doppia e la gestione della tesoreria, nonche la determinazione del reddito d'impresa li so fare molto meglio ;))

Byezz
:sofico:

a2000
10-08-2004, 18:56
ma cerrrto! non stare sempre sulla difensiva :)

volevo solo dire che con IVA si guadagna molto più che con VBA :D

fabstars
10-08-2004, 18:57
eccomi.

Premesso che la soluzione di a2000 era perfetta, bisogna dire anche che Zebiwe potrebbe forse aiutarmi meglio.

Infatti lo scopo finale della mia richiesta era proprio indirizzata ad una gestione di magazzino. Ciò che a me serviva infatti era proprio un semplice foglio di Excel in cui per ogni codice di articolo avere la possibilità di inserire man mano i consumi partendo da un certa quantità.

In questo foglio ho messo anche una sorta di controllo; al di sotto della scorta di magazzino mi sarebbe uscito un avviso di reintegro.

Ma qui viene il bello. Come faccio ad aggiornre la qty. in magazzino senza dover azzerare il famoso contatore?

Ti sarei grato Zebiwe se mi potessi aiutare in merito dal momento che, trattandosi di un piccolo magazzino, sarebbe pane per i tuoi denti :D .


Un'ultima precisazione per a2000: ti sei accorto che qualunque cifra metti in qualunque parte del foglio il contatore aumenta lo stesso?? Questo ad esempio è un picccolo inconveniente.

Ciao

Zebiwe
10-08-2004, 19:55
Fabstars..allora io la gestione del magazzino l'avevo realizzata con access 2003 ed è ancora in test..ovvero: per me funziona ma non è ancora stata usata neanche nell'impresa per cui l'avevo fatta.
Se ti interessa ne possiamo parlare....

fabstars
10-08-2004, 21:28
Originariamente inviato da Zebiwe
Fabstars..allora io la gestione del magazzino l'avevo realizzata con access 2003 ed è ancora in test..ovvero: per me funziona ma non è ancora stata usata neanche nell'impresa per cui l'avevo fatta.
Se ti interessa ne possiamo parlare....

Grazie Zebiwe, ma a me non serviva qualcosa di molto complicato.
In allegato ti invio un esempio di cio che vorrei realizzare.

Ciao

Zebiwe
11-08-2004, 12:17
Alllora..non è perfetto ma IMHO è utilizzabile...al magico pulsante di comando adesso è associato questo codice:
Private Sub CommandButton1_Click()
Dim i As Integer
i = 2
Do
Set b = Cells(i, 3)
Cells(i, 4) = b + Cells(i, 4)
Cells(i, 3) = ""
i = i + 1
Loop Until Cells(i, 1) = ""
End Sub

Dovrebbe andare...in attesa che qualcun altro lo ottimizzi (praticamente aggiorna i dati fino a quando non trova la cella del codice articolo vuota.
Fammi sapere cosa ne pensi (anche tu a2000) ;)


Byezz
:sofico:

Zebiwe
12-08-2004, 15:24
Allora?? Non mi hai fatto sapere più niente...ti va bene il foglio elettronico?????

fabstars
12-08-2004, 16:12
Originariamente inviato da Zebiwe
Allora?? Non mi hai fatto sapere più niente...ti va bene il foglio elettronico?????


Ciao,

scusa ma non ho avuto modo di controllare prima.

Il foglio effettivamente va bene, ed è quello che cercavo.
L'unica cosa è appunto il fatto che dovendo poi riacquistare l'articolo perchè sotto scorta non so come gestirlo, dal momento che aggiungendo la quantità acquistata nella colonna "Qty. In magazzino iniziale" mi sfalsa tutto il conto.

Ciao

Zebiwe
12-08-2004, 16:51
E inserirlo come valore negativo nella merce consumata? Il conto per la merce rimasta in magazzino non cambia..

fabstars
12-08-2004, 16:59
Originariamente inviato da Zebiwe
E inserirlo come valore negativo nella merce consumata? Il conto per la merce rimasta in magazzino non cambia..


Ossia?? :rolleyes:

Zebiwe
12-08-2004, 18:12
Se acquisti 20 unità della merce xyz e segni -20 nel consumo odierno i conti della differenza in tempo reale del magazzino tornano...

a2000.1
12-08-2004, 19:51
Zebiwe io ti segno -20 in comportamento.

gli amici si aiutano ! :mad: :D

Zebiwe
12-08-2004, 20:16
Originariamente inviato da a2000.1
Zebiwe io ti segno -20 in comportamento.

gli amici si aiutano ! :mad: :D


Io ti avevo avvisato che le tue risposte potevano risultare offensivo..il tuo ban ne è stata la conseguenza


Cosa ne dici del codice che ho scritto per il pulsantone? Quanti errori ho fatto? (dato che le tue competenze in fatto di programmazione non sono mai state messe in discussione...)


Byezz
:sofico:

PS speriamo che alla versione a2000.1 non debba seguire la versione a2000.2 ;)

a2000.1
12-08-2004, 21:34
sicuramente nella nuova versione .1 il tuo pulsantone va non bene ma benisssssimo :D

per il resto:
chi vive sperando muore cagando :D