Moderatori: Anthony47, Flash30005
Sub gabry()
Dim myData, myLen As Long, mySplit
myData = Range("A1").Value
If myData = "" Then Exit Sub
myLen = Len(myData) - Len(Replace(myData, "-", "")) + 1
mySplit = Split(myData, "-")
Range("S1").Resize(myLen, 1).Value = Application.WorksheetFunction.Transpose(mySplit)
End Sub
Ma invece cosa dovrebbe fare, se in R2 c' e' solo un valore?La macro funziona se ci sono più valori nella cella separati da "-" altrimenti riporta solo di volta in volta il valore presente.
Alludi al fatto che bisogna lanciare la Sub Gabry a ogni cambiamento, vero? Dipende da come si aggiornano i dati in R2, cioe' quale e' il processo di popolazione di R2... Probabilmente c' e' una macro che se ne occupa, allora basterebbe, in coda a questa macro, inserire Call Gabry per eseguire anche la seconda macro; o e' una query, e allora si potrebbe usare l' evento AfterRefresh, o e' qualche altra cosa e allora si puo' vedere che altro pensare; o al limite si ripete la Sub Gabry ogni secondo... Insomma probabilmente c' e' una soluzione, ma va agganciata alla modalita' di utilizzo di excel.E' cmq scomodo dover avviare di volta in volta una macro per registrare il valore, dovrebbe avvenire in tempo reale.
Public NextT As Date
Const myFlag As String = "Z1" '<<< Cella libera che sara' usata
Const mySheet As String = "Foglio1" '<<< Foglio su cui si lavora
Sub ReRedo()
'
Dim myVarr(), myScroll As Long, NextR As Long
myScroll = 0 '<<< Il numero di valori da visualizzare, accodando; 0= "a oltranza"
If myScroll > 0 Then ReDim myVarr(1 To myScroll)
'
With ThisWorkbook.Sheets(mySheet)
NextR = .Cells(Rows.Count, "V").End(xlUp).Offset(1, 0).Row
.Cells(NextR, "V") = .Range("R2").Value
If NextR >= (myScroll + 1) And myScroll > 0 Then
myVarr = Cells(3, "V").Resize(myScroll, 1).Value
Cells(2, "V").Resize(myScroll + 1, 1).Value = myVarr
Cells(myScroll + 2, "V").Resize(100, 1).ClearContents
End If
If .Range(myFlag) <> 0 Then
NextT = Now + TimeValue("00:00:05") '<<<1 periodo (hh:mm:ss)
Application.OnTime NextT, "ReRedo"
.Range(myFlag).Value = NextT
End If
End With
End Sub
Sub Avvia()
Sheets(mySheet).Range(myFlag).Value = Now()
Call ReRedo
End Sub
Sub Stoppa()
Sheets(mySheet).Range(myFlag).ClearContents
Application.OnTime NextT, "ReRedo", , False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime NextT, "ReRedo", , False
End Sub
Torna a Applicazioni Office Windows
Aggiornare cella con somma quando aggiungo nuova colonna Autore: marcopont |
Forum: Applicazioni Office Windows Risposte: 1 |
inserisci valore in celle a seguito di condizione Autore: ucame |
Forum: Applicazioni Office Windows Risposte: 10 |
Visitano il forum: Marius44 e 9 ospiti