Condividi:        

estrarre da elenco excel dati per iniziale

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

estrarre da elenco excel dati per iniziale

Postdi flyingdolphin » 28/09/10 18:11

salve,
vorrei sapere come fare ad estrarre da una tabella tipo: cognome nome ecc.. tutti i cognomi che iniziano per "A" e metterli in una colonna e poi accanto quelli che iniziano per "B" e così via.
grazie
flyingdolphin
Newbie
 
Post: 1
Iscritto il: 28/09/10 17:47

Sponsor
 

Re: estrarre da elenco excel dati per iniziale

Postdi Anthony47 » 01/10/10 13:13

Ciao flyingdolphin e benvenuto nel forum.
Ma e' una cosa che devi fare in continuazione o e' una tantum? Non ti e' sufficiente fare un ordinamento crescente e poi fare Copia /Incolla (o Taglia /Incolla) nelle colonne?
E sui dati messi in colonna ci devi fare delle elaborazioni o sono il risultato finale?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: estrarre da elenco excel dati per iniziale

Postdi Flash30005 » 01/10/10 13:49

Ciao Flyingdolphin e benvenuto nel Forum

leggendo il post mi pongo delle domande da farti come ha ben detto Anthony nel post predente in caso di una tantum la soluzione è sicuramente quella.

Se invece hai moltissimi dati e devi fare questa operazione più volte allora occorre una macro che svolge velocemente questo lavoro
penso che questa fa al caso tuo
Codice: Seleziona tutto
Worksheets("Foglio1").Select
M_Iniz = ""
Iniz = ""
Sheets("Foglio2").Select
Cells.ClearContents
Sheets("Foglio1").Select
UC1 = Worksheets("Foglio1").Range("IV1").End(xlToLeft).Column
UR1 = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
    Cells.Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _
        , Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False _
        , Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
        xlSortNormal
    Range("A1").Select

For RR1 = 1 To UR1

If RR1 = 1 Then
    UC2 = Worksheets("Foglio2").Range("IV1").End(xlToLeft).Column + 1
    Worksheets("Foglio1").Range(Cells(1, 1), Cells(1, UC1)).Copy Destination:=Worksheets("Foglio2").Cells(1, UC2)
    M_Iniz = UCase(Mid(Worksheets("Foglio1").Cells(RR1 + 1, 1).Text, 1, 1))
Else
    Iniz = UCase(Mid(Worksheets("Foglio1").Cells(RR1, 1).Text, 1, 1))
    If M_Iniz <> Iniz Then
        UC2 = Worksheets("Foglio2").Range("IV1").End(xlToLeft).Column + 2
        Worksheets("Foglio1").Range(Cells(1, 1), Cells(1, UC1)).Copy Destination:=Worksheets("Foglio2").Cells(1, UC2)
        UR2 = Worksheets("Foglio2").Range("A" & Rows.Count).End(xlUp).Row + 1
        Worksheets("Foglio1").Range(Cells(RR1, 1), Cells(RR1, UC1)).Copy Destination:=Worksheets("Foglio2").Cells(UR2, UC2)
    Else
        UR2 = Worksheets("Foglio2").Cells(Rows.Count, UC2).End(xlUp).Row + 1
        Worksheets("Foglio1").Range(Cells(RR1, 1), Cells(RR1, UC1)).Copy Destination:=Worksheets("Foglio2").Cells(UR2, UC2)
        M_Iniz = Iniz
    End If
End If
Next RR1
    Sheets("Foglio2").Select
    Columns("A:A").Delete Shift:=xlToLeft
    Range("A1").Select
End Sub

Il foglio dati origine (elenco) dovra chiamarsi "Foglio1" e i dati di Output andranno nel "Foglio2"
Per inserire una macro
dal foglio di excel remi ALT+F11
una volta nel Vba
seleziona dal Menu -> Inserisci -> Modulo
nel quale incollerai l'intero codice postato
ora puoi avviare la macro...

Prova e fai sapere
ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "estrarre da elenco excel dati per iniziale":


Chi c’è in linea

Visitano il forum: Nessuno e 30 ospiti