Grandi matrici



  • Grandi matrici
    di Stetod (utente non iscritto) data: 13/02/2009

    Ciao,
    vorrei sapere cosa ne pensate su come creare grosse matrici dinamiche senza dover scorrere gli intervalli cella per cella.
    ho un esempio ma non so come allegarlo con il problema e la mia soluzione.
    in pratica, invece di scorrere ogni cella dell'intervallo e memorizzarlo in una matrice(), creo una combobox di appoggio e sfrutto la sua list.
    questo rende il tutto molto veloce.
    ne avete una migliore?
    ciao a tutti



  • di R (utente non iscritto) data: 13/02/2009

    Sul post codice fiscale ho appena postato una routine che utilizza matrici da range e viceversa ... dai un occhio e poi se hai dubbi chiedi pure
    saluti
    r





  • di R (utente non iscritto) data: 13/02/2009

    Ti ho scritto un esempio
    saluti
    r
     
    Sub test()
        
    Dim L1 As Long, L2 As Long, L3 As Long, L4 As Long
    Dim Rng1 As Excel.Range
    Dim arr1() As Variant
    
    Set Rng1 = [foglio1!a1:b60000]
    
    arr1 = Rng1.Value
    'viene ridimensionata in automatico
    'la matrice in questo modo:
    'redim arr1(1 to numeroRighe, 1 to numeroColonne)
    
    L2 = UBound(arr1, 1) 'totale righe
    L4 = UBound(arr1, 2) 'totale colonne
    
    For L1 = 1 To L2
        For L3 = 1 To L4
            'scorri tutti gli elementi
            'e se vuoti scrivo pippo
            If IsEmpty(arr1(L1, L3)) Then
                arr1(L1, L3) = "pippo"
            End If
        Next
    Next
    
    'su un nuovo foglio carico su un range
    'i valori appena ricalcolati
    'nota che non è necessario ne disattivare
    'il calcolo automatico ne l'aggiornamento dello
    'schermo, come neppure gli eventi per velocizzare
    'le operazioni ... tutto avviene in memoria
    'e l'operazione è velocissima
    
    Set Rng1 = ThisWorkbook.Worksheets.Add().Range("A1")
    Set Rng1 = Rng1.Resize(L2, L4)
    Rng1.Value = arr1
    
    End Sub