È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Trasposizione automatica di colonne

Ultimo Aggiornamento: 08/12/2016 12:02
Post: 769
Registrato il: 24/04/2004
Città: TERAMO
Età: 63
Utente Senior
2010
OFFLINE
08/12/2016 12:02

Volendo esagerare, si potrebbero passare come parametri diversi dati: Elenco, Tabella, HEaders.
L'importante è che i dati di origine siano in due colonne adiacenti.

Con pochissime modifiche:
Public Sub Incolonna3(ByRef Elenco As Range, ByRef Tabella As Range, Headers As Variant)
Dim lRiga As LongPtr, rTabella As LongPtr, I As LongPtr, Last As LongPtr

Dim nHeaders As Long, pHeader As Long
'==
    nHeaders = UBound(Headers) + 1 'il n° delle intestazioni
    For I = 1 To nHeaders 'scrivo le intestazioni
        Tabella(1, I) = Headers(I - 1)
    Next I
    rTabella = 1 'posizione di riga all'interno della tabella
    lRiga = 1 'posizione di riga all'interno dell'elenco
    Last = Cells(Rows.Count, 1).End(xlUp).Row 'ultima riga dell'elenco
    Do While lRiga < Last 'se non siamo a fine elenco
        lRiga = lRiga + 1 'vediamo la riga successiva
        If Elenco(lRiga, 1) = Headers(0) Then 'se trovo la stringa "Nome"
            rTabella = rTabella + 1 'avanzo di una riga nella tabella
            Tabella(rTabella, 1) = Elenco(lRiga, 2) 'scrivo il dato corrispondente
        Else
            pHeader = HPos(Headers, Elenco(lRiga, 1)) 'cerco la colonna della tabella
            If pHeader > 0 Then 'se pHeader=-1 la cella è vuota, il caso pHeader=1(trattato precedentemente) può essere ignorato
                Tabella(rTabella, pHeader + 1) = Elenco(lRiga, 2) 'scrivo il dato in tabella
            End If
        End If
    Loop
End Sub

Si presume che il primo indice di Headers sia zero.
SP: non testata.
[Modificato da Zer0kelvin 08/12/2016 12:15]
__________________________
[Excel 2010]
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Dai ad un uomo un pesce e lo avrai sfamato per un giorno; insegnagli a pescare e lo avrai sfamato per sempre. (Confucio)
-Il sonno della ragione genera mostri. (Francisco Goya)
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:49. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com