Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Creare un elenco da altri 4 elenchi

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Creare un elenco da altri 4 elenchi

Postdi erryrox » 31/05/12 08:47

Buongiorno, vi allego il file del mio problema.

Vi sono 4 colonne che contengono degli elenchi. Ogni elenco contiene o dei nomi o "0". Io dovrei riuscire a creare un nuovo elenco dove vengono messi in fila tutti e 4 gli elenchi. Questo nuovo "elenco totale" deve contenere solo i nomi presenti negli elenchi delle 4 colonne e non gli "0".

Va benissimo sia una soluzione tramite macro o tramite formule.
Vi ringrazio in anticipo, so già che mi aiuterete in qualche modo :D:D

http://www.scribd.com/doc/95400342/ELENCO-TOTALE
erryrox
Utente Junior
 
Post: 60
Iscritto il: 16/04/12 14:31

Sponsor
 

Re: Creare un elenco da altri 4 elenchi

Postdi Anthony47 » 31/05/12 11:39

Se non ti interessa mantenere prima i dati della prima colonna e poi le altre colonne allora potrebbe bastare questa macro, che lavora riga dopo riga:
Codice: Seleziona tutto
Sub listaunica()
DestAdr = "K1"    '<<< Dove vuoi ricreare l' elenco
For Each cella In Range("elencone")
aaa = cella.Value
If cella.Value > 0 Then Range(DestAdr).Offset(20000).End(xlUp).Offset(1, 0) = cella.Value
Next cella
Range(DestAdr).Offset(20000).End(xlUp).Offset(1, 0) = "End"
End Sub

Questa invece lavora colonna dopo colonne:
Codice: Seleziona tutto
Sub listaunica2()
Dim CCell As Range
DestAdr = "K1"    '<<< Dove vuoi ricreare l' elenco
For J = 1 To Range("elencone").Columns.Count
    For I = 1 To Range("elencone").Rows.Count
        Set CCell = Range("elencone").Range("A1").Offset(I - 1, J - 1)
        aaa = CCell.Value
        If CCell.Value > 0 Then Range(DestAdr).Offset(20000).End(xlUp).Offset(1, 0) = CCell.Value
    Next I
Next J
Range(DestAdr).Offset(20000).End(xlUp).Offset(1, 0) = "End"
End Sub

Vedi tu; in ambedue "elencone" e' l' intervallo corrispondente agli elenchi iniziali (o assegni questo nome all' intervallo, o metti nella macro l' intervallo stesso nel formato esemplificativo "A2:D100").

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Creare un elenco da altri 4 elenchi

Postdi erryrox » 31/05/12 12:59

perfetto anthony, ho usato il secondo codice, in quanto più adatto al mio caso.

Visto che funziona cosi bene, chiedo se fosse possibile modificare il codice in modo che se aggiungo altri nomi agli elenchi A,B,C,D questi poi mi vengono inseriti in coda all'elenco totale precedentemente creato.

Ora se aggiungo altri nomi e rilancio la sub, mi rinserisce in coda all'elenco già creato tutti i nomi, mentre io vorrei solo quelli "nuovi". Concettualmente, penso che ci vorrebbe un comando all'interno del ciclo che controlla se nell'elenco c'è già quel nome.

come posso fare?? grazie
erryrox
Utente Junior
 
Post: 60
Iscritto il: 16/04/12 14:31

Re: Creare un elenco da altri 4 elenchi

Postdi erryrox » 31/05/12 13:24

Ho provato ad inserire queste modifiche:

Codice: Seleziona tutto
Sub listaunica2()
Dim CCell As Range
DestAdr = "E4"
Set Intervallo = Range("E4:E200")    'intervallo dove finisce l'elenco totale
For J = 1 To Range("A4:D60").Columns.Count    'intervallo dei 4 elenchi iniziali
    For I = 1 To Range("A4:D60").Rows.Count
        Set CCell = Range("A4:D60").Range("A1").Offset(I - 1, J - 1)
        aaa = CCell.Value
        If CCell.Value <> 0 Then
        If Application.CountIf(Intervallo, CCell.Value) = 0 Then  ' codice che controlla la presenza del nome nell'intervallo
        Range(DestAdr).Offset(20000).End(xlUp).Offset(1, 0) = CCell.Value
        End If
        End If
    Next I
Next J
Range(DestAdr).Offset(20000).End(xlUp).Offset(1, 0) = ""
End Sub



Sembra funzionare, ma se avete modifiche da propormi fammi sapere :)
erryrox
Utente Junior
 
Post: 60
Iscritto il: 16/04/12 14:31

Re: Creare un elenco da altri 4 elenchi

Postdi Anthony47 » 31/05/12 21:33

In genere se funziona va bene, in questo caso direi che la soluzione adottata e' ottima.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Creare un elenco da altri 4 elenchi":


Chi c’è in linea

Visitano il forum: Nessuno e 15 ospiti