Macro con excel importante
Hai un problema con Excel? 
Macro con excel importante..
di Kubrick data: 15/05/2010
Supponiamo che arriva il dato in tempo reale e si posiziona nella casella s1971 io voglio che questo
va a posizionarsi nella casella a2000 , mentre il dato che era presente precedentemente nella casella a2000 va a posizionarsi nella casella a1999 quello che c'era nella casella a1999 va posizionarsi nella casella a1998 e cosi via fino ad arrivare alla casella a1 nel quale il dato verra' perso ma non importa ( in sostanza tutti i dati vengono shiftati di 1 verso l'alto).
supponiamo che dopo 15 minuti arriva un altro dato che si posiziona nella casella s1972 anche questo deve essere copiato in a2000 mentre quello che c'era in a2000 va in a1999 etc..
l'ultimo dato sara' s2006 .
qui sopra ci sono due tasti macro (stop e' corretta e funziona bene ) copia come aggiornamento va bene ma bisogna sistemare l'inserimento righe
se non capite ho il file in excel
Public SchTime
Function Cerca_Cella_Vuota()
'identifica la prima casella vuota dopo n nella colonna scelta
UltimaRiga = Range("A65356").End(xlUp).Row
Cerca_Cella_Vuota = UltimaRiga + 1
End Function
Private Sub Copia_Click()
Cerca_Cella_Vuota
SchTime = Now + TimeValue("00:00:03") 'imposti il timer ovvero ongi quanto vuoi il refresh
Riga_Inziale_Copia = 1971 'definisci inizio dati da spostare
Riga_Finale_Copia = 2006 'definisci fine dati da spostare
Numero_Righe = Riga_Finale_Copia - Riga_Inziale_Copia 'serve per capire quante righe andrai a copiare
Riga_Copia_Da = 2000 'riga iniziale
'Riga_Copia_Da = Cerca_Cella_Vuota()---> usa questa se vuoi che prenda l'ultima riga vuota attenzione se usi questa si accodano e non shiftano
Riga_Copia_A = Riga_Copia_Da + Numero_Righe
'Tolgo a partire da A1 n righe equivalenti a quelle che devi copiare e poi shifto pian piano tutte le altre
Range("A1:A" & Numero_Righe).Select
Selection.ClearContents
Range("A" & Numero_Righe + 1 & ":A" & Riga_Copia_A).Select
Selection.Copy
Range("A1").Select
ActiveSheet.Paste
Range("S" & Riga_Inziale_Copia & ":S" & Riga_Finale_Copia).Select
Selection.Copy
Range("A" & Riga_Copia_Da).Select
ActiveSheet.Paste
Range("S" & Riga_Inziale_Copia & ":S" & Riga_Finale_Copia).Select
Selection.Interior.ColorIndex = Int((50 - 1 + 1) * Rnd + 1) ' would return a random number between 1 and 6.
Application.OnTime SchTime, "Foglio3.Copia_Click"
End Sub
Private Sub Copia_Click_Stop_Click()
Application.OnTime EarliestTime:=SchTime, Procedure:="Foglio3.Copia_Click", Schedule:=False
End Sub
|
di Kubrick (utente non iscritto) data: 19/05/2010
Nessuno mi sa rispondere
Vuoi Approfondire?