Excel Forum Per condividere esperienze su Microsoft Excel

Ordinare celle numerate, ma non celle vuote

  • Messaggi
  • OFFLINE
    gmaxim75
    Post: 2
    Registrato il: 11/12/2015
    Città: LIZZANELLO
    Età: 48
    Utente Junior
    2007
    00 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]
  • OFFLINE
    DANILOFIORINI
    Post: 485
    Registrato il: 15/01/2016
    Città: ROMA
    Età: 51
    Utente Senior
    2016
    00 21/01/2020 20:35
    Buonasera
    in C8 da trascinare in basso

    =SE(A8<>"";1;C7+1)
  • OFFLINE
    gmaxim75
    Post: 2
    Registrato il: 11/12/2015
    Città: LIZZANELLO
    Età: 48
    Utente Junior
    2007
    00 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]
  • OFFLINE
    locatevaresino
    Post: 2.228
    Registrato il: 21/03/2008
    Città: LOCATE VARESINO
    Età: 76
    Utente Veteran
    2007 / 13
    00 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
  • OFFLINE
    GiuseppeMN
    Post: 3.679
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 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
  • OFFLINE
    gmaxim75
    Post: 3
    Registrato il: 11/12/2015
    Città: LIZZANELLO
    Età: 48
    Utente Junior
    2007
    00 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.😉😉😉
  • OFFLINE
    gmaxim75
    Post: 4
    Registrato il: 11/12/2015
    Città: LIZZANELLO
    Età: 48
    Utente Junior
    2007
    00 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...
  • OFFLINE
    locatevaresino
    Post: 2.232
    Registrato il: 21/03/2008
    Città: LOCATE VARESINO
    Età: 76
    Utente Veteran
    2007 / 13
    00 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
  • OFFLINE
    gmaxim75
    Post: 5
    Registrato il: 11/12/2015
    Città: LIZZANELLO
    Età: 48
    Utente Junior
    2007
    00 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