Condividi:        

Incrementa e decrementa

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

Re: Incrementa e decrementa

Postdi ricky53 » 07/05/11 18:00

Ciao,
io vorrei capire bene la tua effettiva necessità e, forse semplificare le operazioni già fatte e quelle da fare.

Provo a descrivere quello che ho capito.
Obiettivo: sommare a "n" celle (intervallo "M9:W17") +1 o -1 in base all'aumentare/diminure del valore della cella "C7" (o meglio al "click" in alto/basso sulla casella di selezione).

Veniamo alle domande:
Con questo ragionamento la tabella "AM9:AW17" può essere eliminata ?
L'intervallo "M9:W17" la prima volta che si opera contiene già dei valori ? Se "SI" come vengono calcolati/scritti ?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Sponsor
 

Re: Incrementa e decrementa

Postdi Statix » 07/05/11 18:28

Ciao Ricky53,
come detto anche prima,all'inizio sembrava facile,
poi si è complicato la situazione per un mio errore di valutazione del
processo di calcolo,adesso credo che sia più facile.
lasciamo stare la cella C7 ormai è esclusa,
quello che mi serve adesso è una macro che prende i valori nel range AM9:AW17
e li copia in M9:W17 ,questa macro la faccio girare con un ciclo da..1.. a..100..
però ad ogni ciclo deve sommare i valori del Range AM9:AW17
in M9:W17
così risolvo tutto senza creare altri pasticci
i valori in M9:W17 inizialmente stanno tutti a 0
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Incrementa e decrementa

Postdi ricky53 » 07/05/11 18:50

Ciao,
quindi vuol dire che non hai più la casella di selezione ed utilizzi una macro che gira da 1 a 100 ?

I valori nell'intervallo AM9:AW17 li inserisci manualmente ?


Scusa se pongo domande e non soluzioni, ma prima di proporre qualcosa voglio essere certo di aver capito bene.

E poi ... egoisticamente parlando, non mi va di dedicare del tempo per produrre qualcosa che poi va rivisto perchè
o non avevo capito bene io
o l'utente non si era espresso bene oppure era stato poco chiaro.
Condividi questo mio pensiero ?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Incrementa e decrementa

Postdi Statix » 07/05/11 18:59

Certamente ,hai ragione ,anche a me dispiace far perdere tempo ,
ma volte capita che facendo delle elaborazioni si fanno modifiche strada facendo ,
cosa che capita su qualunque cosa.
i Valori in AM9:AW17 vengono calcolati da formule
mentre il range M9:W17 e vuoto ,serve solo per vedere i dati finali.
ripeto mi serve solo una macro che mi copia i valori del range AM9:AW17
in M9:W17 e ad ogni ciclo li deve sommare.
esempio se in M9 =0 corrispettiva cella AM9=-1
facendo la somma M9=-1
altro ciclo
M9=-1 Corrispettiva cella AM9 =-1
somma M9=-2
e cosi ad ogni ciclo
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Incrementa e decrementa

Postdi ricky53 » 07/05/11 20:04

Ciao,
O.K.
a più tardi ... e ti proporrò un esempio di macro.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Incrementa e decrementa

Postdi Statix » 07/05/11 22:07

Ok, nell'attesa,
mi sono sbizzarito a provare,
alla fine ho risolto con 3 tabelle di appoggio
e con un paio di copia e incolla,in seguito applico il ciclo,
con una macro uguale ma con
Codice: Seleziona tutto
 Range("C7").Value = Range("C7") - 1
riesco ad andare avanti e indietro con 2 tasti.
ma aspetto ugualmente una macro :) :) :)
La necessità aguzza l'ingegno ;) ;)

Codice: Seleziona tutto
Sub Somma()

    Application.ScreenUpdating = False
    Range("C7").Value = Range("C7") + 1
    Range("AM9:AW17").Select
    Selection.Copy
    Range("AM19").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
                 
    Range("AM39:AW47").Select
    Selection.Copy
       
    Range("M9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("K3").Select
End Sub
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Incrementa e decrementa

Postdi Flash30005 » 07/05/11 23:19

Statix ha scritto:alla fine ho risolto con 3 tabelle di appoggio


Un vecchio proverbio recita così: "Chi fa da sé..." ;)

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Incrementa e decrementa

Postdi ricky53 » 07/05/11 23:31

Ciao,
mi fa piacere che tu abbia proseguito e sia arrivato ad un risultato anche se un po' contorto quanto hai detto di fare.
Per il resto non riesco a seguirti ... non hai inviato la macro con il ciclo ...
riesco ad andare avanti e indietro con 2 tasti.
cosa significa ?
Non avevi detto che non utilizzavi più la cella "C7" e la casella di selezione ?

In merito al vecchio detto "Chi fa da se ..." però ... quanto gli costa farlo ... !!!

Comunque io sono partito da quanto avevi scritto tu:
ripeto mi serve solo una macro che mi copia i valori del range AM9:AW17
in M9:W17 e ad ogni ciclo li deve sommare.

quindi ti invio una macro che semplicemente:

somma i dati presenti nell'intervallo "AM9:AW17" ai dati dell'intervallo "M9:W17"
Codice: Seleziona tutto
Sub Somma_Dati()
    Application.ScreenUpdating = False
    Dim I As Integer, J As Integer
    Dim Ws_M As Worksheet
    Set Ws_M = Sheets("Metodo")
    For I = 9 To 17
        For J = 13 To 23
            Ws_M.Cells(I, J) = Ws_M.Cells(I, J) + Ws_M.Cells(I, J + 26)
        Next J
    Next I
    Application.ScreenUpdating = True
End Sub


Se vuoi azzerare l'intervallo "M9:W17" utilizza questa istruzione:
Codice: Seleziona tutto
Range("M9:W17").FormulaArray = "0" ' <<----- Azzera la tabella
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Incrementa e decrementa

Postdi Anthony47 » 08/05/11 00:03

Do' anche io un contributo, come Ricky (vedi sopra), ma premetto che ancora non sono certo di aver capito la richiesta.

Per risolvere il problema immaginato ho usato la casella di selezione degli "Strumenti di controllo" (non Moduli), anche detto SpinButton, che ha una migliore programmazione sugli eventi; in particolare ho usato SpinButton1_SpinDown e SpinButton1_SpinUp

Il seguente codice va sul Modulo del foglio Metodo; in Modulo1 e' rimasto il vecchio codice legato alla casella di controllo, non ben funzionante al collaudo di Statix.
Codice: Seleziona tutto
Private Sub SpinButton1_SpinDown()
RInp = "AM9:AW17" '<<< Range di partenza
ROut = "M9"    '<<< Cella iniziale di output
'
Range(RInp).Copy
Range(ROut).PasteSpecial Paste:=xlPasteValues, Operation:=xlSubtract, SkipBlanks _
        :=False, Transpose:=False
Application.CutCopyMode = False
Range(ROut).Select
[z1] = [z1] - 1
End Sub

Private Sub SpinButton1_SpinUp()
RInp = "AM9:AW17" '<<< Range di partenza
ROut = "M9"    '<<< Cella iniziale di output
'
Range(RInp).Copy
Range(ROut).PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks _
        :=False, Transpose:=False
Application.CutCopyMode = False
Range(ROut).Select
[z1] = [z1] + 1
End Sub

Le proprieta' dello SpinButton si possono impostare visualizzando la barra degli strumenti "Strumenti di controllo", entrando in "Modalita' Progettazione" (l' icona con la squadra), poi si puo' selezionare l' oggetto e visualizzarne le Proprieta' (scelta su tasto dx); oppure visualizzarne /modificarne il codice.
Ho impostato la LinkedCell su Y1, e min/max su -100/+100.
In Z1 calcolo nel codice il numero di incrementi, per verificare che si gestisce anche la pressione continua sui pulsanti (mentre prima la macro scattava erroneamente solo una volta); la riga nel codice puo' poi essere eliminata.

Il testfile e' disponibile qui:
https://rapidshare.com/files/461203334/ ... B10508.xls

Spero sia di qualche utilita'.

Ciao a tutti.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Incrementa e decrementa

Postdi Statix » 08/05/11 09:26

Ciao Anthony47,
Ciao RicKy53,
ho provato entrambi le soluzioni,
entrambe sono ok,
da queste macro,ho imparato ancora altre cose,
altri oggetti ,altre formule ,altre soluzioni ,è il loro utilizzo,
da questo si deduce come ognuno di noi usa uno stile di programmazione
diverso in base alla sua propria conoscenza è ingegno,
per questo vi sono grato ad entrambi,
è con questi piccoli passetti che si impara excel,
anche se ho ancora molto da imparare,
ma la voglia c'è.


grazie per il tempo dedicatomi. ;) ;)
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "Incrementa e decrementa":


Chi c’è in linea

Visitano il forum: Nessuno e 45 ospiti

cron