Option Explicit Sub OrdinaCol_A() Dim i As Long, Trig As Long Sheets("Fatture").Select Trig = Cells(Rows.Count, 4).End(xlUp).Row For i = 8 To Trig If Cells(i, 1) = "" Then Cells(i, 1) = Cells(i - 1, 1) End If Next Range("A7:D" & Trig).Select ActiveWorkbook.Worksheets("fatture").Sort.SortFields.Clear ActiveWorkbook.Worksheets("fatture").Sort.SortFields.Add Key:=Range("A8:A" & Trig) _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("fatture").Sort .SetRange Range("A7:D" & Trig) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With For i = 8 To Trig If Cells(i, 2) = "" Then Cells(i, 1).ClearContents Next i Range("A7").Select End Sub
Buona giornata, @gmaxim75.Mi sembra di capire che la struttura che desideri ottenere è quella indicata nell'immagine in allegato; o mi sbaglio?
N.b. Leggo solo ora la risposta di @locatevaresino, la struttura proposta rispecchia quanto proposto nella mia immagine.
In realtà avevo seguito un'altra strada utilizzando Formule e Formattazione condizionale senza VBA, ma la filosofia era quella proposta con VBA.
[Modificato da GiuseppeMN 22/01/2020 10.32]
Aggiungo:L'unico dubbio è l'estensione del File originale; .xls presumo sia riferito a Excel 2000 o Excel 2003.In questo caso credo debba essere rivisto l'ordinamento in VBA; quello proposto credo sia compatibile con versioni superiori a Excel 2003.
A disposizione.
Buon lavoro.
Giuseppe
Option Explicit Sub OrdinaCol_A() Dim i As Long, Trig As Long Sheets("Fatture").Select Trig = Cells(Rows.Count, 4).End(xlUp).Row For i = 8 To Trig If Cells(i, 1) = "" Then Cells(i, 1) = Cells(i - 1, 1) End If Next '''' questo For i = 8 To Trig If Cells(i, 3) = "" Then Cells(i, 1).ClearContents Next i ''''''' Range("A7:D" & Trig).Select ActiveWorkbook.Worksheets("fatture").Sort.SortFields.Clear ActiveWorkbook.Worksheets("fatture").Sort.SortFields.Add Key:=Range("A8:A" & Trig) _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("fatture").Sort .SetRange Range("A7:D" & Trig) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With For i = 8 To Trig If Cells(i, 2) = "" Then Cells(i, 1).ClearContents Next i Range("A7").Select End Sub