| | 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 | |
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
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. |
|
|