Condividi tramite

Popolare una listbox con dati relativi ad una colonna specifica

Anonimo
2022-07-19T16:32:24+00:00

Buongiorno,

Avrei bisogno di sapere se possibile caricare in una listbox i solo le righe ove esiste un nome e cognome.

Ho una matrice che non posso modificarne la forma ed avrei bisogno di caricare nella listbox solo le righe ove compaiono i nomi.

per farmi capire meglio allego il form in questione.

Se nella colonna "E" esiste un nome dovrei caricare nelle listbox le colonne "C" "D" "E".

Spero si possa fare per poi passare ad uno step successivo.

di seguito il link al mio file.

https://saipem-my.sharepoint.com/personal/mast_santorini_saipem_com/_layouts/15/guestaccess.aspx?docid=1d43f41ff802e47d3b9a88b9bcffd7908&authkey=AYgufIg-CNjJT9X5TG1myT0&expiration=2022-08-18T16%3A31%3A12.000Z&e=bwzLF7

Grazie

Giuseppe

Microsoft 365 e Office | Excel | Per il lavoro | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2022-07-19T17:55:46+00:00

Ciao Giuseppe,

Avrei bisogno di sapere se possibile caricare in una listbox i solo le righe ove esiste un nome e cognome.

Ho una matrice che non posso modificarne la forma ed avrei bisogno di caricare nella listbox solo le righe ove compaiono i nomi.

per farmi capire meglio allego il form in questione.

Se nella colonna "E" esiste un nome dovrei caricare nelle listbox le colonne "C" "D" "E".

Spero si possa fare per poi passare ad uno step successivo.

di seguito il link al mio file.

https://saipem-my.sharepoint.com/personal/mast_santorini_saipem_com/_layouts/15/guestaccess.aspx?docid=1d43f41ff802e47d3b9a88b9bcffd7908&authkey=AYgufIg-CNjJT9X5TG1myT0&expiration=2022-08-18T16%3A31%3A12.000Z&e=bwzLF7

In un modulo di codice standard, al cima del modulo, incolla:

'========>>

Option Explicit

Public arrOut() As Variant

'-------->>

Public Sub Tester()

Dim SH As Worksheet 

Dim Rng As Range 

Dim arrIn As Variant ', arrout() As Variant 

Dim i As Long, j As Long, iRow As Long, iCtr As Long 

Const sFoglio As String = **"STCW MATRIX"** 

Const iPrimaRiga\_Dati As Long = **11** 

Const sColonne As String = **"A:E"** 

Set SH = ThisWorkbook.Sheets(sFoglio) 

With SH 

    iRow = .Range("A" & .Rows.Count).End(xlUp).Row 

    Set Rng = .Range(sColonne).Resize(iRow - iPrimaRiga\_Dati + 1).Offset(iPrimaRiga\_Dati - 1) 

End With 

arrIn = Rng.Value 

For i = 1 To UBound(arrIn) 

    If Not IsEmpty(arrIn(i, 5)) Then 

        iCtr = iCtr + 1 

        ReDim Preserve arrOut(1 To 3, 1 To iCtr) 

        For j = 1 To 3 

            arrOut(j, iCtr) = arrIn(i, j + 2) 

        Next j 

    End If 

Next i 

End Sub

'<<========

Nel modulo di codice di una nuova Userform, Userform1, incolla il seguente codice
'========>>

Option Explicit

Private Sub ListBox1_Click()

End Sub

'-------->>

Private Sub UserForm_Initialize()

Call Tester 

With Me.ListBox1 

    .ColumnCount = 3 

    .Column = arrOut 

End With 

End Sub

'<<========

Nel mio file di prova, **** Giuseppe20220719.xlsm, aprendo la Userforrm, si vede qualcosa del genere:

 [![Immagine](https://learn-attachment.microsoft.com/api/attachments/406e05fd-9007-4c5f-a978-38e048cc73ca?platform=QnA"https://learn-attachment.microsoft.com/api/attachments/d5484314-60f5-48a7-91a0-1fe369d5211a?platform=QnA" rel="ugc nofollow">Immagine

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2022-07-19T19:10:21+00:00

    Ciao Norman,

    come ovvio il codice funziona egreggiamente.

    Non posso scariicare il file di prova perchè causa policy aziendale non accedo a dropbox.

    Non è un problema perchè ho copiato il codice direttamente nel VBA.

    Ho notato una parte del codice sotto forma di testo, devo togliere l'apostrofo o lo lascio così ?

    Dim arrIn As Variant ', arrout() As Variant

    Inoltre vorrei creare altre tre listbox orizzontali vicino a questa principale ove dovrei visualizzare sulla prima listbox orizzontale i corsi mandatory in funzione della persona selezionata, la seconda listbox i corsi mandatory che ha e la data di scadenza e la terza listbox i corsi mandatory che non ha con la voce "To be Done" oppure i corsi che ha ma che scadono nei prossimi 90 giorni oppure già scaduti.

    Anticipatamente ringrazio

    saluti

    Giuseppe

    La risposta è stata utile?

    0 commenti Nessun commento