Excel e gli applicativi Microsoft Office [VBA] Aggiornare grafico prendendo dati da matrice

Login Registrati
Stai vedendo 3 articoli - dal 1 a 3 (di 3 totali)
  • Autore
    Articoli
  • #578 Score: 0 | Risposta

    Nicolò
      Ciao a tutti,
      ho un quesito da risolvere, ci ho provato ma proprio non riesco.
      Ho una matrice a righe fisse (5) per la quale variano di volta in volta le colonne che fisso con un parametro e funzione redim.
      Premetto che ai fini dei calcoli non è una funzione necessaria ma che ho introdotto inizialmente per "togliere" dalla matrice gli "zeri" per non vederli rappresentati graficamente.    -->  matr( 5 , w )
      Ora, dato il grafico "linea" presente nel "Foglio 1", come faccio a plottare i dati della matrice?
      Idealmente ogni riga corrisponde ad una serie di dati.
      Ho provato con SeriesCollection ma non riesco
      Grazie mille
      #579 Score: 0 | Risposta

      Luca73
      Partecipante
        58 pts
        Ciao
        ho provato a buttare giù due righe.
        penso possa funzionare.
        Non l'ho testata in quanto non avevo la matrice.
        Modificala a tuo uso e consumo poi fammi sapere
        Sub Macro3()
        Dim MioGrafico
        Dim Index1 As Integer
        Dim Index2 As Integer
        Dim Matrice '(5,?????) < << Questo arriva da altrove
        Dim Valore As String
        Set MioGrafico = ActiveSheet.Shapes.AddChart
        MioGrafico .ChartType = xlLine
        For Index1 = 1 To 5
            Valore = "{"
            ActiveChart.SeriesCollection.NewSeries
            For Index2 = 1 To UBound(Matrice, 2)
                Valore = Valore & Matrice(Index1, Index2) & ","
            Next
            Valore = Left(Valore, Len(Valore) - 1) & "}"
            MioGrafico.SeriesCollection(Index1).Values = Valore
        Next
        End Sub
        Ciao
        Luca
        • Questa risposta è stata modificata 8 anni, 4 mesi fa da  Luca73.
        • Questa risposta è stata modificata 8 anni, 4 mesi fa da  Luca73.
        #582 Score: 0 | Risposta

        Nicolò
          Ciao Luca,
          grazie mille.
          Siccome sia il grafico, sia le serie erano già esistenti, ho modificato il tuo codice come sotto e funziona.
          Grazie mille per il supporto, come al solito!
          Nicolò
          Sub Macro3()
          Dim Index1 As Integer
          Dim Index2 As Integer
          Dim Matrice (5,w) 'w arriva dalle operazioni prima
          Dim Valore As String
          ActiveSheet.ChartObjects(1).Activate 'è l'unico grafico
          For Index1 = 1 To 5
              Valore = "{"
              ActiveChart.SeriesCollection(Index1).Select
              For Index2 = 1 To UBound(Matrice, 2)
                  Valore = Valore & Matrice(Index1, Index2) & ","
              Next
              Valore = Left(Valore, Len(Valore) - 1) & "}"
              ActiveChart.SeriesCollection(Index1).Values = Valore
          Next
          End Sub
        Login Registrati
        Stai vedendo 3 articoli - dal 1 a 3 (di 3 totali)
        Rispondi a: [VBA] Aggiornare grafico prendendo dati da matrice
        Gli allegati sono permessi solo ad utenti REGISTRATI
        Le tue informazioni: