Réorganisation de données (3/3) : via VBA

Résolution manuelle (1/3) - Avec PowerQuery (2/3) - Avec VBA (3/3)
Bonjour à tous,

Troisième volet sur la réorganisation de données, cette fois-ci en utilisant le VBA.

Le code VBA se trouve en dessous de la vidéo

Cliquez ici pour télécharger le fichier.

Option Explicit

Sub subReorganisationDonnees()
    'L'objectif de ce code est de separer une liste de noms et d'emails
    'pour les reorganiser en deux colonnes

    'Definition de variables
    Dim arrDonneesSource As Variant
    Dim arrDonneesCible As Variant
    Dim lRowSource As Long
    Dim lRowCible As Long
    Dim iColonneCible As Integer

    'Charger les donnees
    arrDonneesSource = ActiveSheet.UsedRange.Value

    'Creer l'array qui va accueillir les donnees finales
    ReDim arrDonneesCible(1 To UBound(arrDonneesSource), 1 To 2) As Variant

    'Boucle de remplissage de l'array final
    iColonneCible = 1
    lRowCible = 1
    For lRowSource = LBound(arrDonneesSource, 1) To UBound(arrDonneesSource, 1)
        If arrDonneesSource(lRowSource, 1) <> "" Then
            arrDonneesCible(lRowCible, iColonneCible) = arrDonneesSource(lRowSource, 1)
            If iColonneCible = 1 Then
                iColonneCible = 2
            Else
                iColonneCible = 1
                lRowCible = lRowCible + 1
            End If
        End If
    Next
    
    'Rapatrier les donnees
    Worksheets.Add
    Range("A1").Value = "Nom"
    Range("B1").Value = "Email"
    Range(Cells(2, 1), Cells(UBound(arrDonneesCible, 1) + 1, 2)).Value = _
        arrDonneesCible
End Sub

Réorganisation de données (2/3) : via PowerQuery

Résolution manuelle (1/3) - Avec PowerQuery (2/3) - Avec VBA (3/3)
Bonjour,

Voici le deuxième épisode de la réorganisation des données.

Cette fois, on va utiliser PowerQuery.

Cliquez ici pour télécharger le fichier.

Comme le processus est un peu long, je donne juste les principales étapes :
importer les données dans PowerQuery
supprimer les Null
copier-coller le résultat
supprimer une ligne sur deux dans les deux tables
ajouter un index pour chaque table
joindre la deuxième table à la première via l'index

Le processus est plus long que la première solution, mais une fois la requête effectuée, l'actualisation pour de nouvelles données se fait en un clic via l'actualisation du tableau final.

Et en vidéo, ca nous donne :

Source :
https://community.powerbi.com/t5/Desktop/Every-other-row-to-new-column/td-p/205313

Réorganisation de données (1/3) : via Excel

Résolution manuelle (1/3) - Avec PowerQuery (2/3) - Avec VBA (3/3)
Dans cette vidéo, on va voir comment passer de ceci à cela en utilisant les fonctionnalités d'excel :

Cliquez ici pour télécharger le fichier.

Les grandes étapes sont :
sélectionner les cellules vides (CTRL+A,touche F5, Cellules, Cellules vides)
supprimer les lignes (CTRL + -)
ajouter la référence appropriée (en B2, la formule est =A1)
copier B1:B2 vers le bas
copier coller en valeur la colonne B
et finalement supprimer les lignes avec une cellule vide en colonne B (touche F5, Cellules, Cellules vides, CTRL + -)

Ca parait long comme ca, mais ca se fait en moins de deux minutes :

A bientôt.

Gaetan