Elenco



  • Elenco
    di Miriam (utente non iscritto) data: 05/02/2011

    Ciao ragazze e ragazzi,
    se nella prima colonna ho un sacco di nomi che si ripeto molte volte come posso fare ad avere un elenco che mi dice i nomi contenuti.
    cioè se fabio è presente 10 volte e marco 5 e...
    mi serve un elenco a fianco o a pagina 2 che mi dici
    fabio,marco .... non mi serve sapere quante volte è ripetuto,mi serve solo l'elenco dei nomi

    tks
    bye



  • di Albatros54 (utente non iscritto) data: 05/02/2011

    Nel codice che ti posto ho considerato che i tuoi dati si trovano nella colonna a.il codice non fa altro che stampare sul foglio2 a partire dalla colonna a un elenco univoco dei dati che tu hai nel foglio1 colonna a
    ciao
    albatros54
     
    Public Sub ElencoUnivoco()
        
        'dichiaro le variabili
        Dim sh1 As Worksheet
        Dim sh2 As Worksheet
        Dim lUltRiga As Long
        Dim lRiga As Long
        Dim lng As Long
        Dim lCol As Long
        Dim col As Collection
        Dim v As Variant
        Dim bln As Boolean
    
        
        lRiga = 1
        Set sh1 = Worksheets("foglio1")
        Set sh2 = Worksheets("foglio2")
        Set col = New Collection
        
        With sh1
            'trovo l'ultima riga con un dato
            'nel foglio Storico
            lUltRiga = .Range("A" & _
                Rows.Count).End(xlUp).Row
                
            'carico i dati nella collection
            On Error Resume Next
            For lng = 1 To lUltRiga
                col.Add .Range("A" & lng), _
                    CStr(.Range("A" & lng))
            Next
            On Error GoTo 0
            'ciclo la collection e
            For Each v In col
                 lCol = 1
                'setto a False la variabile
               bln = False
                    For lng = 1 To lUltRiga
                        'se c'è una corrispondenza
                        If .Range("A" & lng).Value = v Then
                             bln = True
                                sh2.Cells(lRiga, 1).Value = v
                                lCol = lCol + 1
                            End If
                    Next
                    If bln = True Then
                    'scalo di una riga
                    lRiga = lRiga + 1
                End If
            Next
            
        End With
        
        'Set a Nothing delle variabili oggetto
        Set col = Nothing
        Set sh2 = Nothing
        Set sh1 = Nothing
        
    End Sub