Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Prova a vedere questo file di esempio (#5) dove alla UserForm ho aggiunto delle ListBox dedicate alle "intestazioni multiple" e dove ho modificato i comandi nell'evento Initialize della user.
Se poi tu volessi impostare anche la larghezza delle colonne potresti dichiarare delle costanti di testo con le misure desiderate e poi assegnare quelle misure alle rispettive TextBox (sia quelle dedicate a contenere i dati veri e propri che quelle dedicate a contenere le intestazioni multiple). In questo modo avresti i dati sempre allineati.
Questo il nuovo file: File esempio #5
Questo il codice, all'interno della User, che ho modificato per tener conto delle ListBox che fanno da intestazione.
'---
Private Sub UserForm_Initialize()
Dim sLB_Header_MaritimeCrew As Variant
Dim sLB_Header_CertificateOnBoard As Variant
Dim sLB_Header_CertificateExpired As Variant
sLB_Header_MaritimeCrew = Array("Grado", "Cognome e Nome", "Badge Nr")
sLB_Header_CertificateOnBoard = Array("Certificato", "Data Scadenza")
sLB_Header_CertificateExpired = Array("Certificato", "Data Scadenza", "Giorni scadenza")
Set Wb = ThisWorkbook
With Wb
Set Ws1 = .Worksheets(sNameWs1)
Set Ws1Rng1 = Ws1.Range(sWs1Rng1)
Set CR1 = Ws1Rng1.CurrentRegion
NumRowCR1 = CR1.Rows.Count
NumColumnCR1 = CR1.Columns.Count
Set Ws2 = .Worksheets(sNameWs2)
Set Ws2Rng1 = Ws2.Range(sWs2Rng1)
Set CR2 = Ws2Rng1.CurrentRegion
NumRowCR2 = CR2.Rows.Count
NumColumnCR2 = CR2.Columns.Count
End With
DataOdierna = Date
With Me
With .LB_MaritimeCrew
.List() = CR1.Offset(1, 0).Resize(NumRowCR1 - 1, 3).Value
.ColumnCount = 3
End With
With .LB_Header_MaritimeCrew
.Column() = sLB_Header_MaritimeCrew
.ColumnCount = 3
End With
With .LB_Header_CertificateOnBoard
.Column() = sLB_Header_CertificateOnBoard
.ColumnCount = 2
End With
With .LB_Header_CertificateExpired
.Column() = sLB_Header_CertificateExpired
.ColumnCount = 3
End With
.LB_CertificateOnBoard.ColumnCount = 2
.LB_CertificateExpired.ColumnCount = 3
End With
End Sub
'---
p.s. mi sono accorto che avevo nominato la listbox dei certificati scaduti LB_CertificateExipired (con una i dopo la x) e ho provveduto a modificare il nome della TextBox e i relativi riferimenti nel codice con LB_CertificateExpired
p.p.s questo l'aspetto grafico della UserForm con le listbox delle intestazioni colorate di "giallo chiaro"