Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

Macro excel per ordinare foglio Opzioni
jimmysalvo
Inviato: Friday, January 18, 2013 1:24:55 PM
Rank: Newbie

Iscritto dal : 1/18/2013
Posts: 3
Ciao ragazzi,

Sono alla ricerca di due macro per ordinare un foglio in due diversi modi:

1) ordinare tutto il foglio A2:E2000 (tutto pololato) in funzione della colonna A (da A2 a scendere, ci sono le intestazioni). La colonna è popolata da valori alfanumerici (A1000, TIC323, LS10) e vorrei ordinarli come se fossero solo numeri (quindi, a1000 come se fosse 1000, tic323 come se fosse 323, e cosi via)

2) l'altra macro invece dovrebbe ordinare sempre lo stesso foglio ma in funzione della colonna B (da B2 a scendere, ci sono le intestazioni). Sono sempre valori alfanumerici, però in questo caso l'ordine dovrebbe essere quello classico di un valore alfanumerico.

Spero qualcuno possa aiutarmi, ho provato a seguire un esempio che si trova nel forum ma non funziona.

Grazie in anticipo

Salvo
Sponsor
Inviato: Friday, January 18, 2013 1:24:55 PM

 
a10n11
Inviato: Friday, January 18, 2013 4:25:48 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
1) ordinamento della parte numerica dei valori in colonna A:

NB. Utilizza la colonna C per estrarre la parte numerica da ordinare , si presume che la colonna C sia vuota

Sub ordinanumeri()
Sheets("foglio1").Select
Set Rng = Range("A2:A2000")
For Each cl In Rng
If cl.Value = "" Then Exit For
For i = 1 To Len(cl)
If IsNumeric(Mid(cl, i, 1)) Then
miovalore = miovalore & Mid(cl, i, 1)
End If
Next
Cells(cl.Row, 3).Value = miovalore
miovalore = ""
Next
Set Rng = Nothing
Set rng2 = Range("a2:c2000")
rng2.Sort Key1:=Range("c2"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
Columns("C:C").ClearContents
Set rng2 = Nothing
End Sub




2) ordinamento normale per colonna B

Sub ordinaB()
Set rng2 = Range("a2:b2000")
rng2.Sort Key1:=Range("b2"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
set rng2 =nothing
End Sub

saluti
Giap





jimmysalvo
Inviato: Friday, January 18, 2013 8:26:47 PM
Rank: Newbie

Iscritto dal : 1/18/2013
Posts: 3
Ti ringrazio tanto per la risposta, le macro funzionano, però il mio foglio è pieno fino alla colonna E. E' possibile spostare la colonna di appoggio sulla G per esempio? e far si che si riordinano tutte le colonne restanti (quindi dalla A alla E)?
a10n11
Inviato: Saturday, January 19, 2013 10:35:35 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
jimmysalvo ha scritto:
Ti ringrazio tanto per la risposta, le macro funzionano, però il mio foglio è pieno fino alla colonna E. E' possibile spostare la colonna di appoggio sulla G per esempio? e far si che si riordinano tutte le colonne restanti (quindi dalla A alla E)?


salve
modifica in questo modo

Sub ordinanumeri()
Sheets("foglio1").Select
Set Rng = Range("A2:A2000")
For Each cl In Rng
If cl.Value = "" Then Exit For
For i = 1 To Len(cl)
If IsNumeric(Mid(cl, i, 1)) Then
miovalore = miovalore & Mid(cl, i, 1)
End If
Next
Cells(cl.Row, 7).Value = miovalore
miovalore = ""
Next
Set Rng = Nothing
Set rng2 = Range("a2:G2000")
rng2.Sort Key1:=Range("G2"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
Columns("G:G").ClearContents
Set rng2 = Nothing
End Sub

saluti
Giap

jimmysalvo
Inviato: Monday, January 21, 2013 9:35:50 AM
Rank: Newbie

Iscritto dal : 1/18/2013
Posts: 3
Grazie nuovamente,

Il foglio funziona benissimo ma avevo un problema. La macro si "ferma" quando incontra una cella vuota, ho risolto eliminando la 5a riga ( If cl.Value = "" Then Exit For ). Pensi possa darmi qualche altro problema?
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.