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

PS : Ne manquez aucune nouvelle astuce sur Excel, abonnez-vous à notre newsletter gratuite !
Pour marque-pages : permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.