Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Macro per ordinamento colonne multiple colonna unica

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

[Excel] Macro per ordinamento colonne multiple colonna unica

Postdi Dylan666 » 29/08/12 17:42

Buonasera a tutti, avrei la seguente esigenza: ho un foglio Excel con dei nomi sparsi in varie colonne del foglio (quindi con molte celle vuote tra un nome e l'altro) come in questo screenshot:
Immagine

Vorrei prendere tutte queste celle non-vuote e metterle, ordinate in maniera crescente, nella colonna A una di seguito all'altra (senza celle vuote in mezzo)
Sapete come fare?

PS: nelle celle alcuni nomi sono presenti più volte, potrebbe esserci un "pippo" in A1 ma anche in E3 ad esempio
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Sponsor
 

Re: [Excel] Macro per ordinamento colonne multiple colonna u

Postdi Anthony47 » 29/08/12 21:22

Non hai chiarito se, in caso di presenze multiple dello stesso nominativo nel riepilogo ne vuoi solo una; assumo quindi che ti servano eventualmente duplicati.
Inoltre sono contrario a soluzioni "non controllabili", ad esempio che alterino i dati di partenza rendendo cosi' impossibile da verificare il risultato.
Questa macro fa qualcosa di simile a quanto chiedi col vincolo che ho appena detto: impostato il range con i dati di partenza (istruzione marcata <<<) aggiunge una nuova colonna A in cui, da A2 verso il basso sono riepilogati i nomi presenti:
Codice: Seleziona tutto
Sub dylan()
Dim myRan As String, myRan2 As Range, Cella As Range
'
myRan = "A1:E50"    '<<< L' intervallo da cui pescare
Range("A1").EntireColumn.Insert
Set myRan2 = Range(myRan).Offset(0, 1)
Cells(1, 1) = "Riepilogo"
For Each Cella In myRan2
    If Len(Cella) > 0 Then
        cnt1 = Application.WorksheetFunction.CountIf(myRan2, "<" & Cella.Value)
        cnt2 = Application.WorksheetFunction.CountIf(Range("A:A"), "=" & Cella.Value)
        Cells(cnt1 + cnt2 + 2, 1) = Cella.Value
    End If
Next Cella
Range("A1").Font.Bold = True
Columns("A:A").EntireColumn.AutoFit
End Sub

Se vuoi puoi successivamente eliminare le colonne di partenza lasciando il solo riepilogo.
Warning: prima di rieseguire la macro andrebbe eliminata la colonna aggiunta.

Fai sapere se ok cosi' o necessiti di logiche alternative.
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: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Macro per ordinamento colonne multiple colonna u

Postdi Dylan666 » 30/08/12 09:33

Meraviglioso!
I duplicati li devo tenere e la logica della "colonna aggiunta" è perfetta.
Grazie per le soluzioni sempre ottime e velocissime! :)
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Macro per ordinamento colonne multiple colonna unica":


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite