|
Login
  • Page:
  • 1

TOPIC: Impostare parametri a ListBox

Impostare parametri a ListBox 5 years 10 months ago #9046

  • rugantino
  • rugantino's Avatar
  • OFFLINE
  • Gold Boarder
  • Posts: 221
  • Thank you received: 4
  • Karma: 5
Tramite una ComboBox riesco a selezionare un foglio, a rinominare una Label ed a popolare una ListBox.
A seconda del foglio selezionato, la ListBox dovrebbe avere parametri diversi:
Ad esempio se seleziono il Foglio1, “Ospiti”, i parametri della ListBox devono essere:
Me.ListBox1.ColumnCount = 6
Me.ListBox1.ColumnWidths = "120;70;30;60;50;40"

Mentre per il Foglio2 “Rubrica Telefonica”:
Me.ListBox1.ColumnCount = 5
Me.ListBox1.ColumnWidths = "110;68;68;68;150"

E per il Foglio3 “Fornitori”:
Me.ListBox1.ColumnCount = 4
Me.ListBox1.ColumnWidths = "130;90;80;70"

Qualunque foglio seleziono, si rinomina correttamente la Label ma i parametri della ListBox risultano gli ultimi indicati nel codice.

Come posso risolvere?
Allego file di esempio

Grazie
Rugantino


File Attachment:

File Name: ConsultaElenchi.xls
File Size: 105 KB
The administrator has disabled public write access.

Impostare parametri a ListBox 5 years 10 months ago #9047

  • lorenzo1957
  • lorenzo1957's Avatar
  • OFFLINE
  • Platinum Boarder
  • Posts: 849
  • Thank you received: 59
  • Karma: 51
Ciao Rugantino,
che io sappia si possono "impilare" più condizioni IF se ciascuna sta su unica riga (in pratica si dispone una sola azione per ciascuna condizione "IF... then...").
Non è il tuo caso.
Prova quindi a chiudere ciascun IF con End IF, andando a capo per ciascuna disposizione impartita, così:
Private Sub ComboBox1_Click()
Dim scelta 'questa mi sembra superflua, ma magari non è così

If ComboBox1 = "Ospiti" Then
Label1 = " COGNOME E NOME Reparto Camera Entrato il: Solvente Nato/a il"
Me.ListBox1.ColumnCount = 6
Me.ListBox1.ColumnWidths = "120;70;30;60;50;40"
End If

If ComboBox1 = "Rubrica Telefonica" Then
Label1 = " COGNOME E NOME Tel.Abitaz. Cellulare Altro numero Annotazioni"
Me.ListBox1.ColumnCount = 5
Me.ListBox1.ColumnWidths = "110;68;68;68;150"
End If

If ComboBox1 = "Fornitori" Then
Label1 = " DENOMINAZIONE DITTA TELEFONO REFERENTE CELL.Referente"
Me.ListBox1.ColumnCount = 4
Me.ListBox1.ColumnWidths = "130;90;80;70"
End If

Me.ListBox1.List = _
ThisWorkbook.Worksheets(Me.ComboBox1.Text).Range("A2:f110").Value
End Sub

ciao, Lo
Last Edit: 5 years 10 months ago by lorenzo1957.
The administrator has disabled public write access.

Impostare parametri a ListBox 5 years 10 months ago #9048

  • rugantino
  • rugantino's Avatar
  • OFFLINE
  • Gold Boarder
  • Posts: 221
  • Thank you received: 4
  • Karma: 5
Si, “Dim scelta” in effetti è superflua. Faceva parte di un precedente codice che non ha funzionato.

Il Tuo FUNZIONA!!

Grazie Lo
The administrator has disabled public write access.

Impostare parametri a ListBox 5 years 10 months ago #9073

  • Zer0Kelvin
  • Zer0Kelvin's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 11
  • Thank you received: 4
  • Karma: 2
Ciao.
Premesso che comunque il codice postato da Lorenzo è funzionante, quando si devono valutare una serie di condizioni che si escludono reciprocamente (cioè una sola può essere vera), è meglio usare una serie di ElseIf oppure un Select...Case.
Esempio
Private Sub ComboBox1_Click()
Select Case ComboBox1.Value
    Case "Ospiti"
        Label1 = "  COGNOME  E  NOME                   Reparto          Camera       Entrato il:        Solvente         Nato/a il"
        Me.ListBox1.ColumnCount = 6
        Me.ListBox1.ColumnWidths = "120;70;30;60;50;40"
    Case "Rubrica Telefonica"
        Label1 = "  COGNOME  E  NOME                   Tel.Abitaz.       Cellulare              Altro numero       Annotazioni"
        Me.ListBox1.ColumnCount = 5
        Me.ListBox1.ColumnWidths = "110;68;68;68;150"
    Case Is = "Fornitori"
        Label1 = "   DENOMINAZIONE DITTA                    TELEFONO                  REFERENTE                 CELL.Referente"
        Me.ListBox1.ColumnCount = 4
        Me.ListBox1.ColumnWidths = "130;90;80;70"
End Select
Me.ListBox1.List = ThisWorkbook.Sheets(Me.ComboBox1.Text).Range("A2:f110").Value
End Sub
oppure
Private Sub ComboBox1_Click()
With ComboBox1
    If .Value = "Ospiti" Then
        Label1 = "  COGNOME  E  NOME                   Reparto          Camera       Entrato il:        Solvente         Nato/a il"
        Me.ListBox1.ColumnCount = 6
        Me.ListBox1.ColumnWidths = "120;70;30;60;50;40"
    ElseIf .Value = "Rubrica Telefonica" Then
        Label1 = "  COGNOME  E  NOME                   Tel.Abitaz.       Cellulare              Altro numero       Annotazioni"
        Me.ListBox1.ColumnCount = 5
        Me.ListBox1.ColumnWidths = "110;68;68;68;150"
    ElseIf .Value = "Fornitori" Then
        Label1 = "   DENOMINAZIONE DITTA                    TELEFONO                  REFERENTE                 CELL.Referente"
        Me.ListBox1.ColumnCount = 4
        Me.ListBox1.ColumnWidths = "130;90;80;70"
    End If
    Me.ListBox1.List = ThisWorkbook.Sheets(.Value).Range("A2:f110").Value
End With
End Sub
[Excel 2010]
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Dai ad un uomo un pesce e lo avrai sfamato per un giorno; insegnagli a pescare e lo avrai sfamato per sempre. (Confucio)
-Il sonno della ragione genera mostri. (Francisco Goya)
The administrator has disabled public write access.
  • Page:
  • 1
Time to create page: 0.586 seconds