Sub Titres_invest()
With Application
.DisplayAlerts = False
.EnableEvents = False
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
'Déclaration des variables
Dim feuill1 As Worksheet
Dim feuill2 As Worksheet
Dim derniereLigneA As Long
Dim derniereLigneB As Long
Dim i As Long
Dim j As Long
Dim ligneA As Long
Dim resultat As Variant
Dim ligneB As Long
Dim ligneC As Long
Dim cle_recherche1 As String
Dim cle_recherche2 As String
Dim ligneD As Long
'Initialisation des variables de ligne
ligneA = 1
ligneB = 1
ligneC = 1
ligneD = 1
'Définition des feuilles de calcul
Set feuill1 = ThisWorkbook.Sheets("feuil1")
Set feuill2 = ThisWorkbook.Sheets.Add(After:=Feuil1)
feuill2.Name = "feuill2"
'Détermination de la dernière ligne de données dans les colonnes A et B
derniereLigneA = feuill1.Cells(feuill1.Rows.Count, "A").End(xlUp).Row
derniereLigneB = feuill1.Cells(feuill1.Rows.Count, "B").End(xlUp).Row
'Parcours de la colonne A et recherche dans la colonne B ie les titres de la BDA N-1 absents dans la BDA N
For i = 1 To derniereLigneA
'Initialisation de la clé recherchée sur la première cellule de la colonne A
cle_recherche1 = feuill1.Cells(i, "A").Value
resultat = Application.VLookup(cle_recherche1, feuill1.Range("B1:B" & derniereLigneB), 1, 0)
feuill2.Cells(ligneA, "A").Value = resultat
ligneA = ligneA + 1
If IsError(resultat) Then
feuill2.Cells(ligneB, "B").Value = cle_recherche1
ligneB = ligneB + 1
End If
Next i
'Parcours de la colonne B et vérification si chaque valeur est unique non présente dans la colonne A ie les titres de la BDA N absents dans la BDA N-1
For j = 1 To derniereLigneB
'Initialisation de la clé recherchée sur la première cellule de la colonne des titres de la BDA N-1
cle_recherche2 = feuill1.Cells(j, "B").Value
resultat2 = Application.VLookup(cle_recherche2, feuill1.Range("A1:A" & derniereLigneA), 1, 0)
feuill2.Cells(ligneC, "C").Value = resultat2
ligneC = ligneC + 1
If IsError(resultat2) Then
feuill2.Cells(ligneD, "D").Value = cle_recherche2
ligneD = ligneD + 1
End If
Next j
With Application
.DisplayAlerts = True
.EnableEvents = True
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub
Partager