Risultati da 1 a 9 di 9

Discussione: Sistemare le voci su ListBox



  1. #1
    L'avatar di dautattmaui
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Bari
    Messaggi
    116
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    0

    Sistemare le voci su ListBox

    Buonasera a tutti,

    avrei bisogno di un suggerimento/aiuto inerente a ListBox.


    Dopo svariate prove, sono riuscito a popolare ListBox tramite la scelta del ComboBox.

    Vorrei che le relative voci siano allineate orizzontalmente e non verticalmente.


    Purtroppo non riesco e gradirei un vostro aiuto intervento.


    Vi ringrazio anticipatamente.
    File Allegati File Allegati

  2. #2
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Ciao dautatt...
    Ho visto che hai allegato un file .rar ma visto le piccole dimensione del file che c'è all'interno, avresti potuto allegarlo direttamente come fai .xlsm .xlsx .xls
    risordati che i file sotto i 200kb non hai la necessità di zipparlo
    ciao Grazie

  3. #3
    L'avatar di dautattmaui
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Bari
    Messaggi
    116
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    0
    Perfetto .... grazie a te.

  4. #4

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2810
    Versione Office
    Excel 2013
    Likes ricevuti
    1022
    Likes dati
    979
    Ho apportato le modifiche richieste:
    Codice: 
    Option Compare Text
    Option Explicit
    Public sh As Worksheet
    Dim lRiga As Long
    
    
    Private Sub CboMesi_Change()
        Call CaricaListBox
    End Sub
    
    
    Private Sub CmdEsci_Click()
        Unload Scelta
    End Sub
    
    
    Private Sub CmdStampa_Click()
    
    
    On Error Resume Next
    
    
    Dim lng As Long
    Dim sh As Worksheet
    Dim SelPrint As Integer
    Dim Result As Integer
        
    If CboMesi = "" Then
        MsgBox "Attenzione! non hai evidenziato nulla!"
        CboMesi.SetFocus
        GoTo Uscita
    End If
    
    
    SelPrint = Application.Dialogs(xlDialogPrint).Show
    
    
    If SelPrint = False Then
        Result = MsgBox("Stampa Annullata", vbInformation, "Stampa")
        CboMesi = ""
        ListBox1.Clear
        Exit Sub
    End If
    
    
    Application.ScreenUpdating = False
    Set sh = ThisWorkbook.Worksheets.Add
    
    
    With sh
        For lng = 0 To Me.ListBox1.ListCount - 1
            .Cells(lng + 1, 1).Value = Me.ListBox1.List(lng)
        Next
    End With
    
    
    With Application
        .DisplayAlerts = False
        sh.PrintOut
        sh.Delete
        .ScreenUpdating = True
    End With
    
    
    Set sh = Nothing
        
    Uscita:
    
    
    Sheets("Foglio1").Select
    Application.ScreenUpdating = True
     
    End Sub
    
    
    Private Sub UserForm_Initialize()
    
    
    Dim i As Long
    Set sh = ThisWorkbook.Worksheets("Foglio1")
    With Me.ListBox1
        '.ColumnCount = 1
        'End With
        Call CaricaListBox
        For i = 1 To 12
            CboMesi.AddItem MonthName(i)
        Next
    
    
        Set sh = ThisWorkbook.Worksheets("Foglio1")
        'With Me.ListBox1
        .ColumnCount = 3
            '.ColumnWidths = "995;995"
    End With
        
    Call CaricaListBox
        
    End Sub
    
    
    Private Sub CaricaListBox()
    
    
    On Error Resume Next
    
    
    Dim i As Integer
    Dim lng As Long
    Dim lCont As Long
    Dim h As Integer
    
    
    ListBox1.Clear
     
    lCont = 0
    With sh
        Me.ListBox1.Clear
        lRiga = .Range("D" & .Rows.Count).End(xlUp).Row
        For lng = 4 To lRiga
            If CboMesi = .Cells(i, 5).Value Then
                Me.ListBox1.AddItem .Cells(i, 4).Value
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = .Cells(i, 5).Value
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Format(.Cells(i, 6).Value, "dd/mm/yyyy")
            End If
            i = i + 1
            lCont = lCont + 1
        Next
    End With
        
    End Sub
    In rosso le righe aggiunte
    File Allegati File Allegati

  5. #5
    L'avatar di dautattmaui
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Bari
    Messaggi
    116
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    0
    Grazie Rubik,



    Ho constatato purtroppo un errore sulla stampa, invece di stampare ciò che è stato

    scelto, mi stampa tutto l'elenco ...... potresti aiutarmi a correggere ?


    Grazie e perdonami se ne approfitto.

  6. #6

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2810
    Versione Office
    Excel 2013
    Likes ricevuti
    1022
    Likes dati
    979
    Ecco il codice modificato:
    Codice: 
    Private Sub CmdStampa_Click()
    
    
    On Error Resume Next
    
    
    Dim lng As Long
    Dim sh As Worksheet
    Dim SelPrint As Integer
    Dim Result As Integer
        
    If CboMesi = "" Then
        MsgBox "Attenzione! non hai evidenziato nulla!"
        CboMesi.SetFocus
        GoTo Uscita
    End If
    
    
    SelPrint = Application.Dialogs(xlDialogPrint).Show
    
    
    If SelPrint = False Then
        Result = MsgBox("Stampa Annullata", vbInformation, "Stampa")
        CboMesi = ""
        ListBox1.Clear
        Exit Sub
    End If
    
    
    Application.ScreenUpdating = False
    Set sh = ThisWorkbook.Worksheets.Add
    
    
    With sh
        For lng = 1 To Me.ListBox1.ListCount
            .Cells(lng, 1).Value = Me.ListBox1.List(lng - 1)
            .Cells(lng, 2).Value = Me.ListBox1.List(lng - 1, 1)
            .Cells(lng, 3).Value = Me.ListBox1.List(lng - 1, 2)
        Next
    End With
    
    
    With Application
        .DisplayAlerts = False
        sh.PrintOut
        sh.Delete
        .ScreenUpdating = True
        .DisplayAlerts = True ' riga mancante
    End With
    
    
    Set sh = Nothing
        
    Uscita:
    
    
    Sheets("Foglio1").Select
    Application.ScreenUpdating = True
     
    End Sub
    P.S. Attenzione quando si disattivano i messaggi di errore, dopo bisogna attivarli altrimenti potrebbero causare problemi

  7. #7
    L'avatar di dautattmaui
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Bari
    Messaggi
    116
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    0
    Gent.mo Rubik,


    scusa se ti disturbo nuovamente.

    Riscontro alcuni errori e mi auguro di riuscire a spiegare dettagliatamente, per essere sicuri ho

    cambiato alcune voci affinchè non siano ripetitive.


    Quando evidenzio un mese per es: Luglio, nella listbox appare solo una voce: Mandarino e se
    evidenzio Novembre, appaiono solo i primi tre: (carciofi, aglio e patate).


    considerando che la prima voce ha molti caratteri e viene sovrapposta dal mese, ho inserito

    il seguente parametro: .ColumnWidths = "185;85".

    riguardo la stampa, stampa solo i primi tre e tra l'altro non stampa i mesi ed i giorni.

    Per sicurezza, invio nuovamente il file modificato con la speranza mi possiate aiutare a sistemare ciò che ho

    descritto.

    Grazie e scusate il disturbo.
    File Allegati File Allegati

  8. #8

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2810
    Versione Office
    Excel 2013
    Likes ricevuti
    1022
    Likes dati
    979
    Citazione Originariamente Scritto da dautattmaui Visualizza Messaggio

    Quando evidenzio un mese per es: Luglio, nella listbox appare solo una voce: Mandarino e se
    evidenzio Novembre, appaiono solo i primi tre: (carciofi, aglio e patate).
    era sbagliata la variabile del ciclo For...Next


    Citazione Originariamente Scritto da dautattmaui Visualizza Messaggio

    considerando che la prima voce ha molti caratteri e viene sovrapposta dal mese, ho inserito

    il seguente parametro: .ColumnWidths = "185;85".
    OK


    Citazione Originariamente Scritto da dautattmaui Visualizza Messaggio

    riguardo la stampa, stampa solo i primi tre e tra l'altro non stampa i mesi ed i giorni.
    a me la stampa è ok (anche se si avviano due stampe, una per il foglio1 e l'laltra per l'elenco filtrato)


    ecco la routine completa:
    Codice: 
    Option Compare Text
    Option Explicit
    Public sh As Worksheet
    Dim lRiga As Long
    
    
    Private Sub CboMesi_Change()
        Call CaricaListBox
    End Sub
    
    
    Private Sub CmdEsci_Click()
        Unload Scelta
    End Sub
    
    
    Private Sub CmdStampa_Click()
    
    
    On Error Resume Next
    
    
    Dim lng As Long
    Dim sh As Worksheet
    Dim SelPrint As Integer
    Dim Result As Integer
        
    If CboMesi = "" Then
        MsgBox "Attenzione! non hai evidenziato nulla!"
        CboMesi.SetFocus
        GoTo Uscita
    End If
    
    
    SelPrint = Application.Dialogs(xlDialogPrint).Show
    
    
    If SelPrint = False Then
        Result = MsgBox("Stampa Annullata", vbInformation, "Stampa")
        CboMesi = ""
        ListBox1.Clear
        Exit Sub
    End If
    
    
    Application.ScreenUpdating = False
    Set sh = ThisWorkbook.Worksheets.Add
    
    
    With sh
         For lng = 1 To Me.ListBox1.ListCount
            .Cells(lng, 1).Value = Me.ListBox1.List(lng - 1)
            .Cells(lng, 2).Value = Me.ListBox1.List(lng - 1, 1)
            .Cells(lng, 3).Value = Me.ListBox1.List(lng - 1, 2)
        Next
        .Range("A1").CurrentRegion.Columns.AutoFit 'riga aggiunta
    End With
    
    
    
    
    With Application
        .DisplayAlerts = False
        sh.PrintOut
        sh.Delete
        .ScreenUpdating = True
        .DisplayAlerts = True ' riga mancante
    End With
    
    
    Set sh = Nothing
        
    Uscita:
    
    
    Sheets("Foglio1").Select
    Application.ScreenUpdating = True
     
    End Sub
    
    
    Private Sub UserForm_Initialize()
    
    
    Dim i As Long
    Set sh = ThisWorkbook.Worksheets("Foglio1")
    With Me.ListBox1
        
        Call CaricaListBox
        For i = 1 To 12
            CboMesi.AddItem MonthName(i)
        Next
    
    
        Set sh = ThisWorkbook.Worksheets("Foglio1")
        .ColumnCount = 3
        .ColumnWidths = "185;85"
    End With
        
    Call CaricaListBox
        
    End Sub
    
    
    Private Sub CaricaListBox()
    
    
    On Error Resume Next
    
    
    'Dim i As Integer
    Dim lng As Long
    Dim lCont As Long
    Dim h As Integer
    
    
    ListBox1.Clear
     
    lCont = 0
    With sh
        Me.ListBox1.Clear
        lRiga = .Range("D" & .Rows.Count).End(xlUp).Row
        For lng = 4 To lRiga
            If CboMesi = .Cells(lng, 5).Value Then 'variabile sostituita i con lng
                Me.ListBox1.AddItem .Cells(lng, 4).Value
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = .Cells(lng, 5).Value
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Format(.Cells(lng, 6).Value, "dd/mm/yyyy")
            End If
            'i = i + 1
            lCont = lCont + 1 'A cosa serve?
        Next
    End With
        
    End Sub

  9. #9
    L'avatar di dautattmaui
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Bari
    Messaggi
    116
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    0
    Grazie mille Rubik :208: funziona tutto alla perfezione.
    Buona serata e alla prox.

Discussioni Simili

  1. Popolare la ListBox dal ComboBox scegliendo le voci.
    Di Pacifico437 nel forum Domande su Excel VBA e MACRO
    Risposte: 7
    Ultimo Messaggio: 12/03/17, 15:43
  2. [Risolto] Sistemare grafico rendimenti azionari
    Di marco.laratr nel forum Domande sui Grafici di Excel
    Risposte: 2
    Ultimo Messaggio: 11/01/17, 15:43
  3. Sistemare testo per non sovrapporsi all'immagine di intestazione / piè di pagina
    Di Cristina1 nel forum Domande su Excel VBA e MACRO
    Risposte: 6
    Ultimo Messaggio: 13/12/16, 16:50
  4. Voci con il mese scelto in ListBox
    Di dautattmaui nel forum Domande su Excel VBA e MACRO
    Risposte: 12
    Ultimo Messaggio: 27/01/16, 10:48
  5. Excel 2010 dalla listbox scegliere delle voci per la stampa
    Di Pacifico437 nel forum Domande su Excel VBA e MACRO
    Risposte: 14
    Ultimo Messaggio: 23/12/15, 14:15

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •