Richiesta di aiuto



  • Richiesta di aiuto
    di Mario moretti (utente non iscritto) data: 27/02/2011

    Ho creato una listbox con opzione di spunta che viene riempita con un elenco di nomi presenti in foglio di excel.
    con l'istruzione che segue riesco a far scrivere i nomi selezionati nella listibox nel mio foglio di lavoro

    dim ultimarigascritta, contatore
    ultimarigascritta = numriga + 1
    worksheets("giornale cantiere").activate
    for contatore = 0 to 20
    if cmbpersonale.selected(contatore) = true then
    activesheet.cells(ultimarigascritta + 1 + contatore, 3) = cmbpersonale.list(contatore)
    end if
    next contatore

    il problema che non riesco a risolvere è che se i nomi selezionati non sono consecutivi nella listbox ovviamente non sono scrtti consecutivamente nel foglio di lavoro, ma per ogni nome non selezionato nella list viene saltata una cella....
    qualche idea??
    grazie in anticipo

    ps. vedo nell'anteprima del mio che al posto di qualche parentesi e punto nel codice che scritto viene visualizzato il simbolo "cancelleto". tenetene conto



  • di Isy (utente non iscritto) data: 27/02/2011

    Ciao

    mi incuriosiscono le spunte nelle listbox

    puoi allegare un file esempio senza dati sensibili?



  • di Mik (utente non iscritto) data: 27/02/2011

    Ciao,
    se il problema è quello di tenere consecutive le righe d'inserimento ti scrivo velocemnete come risolverlo:
    dovresti aggiungere un altro contatore che s'incrementa +1 all'interno di if then ... e sostitirlo a contatore come riferimento alla riga del foglio.

    così:
     
    dim ultimarigascritta, contatore 
        ultimarigascritta = numriga + 1 
        worksheets("giornale cantiere").activate 
        for contatore = 0 to 20 
            if cmbpersonale.selected(contatore) = true then 
                activesheet.cells(ultimarigascritta + 1 + contatore, 3) = cmbpersonale.list(contatore) 
            end if 
        next contatore



  • di Mik (utente non iscritto) data: 27/02/2011

    Perbacco...ti ho incollato la stessa routine:

    prova questa :

    ciao
     
        Dim ultimarigascritta, contatore, Riga As Long
        ultimarigascritta = numriga + 1
        Worksheets("giornale cantiere").Activate
        For contatore = 0 To 20
            If cmbpersonale.Selected(contatore) = True Then
                ultimarigascritta = ultimarigascritta + 1
                ActiveSheet.Cells(ultimarigascritta, 3) = cmbpersonale.List(contatore)
            End If
        Next contatore



  • di M (utente non iscritto) data: 27/02/2011

    Grazie per il suggerimento mik ma guarda che il contatore cicla da 0 a 20 e quindi sale anche se il nome nella listibox non è spuntato, quindi non credo funzioni....



  • di Mario moretti (utente non iscritto) data: 27/02/2011

    Grazie mik, ora provo



  • di Mario moretti (utente non iscritto) data: 27/02/2011

    Perfetto mik, funziona
    grazie mille.

    per isy:
    ora esco a pranzo , stasera allego un file di esempio.

    ciao a tutti



  • di Mario moretti (utente non iscritto) data: 27/02/2011

    Per isy:
    ho allegatoal post file di esempio.

    saluti