Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Macro ordinare righe in modo crescente

Ultimo Aggiornamento: 14/07/2018 10:58
Post: 101
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
08/07/2018 13:22

Buona Domenica a tutti.Inserisco il file forum.xlsx.Mi servirebbe gentilmente,una macro che nel foglio3 mi blocca le colonne (A,B,H,I,J,K),come vedete per ogni riga nelle colonne C D E F ho dei numeri ma non sono riordinati in modo crescente.La macro a questo punto deve fare un lavoro simile all'esempio colorato in giallo e creato da me manualmente ma i numeri devono essere riordinati
o riscritti come volete voi nelle colonne C D E F direttamente li.Ho fatto un'esempio nel foglio4.Grazie Matteo
Post: 5.446
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
09/07/2018 07:22

Ordina dati
Ciao Matteo, si tratta di un ordinamento orizzontale, ho fatto creare la macro dal generatore di macro, ed ho aggiunto alcune righe per creare il ciclo ordinando tutto l'elenco.

questa la macro generata e modificata,

Sub Macro1()
Dim x 'aggiunta
'
' Macro1 Macro
'

'
For x = 1 To Cells(Rows.Count, 1).End(xlUp).Row 'aggiunta
    Range("C" & x & ":F" & x).Select
    ActiveWorkbook.Worksheets("Foglio3").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Foglio3").Sort.SortFields.Add Key:=Range("C" & x & ":F" & x _
        ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Foglio3").Sort
        .SetRange Range("C" & x & ":F" & x)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlLeftToRight
        .SortMethod = xlPinYin
        .Apply
    End With
    'eliminare nel caso non servono trascritti nelle colonne H-K
    Cells(x, 8) = Cells(x, 3)
    Cells(x, 9) = Cells(x, 4)
    Cells(x, 10) = Cells(x, 5)
    Cells(x, 11) = Cells(x, 6)
    'fine elimina
Next x 'aggiunta
Cells(1, 1).Select 'aggiunta
End Sub


se l'ordinamento basta sul posto basta eliminare le righe che ho segnato.

Ciao By Sal [SM=x423051]

se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 3.075
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
09/07/2018 09:53

Buona giornata, Matteo;
la soluzione è quella che ha proposto @by sal, che saluto, l'unica cosa che mi permetto di osservare che, se la versione di Excel che utilizzi è Excel 2003, come indicato nel tuo profilo, il Codice VBA dovrebbe essere una cosa di questo genere:
Option Explicit

Sub Sort_2000_2003()
Application.ScreenUpdating = False
Dim URc As Long, x As Long
Const Cln As Byte = 6
        
    URc = Range("A" & Rows.Count).End(xlUp).Row
        For x = 1 To URc
            Range(Cells(x, 3), Cells(x, Cln)).Sort Key1:=Cells(x, 3), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
        Next x
Application.ScreenUpdating = True
    Cells(1, 3).Select
End Sub

In ogni caso, visto che il File che hai allegato ha estensione .xlsx, forse la versione di Excel che utilizzi è meno datata.



Buon lavoro.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 101
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
14/07/2018 10:58

Ho provato solo ora le 2 macro vanno perfettamente tutte due. Ringrazio molto e saluto GiuseppeMN e Sal .Buon Weekend a tutti. [SM=x423017]
Vota: 15MediaObject5,0034 3
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 22:54. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com