Risultati da 1 a 26 di 26

Discussione: Grafico dinamico che aggiorna nuove date inserite



  1. #1
    L'avatar di Japogi
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Napoli
    Età
    37
    Messaggi
    64
    Versione Office
    Excel 2007
    Likes ricevuti
    1

    Grafico dinamico che aggiorna nuove date inserite

    Salve,
    prendendo spunto da un post aperto il 08/01/2016 di pauljeff76 e prelevando il file postato di Gerardo Zaccalà,
    mi trovo questa situazione:

    - il grafico si è dinamico secondo le date impostate, ma supponendo di avere un elenco di date che aumenta, come faccio a dire alla scrollbar quale è l'ultimo valore?

    Nel file è impostato un elenco composto da 29 date e nella scrollbar imposto i parametri di valore minimo e massimo dove massimo dovrebbe corrispondere all'ultima data disponibile,
    ma se dall'elenco aggiungo un'ulteriore data come rendo dinamico il valore massimo della mia scrollbar?

    questo è il file di Gerardo:
    File Allegati File Allegati

  2. #2
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126

    Re: Grafico dinamico che aggiorna nuove date inserite

    Ciao chiamato??
    ok la formula è dinamica e si adatta perfettamente ad intervalli che si espandono in modo dinamico....
    Il problema che bisogna rendere dinamico la barra di scorrimento, solo che si può fare solo manualmente

    clicca con il mouse destro sulla barra di scorrimento -->>clicca formato controllo e troverai questa finestra di dialogo

    io ho messo il valore massio a 33 anzichè 29

    segui i vari passaggi

    Un saluto

  3. I seguenti utenti hanno dato un "Like"


  4. #3
    L'avatar di Japogi
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Napoli
    Età
    37
    Messaggi
    64
    Versione Office
    Excel 2007
    Likes ricevuti
    1

    Re: Grafico dinamico che aggiorna nuove date inserite

    purtroppo non posso farlo manualmente perchè dovrei aggiornare ogni giorno con la nuova data a più di 100 grafici

    dici che con VBA si può fare?

    grazie

  5. #4
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126

    Re: Grafico dinamico che aggiorna nuove date inserite

    Citazione Originariamente Scritto da Japogi Visualizza Messaggio
    dici che con VBA si può fare?

    grazie
    Credo di si......
    Aspetta che qualcuno si fa sentire... la sezione va bene questa
    ciao

  6. #5
    L'avatar di Japogi
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Napoli
    Età
    37
    Messaggi
    64
    Versione Office
    Excel 2007
    Likes ricevuti
    1

    Re: Grafico dinamico che aggiorna nuove date inserite

    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    Credo di si......
    Aspetta che qualcuno si fa sentire... la sezione va bene questa
    ciao
    Grazie saluti

  7. #6
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215
    Ciao Japogi,

    nel modulo standard definisci:
    Codice: 
    Option Explicit
    
    
    Sub aggiornaindice()
    Application.ScreenUpdating = False
        Range("F5").Formula = "=index(" & Range(Range("A4"), Range("A4").End(xlDown)).Address & ", A2)"
        Range("H5").Formula = "=index(" & Range(Range("A4"), Range("A4").End(xlDown)).Address & ", B2)"
        ActiveSheet.Shapes.Range(Array("Scroll Bar 1")).Select
        With Selection
            .max = Range(Range("A4"), Range("A4").End(xlDown)).Rows.Count
        End With
        ActiveSheet.Shapes.Range(Array("Scroll Bar 2")).Select
        With Selection
            .max = Range(Range("A4"), Range("A4").End(xlDown)).Rows.Count
        End With
        ActiveCell.Select
    Application.ScreenUpdating = True
    End Sub
    Sub scroll1()
    Application.ScreenUpdating = False
        Dim max As Long
        max = Range("B2").Value
        ActiveSheet.Shapes.Range(Array("Scroll Bar 1")).Select
        With Selection
            If .Value >= max Then .Value = max - 1
        End With
        ActiveCell.Select
    Application.ScreenUpdating = True
    End Sub
    Sub scroll2()
    Application.ScreenUpdating = False
        Dim min As Long
        min = Range("A2").Value
        ActiveSheet.Shapes.Range(Array("Scroll Bar 2")).Select
        With Selection
            If .Value <= min Then .Value = min + 1
        End With
        ActiveCell.Select
    Application.ScreenUpdating = True
    End Sub
    nel modulo di classe del foglio definisci:
    Codice: 
    Option Explicit
    
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A:B")) Is Nothing Then
    Call aggiornaindice
    End If
    End Sub

    assegni poi:
    alla barra di scorrimento 1 la macro scroll1
    alla barra di scorrimento 2 la macro scroll2

    saluti
    gg

  8. I seguenti utenti hanno dato un "Like"


  9. #7
    L'avatar di Japogi
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Napoli
    Età
    37
    Messaggi
    64
    Versione Office
    Excel 2007
    Likes ricevuti
    1
    Ciao gg

    ho copiato il tuo codice nel mio file, per il codice nel modulo tutto chiaro, mentre per il modulo di classe per me questo è nuovo, cmq ho creato col tasto destro -> inserisci/modulo di classe e ho copiato il codice
    ho assegnato le macro alle scroll bar
    ed ho cambiato il nome alle scroll bar (nella barra del nome avevo Barra di scorrimento 1 e Barra di scorrimento 2) le ho cambiate prendendo il nome che hai usato per i due array <<< errata corrige
    Correggo: ho cambiato il nome dell'array all'interno dei tuo codice da "Scroll Bar 1" a "Barra di scorrimento 1" ed anche per l'altra

    se fin qui ho fatto bene... le barre di scorrimento sono bloccate sempre a 29 ossia all adata con orario 12:40 non considera le date che ho aggiunto sotto...
    File Allegati File Allegati
    Ultima modifica fatta da:Gerardo Zuccalà; 04/08/16 alle 20:47

  10. #8
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215
    non devi creare un modulo di classe, ma usare il modulo di classe del foglio1.
    clicca in foglio1(foglio1) e copia lì il codice


    Codice: 
    Option Explicit
    
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A:B")) Is Nothing Then
    Call aggiornaindice
    End If
    End Sub
    fai sapere
    saluti gg
    File Allegati File Allegati

  11. I seguenti utenti hanno dato un "Like"


  12. #9
    L'avatar di Japogi
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Napoli
    Età
    37
    Messaggi
    64
    Versione Office
    Excel 2007
    Likes ricevuti
    1
    [risolto]

    perfetto grazie mille gg
    saluti

  13. #10
    L'avatar di Japogi
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Napoli
    Età
    37
    Messaggi
    64
    Versione Office
    Excel 2007
    Likes ricevuti
    1

    Re: Grafico dinamico che aggiorna nuove date inserite

    Scusami gg

    stavo lavorando su un altro grafico, in questo caso non mi serve una data di inizio e fine, devo scorrere solamente una data partendo dalla più recente andando indietro.

    Ho preso di riferimento il codice che mi hai scritto sopra:

    nel foglio dove cambio la data (il foglio si chiama Analisi) inserisco questo codice

    Codice: 
    Option Explicit
    
    
    
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("Foglio1!A:Z")) Is Nothing Then
    Call aggiornaindice
    End If
    End Sub
    mentre in un modulo inserisco solamente il valore dell'indice da calcolare

    Codice: 
    Option Explicit
    
    
    
    
    Sub aggiornaindice()
    Application.ScreenUpdating = False
        Range("B3").Formula = "=index(" & Range(Range("Foglio1!A5"), Range("Foglio1!A5").End(xlDown)).Address & ", A2)"
        ActiveSheet.Shapes.Range(Array("Scroll Bar")).Select
        With Selection
            .max = Range(Range("Foglio1!A5"), Range("Foglio1!A5").End(xlDown)).Rows.Count
        End With
        ActiveCell.Select
    Application.ScreenUpdating = True
    End Sub
    quindi ho eliminato le due macro che ti mi avevi scritto in precedenza, solo che non mi funziona, non mi aggiorna ne indice ne data mi parte dal 01/01/1900

    forse sbaglio i riferimenti dei fogli dove contare i valori presenti?

  14. #11
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Grafico dinamico che aggiorna nuove date inserite

    ...allega un file.
    saluti
    gg

  15. #12
    L'avatar di Japogi
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Napoli
    Età
    37
    Messaggi
    64
    Versione Office
    Excel 2007
    Likes ricevuti
    1

    Re: Grafico dinamico che aggiorna nuove date inserite

    Ultima modifica fatta da:cromagno; 06/08/16 alle 14:31 Motivo: Inserito correttamente link...

  16. #13
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Grafico dinamico che aggiorna nuove date inserite

    prova ad essere un pò più destrittivo...
    non ho capito:
    - dov'è il grafico, nel foglio "Paniere_FTSE_MIB"?
    - quali sono le date e i valori che vuoi scorrere?
    - dov'è lo scroll con cui vuoi scorrere le date?
    - dove sono le celle che identificano gli estremi del grafico? quella che rimane fissa e l'altra che varia?
    - le variabili nome che identificano i valori da graficare al variare dello scroll

    Devi prima impostare il tutto in modo che funzioni manualmente, poi si proverà ad automatizzare ;)

    saluti
    gg

  17. #14
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3222
    Versione Office
    Excel2010
    Likes ricevuti
    628
    Likes dati
    155

    Re: Grafico dinamico che aggiorna nuove date inserite

    Salve a tutti
    Ho letto solo un'oretta fa il 3D e propongo la mia soluzione.
    Se il numero dei dati fosse fisso si potrebbe fare anche senza macro; infatti l'unica macro riguarda la variazione nel numero dei dati che deve essere riportata ai due ScrollBar. Eccola (nel modulo di classe del foglio interessato):
    Codice: 
    Option Explicit
    
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim uRiga As Long
        uRiga = Cells(Rows.Count, 1).End(xlUp).Row
        If uRiga <> Cells(5, 7).Value Then
            Application.EnableEvents = False
                Cells(5, 7) = uRiga
                ActiveSheet.Shapes("Scroll Bar 1").Select
                With Selection
                    .Max = uRiga - 1
                End With
                ActiveSheet.Shapes("Scroll Bar 2").Select
                With Selection
                    .Max = uRiga
                End With
            Application.EnableEvents = True
        End If
        Cells(uRiga, 1).Select
    End Sub
    Nella cella 5,7 (la cella G5) vi è memorizzato il numero dei dati.
    Se può essere utile, allego il file.

    Ciao a tutti,
    Mario
    File Allegati File Allegati

  18. #15
    L'avatar di Japogi
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Napoli
    Età
    37
    Messaggi
    64
    Versione Office
    Excel 2007
    Likes ricevuti
    1

    Re: Grafico dinamico che aggiorna nuove date inserite

    Citazione Originariamente Scritto da ggratis Visualizza Messaggio
    prova ad essere un pò più destrittivo...
    non ho capito:
    - dov'è il grafico, nel foglio "Paniere_FTSE_MIB"?
    - quali sono le date e i valori che vuoi scorrere?
    - dov'è lo scroll con cui vuoi scorrere le date?
    - dove sono le celle che identificano gli estremi del grafico? quella che rimane fissa e l'altra che varia?
    - le variabili nome che identificano i valori da graficare al variare dello scroll

    Devi prima impostare il tutto in modo che funzioni manualmente, poi si proverà ad automatizzare ;)

    saluti
    gg
    Citazione Originariamente Scritto da ggratis Visualizza Messaggio
    prova ad essere un pò più destrittivo...
    non ho capito:
    - dov'è il grafico, nel foglio "Paniere_FTSE_MIB"?
    - quali sono le date e i valori che vuoi scorrere?
    - dov'è lo scroll con cui vuoi scorrere le date?
    - dove sono le celle che identificano gli estremi del grafico? quella che rimane fissa e l'altra che varia?
    - le variabili nome che identificano i valori da graficare al variare dello scroll

    Devi prima impostare il tutto in modo che funzioni manualmente, poi si proverà ad automatizzare ;)

    saluti
    gg
    Ciao gg, scusami hai ragione sarò più descrittivo:
    - non si tratta del grafico ma della data che deve cambiare con la scroll bar che sta nel foglio "ANALISI"
    - le date che scorrono devono corrispondere alle date dei Foglio1, Foglio2, ecc... in pratica nel foglio analisi, per il momento, devo far apparire nella colonna C i valori della colonna E dei Fogli 1,2, ecc ed ho usato questa formula
    =CERCA.VERT(VALORE($B$3);INDIRETTO("Foglio" & A5 & "!A:T");5;0) in modo da trascinare su tutta la colonna la formula
    - la scroll bar è in cella B4 del foglio ANALISI e la casella di controllo è nella cella A2
    in pretica la scroll bar scorre le date in modo da far voisualizzare le informazioni che inserirò nel foglio ANALISI

    avevo utilizzato in precedenza, con l'aiuto nel forum, la casella di selezione controllo moduli, ma non era dinamico avevo impostato io il limite massimo e non era funzionale se dovevo scorrere per date molto remote

    spero che sono stato chiaro

    Grazie infinite, saluti

    il mio file:
    Codice HTML: 
     src="https://www.dropbox.com/s/jdyog3bfttn6wjg/Analisi_FTSEMIB40%20-%20Copia.xlsm?dl=0"

  19. #16
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Grafico dinamico che aggiorna nuove date inserite

    nel modulo di classe del foglio
    Codice: 
    Option Explicit
    Private Sub Worksheet_Activate()
    Call aggiornascroll
    End Sub
    nel modulo standard:
    Codice: 
    Option Explicit
    Sub aggiornascroll()
    Dim min As Long
    Dim mini As Long
    Dim max As Long
    Dim maxi As Long
    Dim i As Long
    
    
    Application.ScreenUpdating = False
    min = Application.WorksheetFunction.min(Range(Range("Foglio1!A5"), Range("Foglio1!A5").End(xlDown)))
    max = Application.WorksheetFunction.max(Range(Range("Foglio1!A5"), Range("Foglio1!A5").End(xlDown)))
    For i = 2 To 41
        mini = Application.WorksheetFunction.min(Range(Range("Foglio" & i & "!A5"), Range("Foglio" & i & "!A5").End(xlDown)))
        If mini < min Then min = mini
        maxi = Application.WorksheetFunction.max(Range(Range("Foglio" & i & "!A5"), Range("Foglio" & i & "!A5").End(xlDown)))
        If maxi > max Then max = maxi
    Next i
    ThisWorkbook.Sheets("ANALISI").Select
    ActiveSheet.Shapes.Range(Array("Scroll Bar")).Select
        With Selection
            .min = 0
            .Value = max - min
            .max = max - min
        End With
    Range("B3").Formula = "=" & min & "+ A2"
    Range("B3").Select
    End Sub
    fai sapere

    saluti
    gg

  20. #17
    L'avatar di Japogi
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Napoli
    Età
    37
    Messaggi
    64
    Versione Office
    Excel 2007
    Likes ricevuti
    1

    Re: Grafico dinamico che aggiorna nuove date inserite

    Citazione Originariamente Scritto da ggratis Visualizza Messaggio
    nel modulo di classe del foglio
    Codice: 
    Option Explicit
    Private Sub Worksheet_Activate()
    Call aggiornascroll
    End Sub
    nel modulo standard:
    Codice: 
    Option Explicit
    Sub aggiornascroll()
    Dim min As Long
    Dim mini As Long
    Dim max As Long
    Dim maxi As Long
    Dim i As Long
    
    
    Application.ScreenUpdating = False
    min = Application.WorksheetFunction.min(Range(Range("Foglio1!A5"), Range("Foglio1!A5").End(xlDown)))
    max = Application.WorksheetFunction.max(Range(Range("Foglio1!A5"), Range("Foglio1!A5").End(xlDown)))
    For i = 2 To 41
        mini = Application.WorksheetFunction.min(Range(Range("Foglio" & i & "!A5"), Range("Foglio" & i & "!A5").End(xlDown)))
        If mini < min Then min = mini
        maxi = Application.WorksheetFunction.max(Range(Range("Foglio" & i & "!A5"), Range("Foglio" & i & "!A5").End(xlDown)))
        If maxi > max Then max = maxi
    Next i
    ThisWorkbook.Sheets("ANALISI").Select
    ActiveSheet.Shapes.Range(Array("Scroll Bar")).Select
        With Selection
            .min = 0
            .Value = max - min
            .max = max - min
        End With
    Range("B3").Formula = "=" & min & "+ A2"
    Range("B3").Select
    End Sub
    fai sapere

    saluti
    gg

    La scroll bar funzione grazie

    ho solo un problema ma non sò se è possibile risolverlo:
    1) la scroll bar si sposta di 1 giorno alla volta senza considerare se la data selezionata dalla scroll bar è presente, per esempio, nel Foglio1
    infatti per le date di sabato e la domenica il foglio "ANALISI" non trova nessun dato e restituisce N/D, ti chiedo se è possibile far spostare la scroll bar seguendo le date presenti nel foglio1, quindi saltando quelle date non presenti
    questo perchè nella mia formattazione condizionale ho impostato la seguente formula
    =SE(VAL.NON.DISP(CERCA.VERT(VALORE($B$3)-1;INDIRETTO("Foglio"&A5&"!A:T");5;0));CERCA.VERT(VALORE($B$3)-3;INDIRETTO("Foglio"&A5&"!A:T");5;0);CERCA.VERT(VALORE($B$3)-1;INDIRETTO("Foglio"&A5&"!A:T");5;0))
    in pratica se trova valore di errore salta di due all'indietro (Domenica e Sabato) ma ho il problema in cui i dati mancano per più di due giorni come la pasqua (Sabato, domenica e lunedi) o in cui la data non è presente in un altro foglio
    (credo per le date mancanti negli altri fogli è un lavoro che posso affrontare successivamente perchè credo molto complicato)
    cmq considerando solo le date del foglio1 volevo far scorrere la barra seguendo solo le date presenti, ma se non si può fare pazienza :-)


    2) Volevo capire il ciclo For che hai usato:
    perchè ti sei fermato a 41? cosa definisce il ciclo for?

    grazie ancora per la pazienza nelle risposta

    ti riallego il file
    https://www.dropbox.com/s/8dq1q0v2l3...opia.xlsm?dl=0

  21. #18
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Grafico dinamico che aggiorna nuove date inserite

    Citazione Originariamente Scritto da Japogi Visualizza Messaggio
    La scroll bar funzione grazie
    2) Volevo capire il ciclo For che hai usato:
    perchè ti sei fermato a 41? cosa definisce il ciclo for?

    grazie ancora per la pazienza nelle risposta
    siccome ho visto che nel file di analisi si andavano a pescare valori dai 41 fogli, perché si possa scorrere tutte le date presenti nei vari fogli, ti serve sapere la data minima e la data massima dell'insieme di tutte le date presenti nei 41 fogli in cui si va a pescare; valori che vengono calcolati all'attivazione del foglio di analisi.

    Per rispondere invece alla prima parte della tua domanda, l'idea che mi viene in mente è quella o di sostituire il controllo di modulo con un controllo activex cui passare solo le date consentite e presenti nei fogli (creando la lista unica ordinata in ordine crescente delle date presenti nei 41 fogli) o creare una nuova macro da associare al click sul controllo modulo in grado di capire se si sta incrementando o decrementando il valore della data e quando la data rientra in un intervallo di valori non consentito assegnare a seconda della "direzione dell'incremento" il giusto valore attuale della scroll bar che fornisca una data consentita.

    Prova a scrivere questa cosa...

    saluti
    GG

  22. #19
    L'avatar di Japogi
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Napoli
    Età
    37
    Messaggi
    64
    Versione Office
    Excel 2007
    Likes ricevuti
    1

    Re: Grafico dinamico che aggiorna nuove date inserite

    Citazione Originariamente Scritto da ggratis Visualizza Messaggio
    siccome ho visto che nel file di analisi si andavano a pescare valori dai 41 fogli, perché si possa scorrere tutte le date presenti nei vari fogli, ti serve sapere la data minima e la data massima dell'insieme di tutte le date presenti nei 41 fogli in cui si va a pescare; valori che vengono calcolati all'attivazione del foglio di analisi.

    Per rispondere invece alla prima parte della tua domanda, l'idea che mi viene in mente è quella o di sostituire il controllo di modulo con un controllo activex cui passare solo le date consentite e presenti nei fogli (creando la lista unica ordinata in ordine crescente delle date presenti nei 41 fogli) o creare una nuova macro da associare al click sul controllo modulo in grado di capire se si sta incrementando o decrementando il valore della data e quando la data rientra in un intervallo di valori non consentito assegnare a seconda della "direzione dell'incremento" il giusto valore attuale della scroll bar che fornisca una data consentita.

    Prova a scrivere questa cosa...

    saluti
    GG
    Chiaro il ciclo For

    Adesso mi metto in questi giorni a studiare bene le possibilità che mi hai suggerito, il mio limite è che sto partendo da zero con VBA non avendo nessuna cultura di programmazione, ma voglio tentarci.

    Ti ringrazio gg

    buona serata

  23. #20
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Grafico dinamico che aggiorna nuove date inserite

    Cambiata strategia, è più lento all'attivazione del foglio di analisi ma ti risolve tutti i problemi perché va a leggere soltanto le date che esistono nei 41 fogli.
    il codice è questo:
    nel modulo standard
    Codice: 
    Option Explicit
    Dim elenco As New Collection
    Sub aggiornascroll()
    Dim i As Long, J As Long, k As Long, riga As Long
    
    
    Application.ScreenUpdating = False
    Set elenco = Nothing
    For i = 1 To 41
        On Error Resume Next
        For riga = 1 To Range(Range("Foglio" & i & "!A5"), Range("Foglio" & i & "!A5").End(xlDown)).Rows.Count
        elenco.Add Range(Range("Foglio" & i & "!A5"), Range("Foglio" & i & "!A5").End(xlDown))(riga).Value, CStr(Range(Range("Foglio" & i & "!A5"), Range("Foglio" & i & "!A5").End(xlDown))(riga).Value)
        Next
        On Error GoTo 0
    Next i
    
    
    For k = 1 To elenco.Count - 1
        For J = k + 1 To elenco.Count
            If elenco(k) > elenco(J) Then Swap elenco, k, J
        Next J
    Next k
    
    
    ThisWorkbook.Sheets("ANALISI").Select
    ActiveSheet.Shapes.Range(Array("Scroll Bar")).Select
        With Selection
            .min = 1
            .Value = elenco.Count
            .max = elenco.Count
        End With
    Range("B2").Select
    End Sub
    Sub Swap(ByVal elenco As Collection, ByVal k As Long, ByVal J As Long)
    elenco.Add elenco(J), , , k
    elenco.Add elenco(k), , , J + 1
    elenco.Remove k
    elenco.Remove J
    End Sub
    
    
    Sub indicedata()
    Range("B3") = elenco(Range("A2").Value)
    End Sub
    nel modulo di classe del foglio ANALISI

    Codice: 
    Option Explicit
    Private Sub Worksheet_Activate()
        Call aggiornascroll
    End Sub
    
    
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("A2")) Is Nothing Then
            Call indicedata
        End If
    End Sub


    con macro indicedata assegnata allo scroll bar e al change della cella A2

    Se modifichi la data non si aggiorna la scroll bar (prova a scrivere il codice, se è una particolarità che non ti piace).

    All'attivazione del foglio di analisi, dovendo scorrere 41 fogli di questi cercare i valori unici nella colonna A ed ordinarli, l'apertura del foglio di analisi risulta lenta.

    fai sapere
    saluti
    gg

  24. I seguenti utenti hanno dato un "Like"


  25. #21
    L'avatar di Japogi
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Napoli
    Età
    37
    Messaggi
    64
    Versione Office
    Excel 2007
    Likes ricevuti
    1

    Re: Grafico dinamico che aggiorna nuove date inserite

    Citazione Originariamente Scritto da ggratis Visualizza Messaggio
    Cambiata strategia, è più lento all'attivazione del foglio di analisi ma ti risolve tutti i problemi perché va a leggere soltanto le date che esistono nei 41 fogli.
    il codice è questo:
    nel modulo standard
    Codice: 
    Option Explicit
    Dim elenco As New Collection
    Sub aggiornascroll()
    Dim i As Long, J As Long, k As Long, riga As Long
    
    
    Application.ScreenUpdating = False
    Set elenco = Nothing
    For i = 1 To 41
        On Error Resume Next
        For riga = 1 To Range(Range("Foglio" & i & "!A5"), Range("Foglio" & i & "!A5").End(xlDown)).Rows.Count
        elenco.Add Range(Range("Foglio" & i & "!A5"), Range("Foglio" & i & "!A5").End(xlDown))(riga).Value, CStr(Range(Range("Foglio" & i & "!A5"), Range("Foglio" & i & "!A5").End(xlDown))(riga).Value)
        Next
        On Error GoTo 0
    Next i
    
    
    For k = 1 To elenco.Count - 1
        For J = k + 1 To elenco.Count
            If elenco(k) > elenco(J) Then Swap elenco, k, J
        Next J
    Next k
    
    
    ThisWorkbook.Sheets("ANALISI").Select
    ActiveSheet.Shapes.Range(Array("Scroll Bar")).Select
        With Selection
            .min = 1
            .Value = elenco.Count
            .max = elenco.Count
        End With
    Range("B2").Select
    End Sub
    Sub Swap(ByVal elenco As Collection, ByVal k As Long, ByVal J As Long)
    elenco.Add elenco(J), , , k
    elenco.Add elenco(k), , , J + 1
    elenco.Remove k
    elenco.Remove J
    End Sub
    
    
    Sub indicedata()
    Range("B3") = elenco(Range("A2").Value)
    End Sub
    nel modulo di classe del foglio ANALISI

    Codice: 
    Option Explicit
    Private Sub Worksheet_Activate()
        Call aggiornascroll
    End Sub
    
    
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("A2")) Is Nothing Then
            Call indicedata
        End If
    End Sub


    con macro indicedata assegnata allo scroll bar e al change della cella A2

    Se modifichi la data non si aggiorna la scroll bar (prova a scrivere il codice, se è una particolarità che non ti piace).

    All'attivazione del foglio di analisi, dovendo scorrere 41 fogli di questi cercare i valori unici nella colonna A ed ordinarli, l'apertura del foglio di analisi risulta lenta.

    fai sapere
    saluti
    gg
    Ciao gg gentilissimo e preziosissima la soluzione che mi hai postato

    quindi cambio l'assegnazione della macro alla scroll bar con indicedata ?
    facendo così mi restituisce Errore di run-time '5': Chiama di routine o argomento non validi alla riga evidenziata in rosso

  26. #22
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Grafico dinamico che aggiorna nuove date inserite

    premetto un'osservazione: se citi tutto il messaggio, la discussione diventa una lenzuolata, o citi delle parti specifiche o non citare nulla ;)

    Citazione Originariamente Scritto da Japogi Visualizza Messaggio
    quindi cambio l'assegnazione della macro alla scroll bar con indicedata ?
    facendo così mi restituisce Errore di run-time '5': Chiama di routine o argomento non validi alla riga evidenziata in rosso
    no devi seguire tutti i passi che ti ho scritto sono diverse cose come vedi: aggiornare il modulo standard, aggiornare il modulo di classe del foglio analisi, aggiornare l'assegnazione della macro alla scroll bar.

    Nella tua cartella hai diversi moduli standard, le modifiche falle nell'ultimo aggiunto.

    saluti
    gg

  27. #23
    L'avatar di Japogi
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Napoli
    Età
    37
    Messaggi
    64
    Versione Office
    Excel 2007
    Likes ricevuti
    1

    Re: Grafico dinamico che aggiorna nuove date inserite

    hai ragione,

    scusami il codice andava bene, ero io che non aspettavo il tempo di lettura perchè non vedevo la rotellina di elaborazione,
    provo a vedere di mettere qualche msgbox di attesa.

    Grazie infinite sei stato gentilissimo

  28. #24
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Grafico dinamico che aggiorna nuove date inserite

    Citazione Originariamente Scritto da Marius44 Visualizza Messaggio
    Salve a tutti
    ciao Marius44,
    scusami se non ti ho risposto, ma il problema cui hai fatto riferimento era già stato risolto! ...poi Japogi, sulla stessa sulla stessa discussione aveva chiesto un'altra cosa, sono sicuro che poi te ne sarai accorto, ma ci tenevo a risponderti.
    saluti
    gg

    @Japogi,
    bene grazie per il riscontro positivo.
    saluti
    gg

  29. #25
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3222
    Versione Office
    Excel2010
    Likes ricevuti
    628
    Likes dati
    155

    Re: Grafico dinamico che aggiorna nuove date inserite

    @ggratis
    Grazie per la risposta.

    Ciao,
    Mario

  30. #26
    L'avatar di Japogi
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Napoli
    Età
    37
    Messaggi
    64
    Versione Office
    Excel 2007
    Likes ricevuti
    1

    Re: Grafico dinamico che aggiorna nuove date inserite

    Salve,

    Marius perdonami anche io non avevo letto il tuo post, mi era sfuggito dai tanti messaggi.

    grazie in ritardo per il tuo intervento nel 3D scusami ancora

    saluti a tutti

Discussioni Simili

  1. Grafico Azionario Dinamico
    Di Marius44 nel forum Domande sui Grafici di Excel
    Risposte: 3
    Ultimo Messaggio: 21/01/17, 10:59
  2. grafico sparkline dinamico. SOS!
    Di hhanson83 nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 26/10/16, 01:33
  3. grafico dinamico
    Di pauljeff76 nel forum Domande sui Grafici di Excel
    Risposte: 3
    Ultimo Messaggio: 11/01/16, 17:05
  4. grafico dinamico per date
    Di Giuliano nel forum Domande sui Grafici di Excel
    Risposte: 12
    Ultimo Messaggio: 03/01/16, 17:37
  5. grafico dinamico
    Di Uistiti63 nel forum Domande sui Grafici di Excel
    Risposte: 1
    Ultimo Messaggio: 09/12/15, 17:54

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •