Risultati da 1 a 13 di 13

Discussione: Colonna con numeri progressivi su celle unite



  1. #1
    L'avatar di jigen
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Vicenza
    Età
    23
    Messaggi
    30
    Versione Office
    2015
    Likes ricevuti
    0
    Likes dati
    0

    Colonna con numeri progressivi su celle unite

    Salve,

    in allegato ho inserito il mio foglio di lavoro di esempio (File_originale) per cercare di essere più chiaro nella spiegazione del mio problema.
    In sostanza sto cercando di utilizzare la funzione tipica di excel per creare una colonna con una lista ordinata di numeri semplicemente trascinando dall'angolino in basso a destra.
    Per capirci:

    A1 -> 1
    A2 -> 2
    ---
    Ora trascinando fino alla cella An dovrei ottenere una lista ordinata di numeri come è noto. Ciò che non mi è chiaro è come fare la stessa cosa nel caso in cui le celle siano unite per ottenere il risultato sperato (vedesi file allegato "Aspettativa").

    Vi è la possibilità di scrivere uno script in VBA per calcolare il numero di righe della colonna A e creare quindi una lista ordinata dalla prima all'ultima cella della colonna, rispettando però l'ordine delle celle unite?

    Grazie in anticipo.
    File Allegati File Allegati

  2. #2
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4

    Re: Colonna con numeri progressivi su celle unite

    ciao,
    e qual'è il criterio con cui unisci/dividi le righe?
    Ogni quante righe e per quante righe, devono essere unite/separate?

    Spiega meglio:
    gli allegati, a parte i valori inseriti in "aspettativa", mi sembrano identici


    Altrimenti le righe unite devono essere sempre di numero uguale e contigue.
    Esempio:
    unisci le righe 3-4-5 poi unisci 6-7-8 e 9-10-11
    e con il quadratino della cella crei una serie con il tasto destro del mouse


    Ciao
    Frank
    Excel 2007 win7 - Ogni Progetto è composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

  3. #3
    L'avatar di jigen
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Vicenza
    Età
    23
    Messaggi
    30
    Versione Office
    2015
    Likes ricevuti
    0
    Likes dati
    0

    Re: Colonna con numeri progressivi su celle unite

    Ciao,
    chiedo scusa se ho caricato un file di esempio fatto al volo, provvedo subito a caricare un esempio più esplicativo.

  4. #4
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4

    Re: Colonna con numeri progressivi su celle unite

    guarda anche la modifica al mio post precedente
    Excel 2007 win7 - Ogni Progetto è composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

  5. #5
    L'avatar di jigen
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Vicenza
    Età
    23
    Messaggi
    30
    Versione Office
    2015
    Likes ricevuti
    0
    Likes dati
    0

    Re: Colonna con numeri progressivi su celle unite

    Certo, ho visto la modifica, ma sto cercando di automatizzare la cosa per il semplice fatto che vado a lavorare su più di 4000 righe e svolgere il lavoro manualmente non è possibile. Un secondo che modifico i file poi comunico i cambiamenti

  6. #6

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1015
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0

    Re: Colonna con numeri progressivi su celle unite

    Ciao Frank,
    Citazione Originariamente Scritto da tanimon Visualizza Messaggio
    Altrimenti le righe unite devono essere sempre di numero uguale e contigue.
    ohibò, e perché il povero VBA dovrebbe imporre una tale limitazione?

    Codice: 
    Sub prog()
      'by scossa
      Dim rng As Range
      Dim cella As Range
      Dim j As Long
      Dim m As Long
      
      Set rng = ActiveSheet.UsedRange.Columns(1)
      For j = 3 To rng.Rows.Count
        m = m + 1
        Set cella = rng.Cells(j, 1)
        cella.Value = m
        j = j + cella.MergeArea.Rows.Count - 1
      Next
      
      Set cella = Nothing
      Set rng = Nothing
        
    End Sub
    ----------Post unito in automatico----------

    Ovviamente se le righe sono molte meglio usare i soliti trucchi (Application.ScreenUpdate etc...)
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  7. #7
    L'avatar di jigen
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Vicenza
    Età
    23
    Messaggi
    30
    Versione Office
    2015
    Likes ricevuti
    0
    Likes dati
    0

    Re: Colonna con numeri progressivi su celle unite

    Certo, ho visto la modifica, ma sto cercando di automatizzare la cosa per il semplice fatto che vado a lavorare su più di 4000 righe e svolgere il lavoro manualmente non è possibile. Un secondo che modifico i file poi comunico i cambiamenti

    Edit

    Ecco qui i file modificati, come si può notare, nel file "File_originale" ho inserito la macro che utilizzo per confrontare il Number della riga e fare il merge delle righe con lo stesso number. Una spiegazione migliore la si può trovare qui: http://www.forumexcel.it/forum/7-dom...ange-adiacenti

    Nel file "Aspettativa" ho inserito (manualmente) ciò che vorrei essere in grado di fare in maniera automatica con uno script vba, ovvero popolare una colonna "Progressivo" con una serie di numeri ordinati che rispettino l'ordine delle celle unite.

    Spero di essermi spiegato meglio


    ----------Post unito in automatico----------

    Salve scossa, gentilmente potresti dare un'occhiata alla mia precedente risposta e controllare i file allegati? Ora provo il tuo script :) Se gentilmente potresti spiegarmi quali sono questi "soliti trucchetti" te ne sarei grato :) magari aggiornando lo script :)
    File Allegati File Allegati

  8. #8
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126

    Re: Colonna con numeri progressivi su celle unite

    Ciao
    lo stesso risultato potresti ottenerlo con lo strumento "Rimuovi duplicati"
    vedi tutorial


  9. #9

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Colonna con numeri progressivi su celle unite

    Ormai l'ho scritta ed è molto simile a quella di @Scossa (che saluto). La pubblico ugualmente:
    Codice: 
    Sub Numera()
    'by Rubik72
    Dim uRiga As Long
    Dim i As Long
    Dim iCount As Long
    
    
    uRiga = Foglio1.UsedRange.Rows.Count
    
    
    For i = 3 To uRiga
        iCount = iCount + 1
        Cells(i, 1) = iCount
        If Cells(i, 1).MergeCells = True Then
            i = i + Cells(i, 1).MergeArea.Rows.Count - 1
        End If
    Next
    End Sub

  10. #10
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4

    Re: Colonna con numeri progressivi su celle unite

    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Ciao Frank,
    ohibò, e perché il povero VBA dovrebbe imporre una tale limitazione?

    Citazione Originariamente Scritto da tanimon Visualizza Messaggio
    Altrimenti le righe unite devono essere sempre di numero uguale e contigue.
    Esempio:
    unisci le righe 3-4-5 poi unisci 6-7-8 e 9-10-11
    e con il quadratino della cella crei una serie con il tasto destro del mouse
    Ciao
    Frank
    Ciao Marco,
    la prova che avevo fatto era lato celle non in Vba e creando una serie,
    con questa operazione, Excel mi imponeva quanto ho evidenziato in rosso.

    In vba avevo visto Merge e Unmerge nel caso si fosse voluto successivamntee disunire le righe della colonna,
    ma non sapendo di qunte righe si stava parlando mi sembrava sufficiente la serie di cui sopra.

    In verità,
    non avevo molto tempo e voglia per dedicarmici......

    Ciao e buona giornata
    Frank
    Excel 2007 win7 - Ogni Progetto è composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

  11. #11
    L'avatar di jigen
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Vicenza
    Età
    23
    Messaggi
    30
    Versione Office
    2015
    Likes ricevuti
    0
    Likes dati
    0

    Re: Colonna con numeri progressivi su celle unite

    Ho provato entrambe lo soluzioni proposte da @Rubik72 (che ringrazio anche per il suggerimento dell'altra volta) e da @scossa, funzionano egregiamente ma popolano tutta la colonna fino alla riga 5XXX, poco male basta eliminare i dati inutili inseriti Per quanto riguarda il tutorial suggerito da @Gerardo Zuccalà, avevo già provato tale strada ma ho altre righe successive alla colonna F che devono mantenere l'ordine e rientrare nell'altezza delle righe a cui è stato applicato il merge (ma giustamente con gli esempi fatti al volo che ho fornito non era possibile esserne a conoscenza).

    ----------Post unito in automatico----------

    Ho corretto lo script come segue in modo da avere nella prima colonna esattamente n righe usate come indice = alle n righe della tabella:

    Codice: 
    Sub Prog_New()
      Dim rng As Range
      Dim cella As Range
      Dim j As Long
      Dim m As Long
     
      Set rng = ActiveSheet.UsedRange.Columns(1)
      Set rngTwo = ActiveSheet.UsedRange.Columns(2)
      For j = 3 To rng.Rows.Count
        
        Set cellaTwo = rngTwo.Cells(j, 2)
    
    
        If Not IsEmpty(cellaTwo.Value) Then
            m = m + 1
            Set cella = rng.Cells(j, 1)
            cella.Value = m
            j = j + cella.MergeArea.Rows.Count - 1
        Else
            Set cella = rng.Cells(j, 1)
            cella.ClearContents
        End If
    
    
      Next
      Set cella = Nothing
      Set rng = Nothing
        
    End Sub

  12. #12
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4

    Re: Colonna con numeri progressivi su celle unite

    ciao,
    ricontrolla bene il codice:

    Citazione Originariamente Scritto da jigen Visualizza Messaggio

    Set rng = ActiveSheet.UsedRange.Columns(1)
    Set rngTwo = ActiveSheet.UsedRange.Columns(2)
    For j = 3 To rng.Rows.Count

    Set cellaTwo = rngTwo.Cells(j, 2)


    Set cella = Nothing
    Set rng = Nothing
    End Sub
    assegni un riferimento a:

    rng, ed alla fine lo "annulli" con Nothing
    cella ed alla fine lo "annulli" con Nothing
    cellaTwo e rngTwo

    ma non lo "annulli" a cellaTwo e rngTwo

    Ciao
    Frank
    Excel 2007 win7 - Ogni Progetto è composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

  13. #13
    L'avatar di jigen
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Vicenza
    Età
    23
    Messaggi
    30
    Versione Office
    2015
    Likes ricevuti
    0
    Likes dati
    0

    Re: Colonna con numeri progressivi su celle unite

    Effettivamente, con queste modifiche può andare o mi conviene eliminare il settaggio a Nothing?

    Codice: 
    Sub Prog_New()
      Dim rng As Range
      Dim cella As Range
      Dim j As Long
      Dim m As Long
     
      Set rng = ActiveSheet.UsedRange.Columns(1)
      Set rngTwo = ActiveSheet.UsedRange.Columns(2)
      For j = 3 To rng.Rows.Count
        
        Set cellaTwo = rngTwo.Cells(j, 2)
    
    
        If Not IsEmpty(cellaTwo.Value) Then
            m = m + 1
            Set cella = rng.Cells(j, 1)
            cella.Value = m
            j = j + cella.MergeArea.Rows.Count - 1
        Else
            Set cella = rng.Cells(j, 1)
            cella.ClearContents
        End If
    
    
      Next
      Set cella = Nothing
      Set rng = Nothing
      Set cellaTwo = Nothing
      Set rngTwo = Nothing
        
    End Sub

Discussioni Simili

  1. Mettere in ordine la colonna date in presenza di Celle unite
    Di Bensisko nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 07/01/17, 17:32
  2. macro per numeri progressivi
    Di AlexB nel forum Domande su Excel VBA e MACRO
    Risposte: 17
    Ultimo Messaggio: 02/11/16, 20:02
  3. [Risolto] Moltiplicare una colonna di numeri per tutti i numeri di un'altra proseguendo in colonna
    Di simo1707 nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 05/10/16, 12:13
  4. Trasportare celle unite a celle singole
    Di Catwoman nel forum Domande su Excel in generale
    Risposte: 21
    Ultimo Messaggio: 24/08/16, 19:00
  5. Somma celle e risultato in celle unite
    Di jigen nel forum Domande su Excel VBA e MACRO
    Risposte: 10
    Ultimo Messaggio: 14/07/16, 10:48

Tag per Questa Discussione

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •