Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Copia valore cella (variabile) in una colonna

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

Copia valore cella (variabile) in una colonna

Postdi gabry.sal » 07/11/13 17:12

Ho un piccolo problema ho ricavato un modello di monitor con exel per eseguire simulazioni mediche, ma non riesco a far riportare un valore numerico (variabile) da una cella in una colonna per eseguire un grafico con onda che mi registra l'andamento dei valori....

es 85-86-87-86-88-88 valori che cambio nella cella A1
s1:85
s2:86
s3:87
s4:86 etc...
PS non riesco ad allegare il file....
gabry.sal
Newbie
 
Post: 7
Iscritto il: 06/11/13 11:26

Sponsor
 

Re: Copia valore cella (variabile) in una colonna

Postdi wallace&gromit » 07/11/13 17:37

ciao gabry, benvenuta/o nel forum.
Puoi allegare documenti solo dopo avere postato almeno tre messaggi.
Magari usi i prossimi due per specificare un po' meglio cosa ti serve? :)
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21

Re: Copia valore cella (variabile) in una colonna

Postdi Anthony47 » 08/11/13 00:51

Ciao gabry.sal, benvenuto anche da parte mia.
Per quello che ho capito, prova una macro come questa:
Codice: Seleziona tutto
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
Uso:
-da Excel, Alt-F11 per aprire l' editor delle macro
-Menu /Inserisci /Modulo
-Copi il codice e lo incolli nel frame di dx
Torni su excel e lanci la macro gabry: Alt-F8, selezioni la macro dall' elenco che ti propone, premi Esegui

Eventualmente crea un pulsante (trovi questa forma nella barra degli strumenti Moduli) e assegnagli la macro "gabry" (ti verra' fatta una domanda specifica nel ciclo di creazione del pulsante).
In questo modo potrai eseguire la macro al semplice premere del pulsante

Per allegare un file guarda qui: viewtopic.php?f=26&t=80395 (lo puoi fare indipendentemente dal numero di messaggi che hai inviato).

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copia valore cella (variabile) in una colonna

Postdi gabry.sal » 08/11/13 11:42

Ho provato con la macro ma mi riporta solo un valore alla volta nella stessa cella, invece io avrei bisogno che mi copiasse i valori, che a mano a mano cambiano, in una colonna per creare un onda grafica che varia nel "monitor"... non so se sono stato chiaro ho allegato il file.
Grazie per la celerità nel rispondere
Gabriele


http://www.filedropper.com/nirsgabriele
gabry.sal
Newbie
 
Post: 7
Iscritto il: 06/11/13 11:26

Re: Copia valore cella (variabile) in una colonna

Postdi wallace&gromit » 08/11/13 12:06

ciao, scusatemi :oops: non ero aggiornato sul fatto che non servono più i 3 messaggi!

Gabry, la prima cosa che devi creare è un range di dati in cui inserisci i valori, che serviranno a popolare un grafico, che per il momento non esiste, quello che mostri tu è un'immagine importata su uno sfondo con i bordi colorati.

Successivamente si potrà creare una macro che al clic del pulsante memorizza un determinato valore con data e ora attuale nel range previsto.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
Iscritto il: 16/01/12 14:21

Re: Copia valore cella (variabile) in una colonna

Postdi Anthony47 » 08/11/13 12:57

Guarda il messaggio di W&G, sopra.
La mia macro fa quello che hai richiesto: data una sequenza tipo 85-86-87-86-88-88 in cella A1 (oppure R2, come nel tuo esempio), inserisce i numeri disponibili in V1 e sottostanti, come nell' immagine:
Immagine

Uploaded with ImageShack.us
Procedura di test: inserito 71-72-73 in R2; eseguita la macro presente sul file che hai allegato.

Puoi spiegare le tue condizioni di test?

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copia valore cella (variabile) in una colonna

Postdi gabry.sal » 09/11/13 00:00

Come in un monitor il valore cambia nella cella r2 ma è un unico valore che sale e che scende a seconda delle mie necessità nella simulazione, ed è comandato dal pulsante che vedi sotto (altezza cella R28). La macro funziona se ci sono più valori nella cella separati da "-" altrimenti riporta solo di volta in volta il valore presente. E' cmq scomodo dover avviare di volta in volta una macro per registrare il valore, dovrebbe avvenire in tempo reale.
E' la riproduzione di un monitor che registra il consumo di O2 cerebrale è dovremmo usarlo per eseguire delle simulazioni in ambito pediatrico per il personale medico ed infermieristico.
Dalle risposte mi sembra un po' complicato se non è possibile mi limiterò a fare un onda finta.
Gazie cmq
gabry.sal
Newbie
 
Post: 7
Iscritto il: 06/11/13 11:26

Re: Copia valore cella (variabile) in una colonna

Postdi Anthony47 » 09/11/13 00:24

La macro funziona se ci sono più valori nella cella separati da "-" altrimenti riporta solo di volta in volta il valore presente.
Ma invece cosa dovrebbe fare, se in R2 c' e' solo un valore?
E' cmq scomodo dover avviare di volta in volta una macro per registrare il valore, dovrebbe avvenire in tempo reale.
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.
Sapendo che i dati sono in V1 e sottostanti quale e' la difficolta' a ottenere un grafico vero invece che uno finto?

Intanto vediamo come poter automatizzare la traslazione di R2 in V1 e sottostanti, in funzione di quanto potrai dirci su come R2 viene popolato.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copia valore cella (variabile) in una colonna

Postdi gabry.sal » 09/11/13 01:03

mi spiego meglio in un monitor ogni 10 secondi il valore può cambiare o rimanere lo stesso io ho bisogno che tale valore venga riportato in una colonna per poi fare una linea di andamento del valore nel riquadro temporale del monitor
quindi tempo zero valore 74 dopo 5sec 73 poi 72 poi 74 etc...
questi dati dovrebbero formare un linea grafica che sale e che scende in base al tempo nel riquadro centrale dove io ho messo per comodita una linea.
x = tempo y = valori che si modificano
i dati in r2 si aggiornano con un pulsante di controllo in basso quindi penso che si debba usare l'evento autorefresh ma in materia di macro non sono così preparato
gabry.sal
Newbie
 
Post: 7
Iscritto il: 06/11/13 11:26

Re: Copia valore cella (variabile) in una colonna

Postdi gabry.sal » 10/11/13 15:23

stai lavorando per me o ti sei dimenticato???? :D :D
è tutto chiaro oppure devo aggiungere qualche altro dato, io ho provato a capire qualcosa della funzione afterrefresh.
cmq garzie
gabry.sal
Newbie
 
Post: 7
Iscritto il: 06/11/13 11:26

Re: Copia valore cella (variabile) in una colonna

Postdi Anthony47 » 11/11/13 03:35

Sicuro... E tu hai lavorato per te?

Ma il benedetto valore (non la stringa tipo 85-86-87-86-88-88) in R2 come si aggiorna? Premedo un pulsante?? E il dato lo vuoi quindi accodare a quelli gia' presenti in colonna V? E o vuoi accodare ogni tot secondi o solo dopo che R2 ha avuto un refresh (anche se il valore rimanesse lo stesso) o solo quando R2 cambia di valore? E vuoi fare una lista a oltranza (V1, V2, V3, .. V1000, V1001,... V10000, ... V50000, ...) o un elenco lungo un numero fisso di valori? E se un numero fisso l' elenco lo vorresti "rolling" o "scrolling"?
E accanto a questo elenco vuoi anche il timestamp (l' orario in cui il dato e' stato inserito in elenco) oppure la posizione nell' elenco e' esaustivo?
Mi fermo, ho avuto una lunga giornata...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copia valore cella (variabile) in una colonna

Postdi gabry.sal » 11/11/13 07:37

Ho lavorato per me ma le mie conoscenze richiedono l'aiuto di una persona più preparata, non so proprio da dove cominciare.
1) il valore in R2 si aggiorna con un pulsante; 2) il valore si deve aggiungere in coda a quelli presenti in colonna V e si deve accodare ogni secondo (per la durata di 1 ora quindi per 3600 valori in colonna V ma va bene anche ad oltranza); sul rolling o scrolling non so cosa significa cmq da quei dati faccio un grafico quindi basta un semplice elenco di numeri;3) no il timestamp non è necessario ai fini del grafico.
ciao e ancora grazie
gabry.sal
Newbie
 
Post: 7
Iscritto il: 06/11/13 11:26

Re: Copia valore cella (variabile) in una colonna

Postdi Anthony47 » 11/11/13 15:48

In un Modulo nuovo del vba inserisci questo codice:
Codice: Seleziona tutto
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
Personalizza le righe iniziali marcate <<<, mantenendo la sintassi.

Poi nel frame "Progetto-VBAProject" dell' editor delle macro, identifica la voce ThisWorkbook (oppure Questa_cartella_di_lavoro) e fai doppioclick; nel modulo che si aprira' inserisci
Codice: Seleziona tutto
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime NextT, "ReRedo", , False
End Sub


Vai sul foglio su cui lavori e inserisci due pulsanti (la versione piu' semplice la trovi in Ribbon /Sviluppo /Inserisci, Controlli Modulo) e gli associ le macro Avvia e Stoppa (ti verra' chiesto esplicitamente quale macro associare a ogni pulsante, mentre lo crei).
Quando vuoi avviare la storicizzazione del valore in R2 premi Avvia, quando vuoi fermarla premi Stoppa.
La raccolta avverra' ogni 5 secondi; puoi impostare un diverso timing modificando l' istruzione marcata <<<1.
I nuovi valori saranno accodati "a oltranza" in colonna V. Se pero' imposti per myScroll un valore superiore a 0 allora la macro accodera' fino a questo numero di valori, in modalita' "scrolling".
Scrolling significa che dopo un numero massimo di valori, tutti i valori scorrono all' indietro di 1 posizione, e il valore iniziale si perde (il grafico scorrera' verso sinistra); Rolling significa che raggiunto il numero massimo di valori i nuovi valori vanno in posizione 1, poi 2, etc (il grafico sara' come un ecg). Poiche' e' leggermente piu' incasinato da testare lo faremo solo se realmente necessario.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copia valore cella (variabile) in una colonna

Postdi gabry.sal » 11/11/13 17:55

grande funziona benissimo, non sarei mai riuscito ad avvicinarmi ad un risultato del genere.
Non so come ringraziarti quindi
GRAZIE
ciao Gabriele
gabry.sal
Newbie
 
Post: 7
Iscritto il: 06/11/13 11:26


Torna a Applicazioni Office Windows


Topic correlati a "Copia valore cella (variabile) in una colonna":


Chi c’è in linea

Visitano il forum: Nessuno e 14 ospiti