1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
Dim Plage1 As Range, Plage2, Fin_Colonne1, Fin_Colonne2, RngOrigine1, RngOrigine2, RngTemp1, RngTemp2 As Range
Dim Classeur1, Classeur2, Feuille1, Feuille2 As String
Dim i, j, p, q, m, n, Fin_i, Fin_j As Integer
' Selection des colonnes à comparer :
Set Plage1 = Application.InputBox(prompt:="Sélectionner la 1ère colonne à comparer", Title:="Sélection des données", Type:=8)
Classeur1 = ActiveWorkbook.Name 'Variable pour accéder au 1er classeur
Feuille1 = ActiveSheet.Name 'Variable pour accéder à la DCL du 1er classeur
Workbooks(Classeur1).Windows(1).Visible = False
Set Plage2 = Application.InputBox(prompt:="Sélectionner la 2nde colonne à comparer", Title:="Sélection des données", Type:=8)
Classeur2 = ActiveWorkbook.Name 'variable pour accéder au 2nd classeur
Feuille2 = ActiveSheet.Name 'Variable pour accéder à la page du 2nd classeur
Workbooks(Classeur1).Windows(1).Visible = True
'Ajout d'une feuille temporaire pour traiter les données
Dim FeuilleTemp As String
Dim ClasseurFeuilleTemp As String
Sheets.Add
FeuilleTemp = ActiveSheet.Name
ClasseurFeuilleTemp = ActiveWorkbook.Name
i = 1
j = 1
'Copie classeur 1 vers feuille temporaire
Workbooks(Classeur1).Worksheets(Feuille1).Activate
While ActiveSheet.Cells(i, Plage1.Column) = "" And i < 500 ' On s'affranchit des éventuelles lignes vides en début de colonne + une sécurité pour éviter les boucles infinie
i = i + 1
Wend
m = i 'on garde en mémoire la valeur de la première ligne non vide
Fin_i = i - 1 ' initialisation de la valeur du nombre de lignes
While ActiveSheet.Cells(Fin_i + 1, Plage1.Column) <> "" And Fin_i < 500 ' On compte le nombre de ligne remplie de la colonne + sécurité pour éviter une boucle infinie
Fin_i = Fin_i + 1
Wend
Set RngOrigine1 = Worksheets(Feuille1).Range(Cells(m, Plage1.Column), Cells(Fin_i, Plage1.Column))
RngOrigine1.Copy
Workbooks(ClasseurFeuilleTemp).Worksheets(FeuilleTemp).Activate
Fin_Colonne1 = "A" & m & ":A" & Fin_i
Set RngTemp1 = Worksheets(FeuilleTemp).Range(Fin_Colonne1)
RngTemp1.PasteSpecial xlPasteAll |
Partager