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

Ordinare celle numerate, ma non celle vuote

Ultimo Aggiornamento: 24/01/2020 15:43
Post: 2
Registrato il: 11/12/2015
Città: LIZZANELLO
Età: 48
Utente Junior
2007
OFFLINE
21/01/2020 19:23

salve a tutti,

il problema sarebbe relativamente semplice se ci fosse una funzione in excel che permettesse la possibilità di organizzare un gruppo di celle secondo un ordine numerico senza però modificarne l'ordine di disposizione nelle celle stesse... E' più facile a mostrarvi lo schema che cercare di spiegarvi come fare.

vi allego il file...

grazie in anticipo a tutti per la disponibilità😉
[Modificato da gmaxim75 22/01/2020 08:36]
Post: 485
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Senior
2016
OFFLINE
21/01/2020 20:35

Buonasera
in C8 da trascinare in basso

=SE(A8<>"";1;C7+1)
Post: 2
Registrato il: 11/12/2015
Città: LIZZANELLO
Età: 48
Utente Junior
2007
OFFLINE
22/01/2020 08:34

Grazie tante per la risposta, ma mi sa che non sono riuscito ad illustrare bene la situazione...

Allego nuovamente il file con le istruzioni al suo interno così che si possa comprendere meglio il problema.

grazie ancora😉
[Modificato da gmaxim75 22/01/2020 08:38]
Post: 2.228
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Veteran
2007 / 13
OFFLINE
22/01/2020 10:13

ciao

in base al tuo file postato con i dati inseriti la sub() in questione e' pressappoco
da inserire in un modulo standar o nem modulo del foglio

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


riallego il tuo file
dimenticato il file
[Modificato da locatevaresino 22/01/2020 10:14]
Ciao da locate
excel 2007 / 13
Post: 3.679
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
22/01/2020 10:16

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

 

 

 

 


[Modificato da GiuseppeMN 22/01/2020 10:49]

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 3
Registrato il: 11/12/2015
Città: LIZZANELLO
Età: 48
Utente Junior
2007
OFFLINE
22/01/2020 19:30

RISOLTO
Vorrei ringraziarvi oltre che per risoluzione del problema, anche per la CELERITA' con cui questo ha ricevuto risposto.

SIETE SUPERLATIVI nella vostra conoscenza del VBA e molto professional tutti!!!!

grazie ancora per avermi dato quest'altro piccolo frammento di conoscenza... sicuramente non sarà l'ultimo! 🙃🙃

a buon rendere.😉😉😉
Post: 4
Registrato il: 11/12/2015
Città: LIZZANELLO
Età: 48
Utente Junior
2007
OFFLINE
23/01/2020 18:10

Salve a tutti, scusatemi, ma vorrei chiedervi solo una piccola correttiva al codice VBA.
Praticamente è tutto perfettamente funzionante, ma quando eseguo l'ordine numerico dopo che ho cancellato qualche riferimento, le celle vuote non vengono rimpiazzate dai dati susseguenti ma rimangono lì dove sono... Vorrei che si riorganizzassero senza lasciare nessuno spazio contiguo.
Grazie tante ragazzi.

Vi allego il file...
Post: 2.232
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Veteran
2007 / 13
OFFLINE
24/01/2020 10:14

ciao

mi sembra di capire cosi'
in pratica ho aggiunto un altro ciclo for

 
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

Ciao da locate
excel 2007 / 13
Post: 5
Registrato il: 11/12/2015
Città: LIZZANELLO
Età: 48
Utente Junior
2007
OFFLINE
24/01/2020 15:43

grazie tante locatevaresino, mi hai reso il lavoro mooolto più facile.

grazie ancora per la professionalità e disponibilità dimostratomi.

😉😉😉😉🤩
un saluto
Vota:
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 06:21. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com