You are here:Home-Domande su Excel VBA e MACRO-Popolare una listbox
Popolare una listbox2021-01-14T17:05:45+01:00

Home Forum Domande su Excel VBA e MACRO Popolare una listbox

Visualizzazione 3 filoni di risposte
  • Autore
    Post
    • AvatarMisterExcel
      Partecipante
        Post totali: 54

        Buonasera a tutti.

        Sto cercando di popolare una listbox con i dati presenti sul foglio dalla colonna AX alla colonna BA, partendo dalla riga 2. In pratica, aprendo la form, la listbox dovrebbe mostrarmi i dati su 4 colonne. Invece mi appare tutto su una colonna. Questo è il codice che sto usando, ma non riesco a capire dove sbaglio:

        Dim wb As Workbook

        Dim SH As Worksheet

        Dim rng1 As Range, rng2 As Range, rng3 As Range, rng4 As Range

        Dim lrow As Long

        Set wb = ActiveWorkbook

        Set SH = wb.ActiveSheet

        lrow = SH.Cells(Rows.Count, “AZ”).End(xlUp).Row

        Set rng1 = SH.Range(“AX2:AX” & lrow)

        Set rng2 = SH.Range(“AY2:AY” & lrow)

        Set rng3 = SH.Range(“AZ2:AZ” & lrow)

        Set rng4 = SH.Range(“BA2:BA” & lrow)

        Set Rng = Union(SH.Range(“AX2:AX” & lrow), SH.Range(“AY2:AY” & lrow), SH.Range(“AZ2:AZ” & lrow), SH.Range(“BA2:BA” & lrow))

        Me.ListBox1.ColumnCount = 4

        Me.ListBox1.List = Rng.Value

        oMax = Application.Max(rng1.Count, rng2.Count, rng3.Count, rng4.Count)

        ReDim Ray(1 To oMax, 1 To Rng.Areas.Count)

        ListBox1.List = Ray

        For Each a In Rng.Areas

        c = c + 1

        For Rw = 1 To a.Rows.Count

        ListBox1.List(Rw – 1, c – 1) = a(Rw)

        Next Rw

        Next a

         

        Grazie come sempre

         

      • AvatarKris_9951
        Partecipante
          Post totali: 199

          Ciao Mr. Excel!

          Ho ricreato un file che dovrebbe rispondere alle tue esigenze:

          https://www.dropbox.com/s/eb8bfk72tg0ybjg/PopolaListBox1.xlsb?dl=0

          Fai sapere (se vuoi) :bye:

          Qui il codice:

          Private Sub UserForm_Initialize()
          Dim rng As Range
          Dim col1 As Long, col2 As Long, col3 As Long, col4 As Long
          col1 = ActiveSheet.Cells(Rows.Count, 50).End(xlUp).Row
          col2 = ActiveSheet.Cells(Rows.Count, 51).End(xlUp).Row
          col3 = ActiveSheet.Cells(Rows.Count, 52).End(xlUp).Row
          col4 = ActiveSheet.Cells(Rows.Count, 53).End(xlUp).Row
          
          Set rng = ActiveSheet.Range("AX2:BA" & Application.WorksheetFunction.Max(col1, col2, col3, col4))
          
          With Me.ListBox1
          .Clear
          .ColumnCount = 4
          .RowSource = rng.Address
          End With
          Set rng = Nothing
          End Sub
        • AvatarMisterExcel
          Partecipante
            Post totali: 54

            Ciao Kris_9951

            Perfetto! Grazie!!!!!

          • AvatarKris_9951
            Partecipante
              Post totali: 199

              Di nulla!

              Alla prox! 👍

          Visualizzazione 3 filoni di risposte
          • Devi essere connesso per rispondere a questo topic.