ora mi serve sapere come fare per far si che nella colonna "D", in ogni cella(dalla 1 alla50) appaia la data, e se possibile, l'ora del momento in cui clicco sul pulsante corrispondente la riga (es. A1=A2-A3/in A4 ora e data// B1=B2-B3/ in B4 ora e data// ecc).
Caro mofa, se vuoi utilizzare felicemente excel devi memorizzare che il termine “riga” e’ riferito alle celle in orizzontale, e il termine “colonna” e' riferito alle celle in verticale. Ad esempio A4 e’ una cella in riga 4 e colonna 1.
Comunque, traduco che vuoi la data/ora nella RIGA 4 di ogni COLONNA.
Intanto un commento: creando 50 copie modificate della macro ti sei inflitto una inutile punizione.
Per fare quello che chiedi ti propongo 3 opzioni.
UNO:
Se vuoi mantenere i 50 pulsanti che attivano i ricalcoli colonna per colonna, allora:
a) modifica le tue 50 macro come segue:
- Codice: Seleziona tutto
Titolo macro
Call Totale("A1")
End Sub
In ogni macro cambierai il range selezionato nella riga Call (Call Totale("B1") la seconda, Call Totale("C1") la terza, etc)
Aggiungi la seguente nuova macro:
- Codice: Seleziona tutto
Sub Totale(Cella)
Range(Cella).Select
ActiveCell.Value = ActiveCell.Value + ActiveCell.Offset(1, 0).Value - ActiveCell.Offset(2, 0).Value
If ActiveCell.Offset(1, 0).Value + ActiveCell.Offset(2, 0).Value <> 0 Then ActiveCell.Offset(3, 0) = Now()
ActiveCell.Offset(1, 0).Range("A1:A2").ClearContents
Cancel = True
End Sub
Come si usa:
introdurre i nuovi dati in una colonna, poi attivare la macro tramite il pulsante giusto: il totale viene ricalcolato; se c’ e’ stata una modifica sara’ messo un nuovo “timbro” di data/ora (quindi, e questo vale per tutte e tre le soluzioni, una nuova data/ora viene messa solo se le celle da sommare/sottrarre non sono ambedue a zero).
Nonostante la relativa semplicita’ della soluzione, io non sono sicuro che sia la piu’ idonea; guarda se la DUE o la TRE non siano piu’ adatte.
DUE
Se vuoi tornare al metodo del doppioclick, risolviamo tutto con una sola macro:
- Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row <> 1 Then Exit Sub
ActiveCell.Value = ActiveCell.Value + ActiveCell.Offset(1, 0).Value - ActiveCell.Offset(2, 0).Value
If ActiveCell.Offset(1, 0).Value + ActiveCell.Offset(2, 0).Value <> 0 Then ActiveCell.Offset(3, 0) = Now()
ActiveCell.Offset(1, 0).Range("A1:A2").ClearContents
Cancel = True
End Sub
Da excel, click-destro sul tab del nome del foglio che usi; si apre il vba editor, incolli la macro nel riquadro di destra (come per il post inviatoti il 22/10/06 alle 02:31)
Come si usa:
introdurre i nuovi dati in una colonna, poi doppioclick su riga 1 di quella colonna per attivare la macro: il totale viene ricalcolato, se c’ e’ stata una modifica sara’ messo un nuovo “timbro” di data/ora.
A questo punto, se il metodo ti quadra, puoi cancellare le tue 50 macro di Modulo1 e i 50 pulsanti.
Volendo, nella cella A1 scrivi il commento “Doppioclick sulla cella per fare il nuovo Totale” (Menu ->Inserisci ->Commento; digiti il messaggio; selezioni una cella qualsiasi per chiudere) e poi copi questo commento in tutte le altre celle di riga 1 interessate (Selezioni A1; Contr-c per “copiare”; Menu ->Modifica ->Incolla spciale; seleziona “Note”; chiudi con Ok). In questo modo, passando col mouse sopra ognuna di queste celle, compare il messaggio “Doppioclick sulla cella per fare il nuovo Totale” che potrebbe aiutare l’ utente.
TRE
Se vuoi modificare tutte le 50 colonne con i nuovi totali con una unica macro attivata da un unico pulsante, usi questa:
- Codice: Seleziona tutto
Sub mofamille()
LastCOL = "AX1" '<<< Modificare se vuoi piu' o meno di 50 Colonne
For I = 0 To Range(LastCOL).Column - 1
Range("A1").Offset(0, I).Select
ActiveCell.Value = ActiveCell.Value + ActiveCell.Offset(1, 0).Value - ActiveCell.Offset(2, 0).Value
If ActiveCell.Offset(1, 0).Value + ActiveCell.Offset(2, 0).Value <> 0 Then ActiveCell.Offset(3, 0) = Now()
ActiveCell.Offset(1, 0).Range("A1:A2").ClearContents
Next I
Range("A1").Select
End Sub
Come si usa:
introdurre i nuovi dati, su una o su piu’ colonne, poi attivare la macro: tutti i totali vengono ricalcolati, quelli che hanno avuto modifiche avranno anche un nuovo “timbro” di data/ora.
Se hai dubbi, siamo qua.
PS: Righe in orizzontale, Colonne in vericale.