Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    4

    Excel - sviluppo righe in colonne

    Buonasera,

    avrei bisogno di un algoritmo che mi possa dare il seguente sviluppo:

    due colonne, un numero variabile di righe.
    Codice Posizione
    Pippo C1,C2,C4-C6,C8
    Pluto R10,R12-R15,R18

    ------------- risultato -----------
    C1 Pippo
    C2 Pippo
    C4 Pippo
    C5 Pippo
    C6 Pippo
    C8 Pippo
    R10 Pluto
    R12 Pluto
    R13 Pluto
    R14 Pluto
    R15 Pluto
    R18 Pluto

    Mi occorre per la mia attività e sarò grato a chi mi risolva questo problema

    Ciao a Tutti

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Poste A e B le tue colonne di origine, in C e D troverai i risultati.

    codice:
    Sub splitta()
    Dim ultimaRiga As Long, k As Long, i As Long, j As Long
    Dim inferiore As Variant, superiore As Variant
    Dim cella As Range
    Dim arr1() As String, arr2() As String
    Dim objRegExp As Object
    Dim prefisso As String
    Set objRegExp = CreateObject("Vbscript.RegExp")
    objRegExp.Pattern = "\d+$"
    ultimaRiga = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
    k = 1
    For Each cella In Range("a1:a" & ultimaRiga) 'tieni A1 se non hai riga di intestazione o metti A2 in caso contrario
        arr1 = Split(cella.Offset(0, 1), ",")
        For i = 0 To UBound(arr1)
          If InStr(arr1(i), "-") = 0 Then
             ActiveSheet.Range("c" & k).Value = cella
             ActiveSheet.Range("d" & k).Value = arr1(i)
             k = k + 1
          Else
             arr2 = Split(arr1(i), "-")
             Set inferiore = objRegExp.Execute(arr2(0))
             Set superiore = objRegExp.Execute(arr2(1))
             prefisso = Left(arr2(0), InStr(arr2(0), inferiore(0)) - 1)
             For j = inferiore(0) To superiore(0)
                ActiveSheet.Range("c" & k).Value = cella
                ActiveSheet.Range("d" & k).Value = prefisso & j
                k = k + 1
             Next j
          End If
        Next i
    Next cella
    Set objRegExp = Nothing
    End Sub

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    4
    Ciao ti ringrazio infinitamente...

    Ho tentato la cosa con diversi amici, presunti professionisti di Excel ma nulla di fatto.

    in pochissimo tempo hai risolto davvero un mio grande problema.

    Te ne sono cosi grato che vorrei esprimerlo oltre un semplice grazie. Indicamene Tu uno.

    Per ora ti do un grosso GRAZIE!!!

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Lieto di esserti stato utile. Buon lavoro.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.