Incompatibilité du type au niveau de la fonction "Transpose"
Bonjour;
Voilà mon problème : j'ai deux fichiers excel très volumineux (environ 10 000 lignes chacun). J'aimerais extraire les lignes différentes entre les deux fichiers. Sachant que je ne suis pas très doué en excel, comment puis-je m'y prendre
j'ai trouvé le code suivant mais ça donne une erreur lors de la compilation au niveau de la fonction Transpose(DicoF2.keys).
Merci d'avance
Sub ExtractionDifférence()
Application.ScreenUpdating = False
Set F1 = ThisWorkbook
OuvrirFichier1:
Fichier1 = Application.GetOpenFilename(filefilter:="tout,*.*", Title:="Sélection")
If Fichier1 = False Then
MsgBox "aucun fichier sélectionné", vbOKOnly + vbCritical, "fin de procédure "
Exit Sub
End If
ThisWorkbook.FollowHyperlink Fichier1
Fichier1 = ActiveWindow.Caption
OuvrirFichier2:
Fichier2 = Application.GetOpenFilename(filefilter:="tout,*.*", Title:="Sélection")
If Fichier2 = False Then
MsgBox "aucun fichier sélectionné", vbOKOnly + vbCritical, "fin de procédure "
Exit Sub
End If
If Fichier1 = Fichier2 Then
MsgBox "Ce ficier est déjà ouvert"
GoTo OuvrirFichier2
End If
ThisWorkbook.FollowHyperlink Fichier2
Fichier2 = ActiveWindow.Caption
F1.Activate
Set F2 = Windows(Fichier1)
Set F3 = Windows(Fichier2)
ActiveSheet.AutoFilterMode = False
Columns("A:C").ClearContents
Set DicoF2 = CreateObject("Scripting.Dictionary")
Set DicoF3 = CreateObject("Scripting.Dictionary")
F2.Activate
Sheets(1).Activate
DerLigF2 = Sheets(1).Cells.Find("*", , , , xlByColumns, xlPrevious).Row
DerColF2 = Sheets(1).Cells.Find("*", , , , xlByColumns, xlPrevious).Column
For Each C In Range("A2:A" & DerLigF2)
For i = 1 To DerColF2
If Cells(C.Row, i) = "" Then ValCell = "-" Else ValCell = Cells(C.Row, i) & "£"
X = X & ValCell
Next i
DebC = C
C = X
DicoF2.Add C, ""
C = DebC
X = ""
Next C
F1.Activate
[A2].Resize(DicoF2.Count) = Application.Transpose(DicoF2.keys)
F3.Activate
Sheets(1).Activate
DerLigF3 = Sheets(1).Cells.Find("*", , , , xlByColumns, xlPrevious).Row
DerColF3 = Sheets(1).Cells.Find("*", , , , xlByColumns, xlPrevious).Column
For Each C In Range("A2:A" & DerLigF3)
For i = 1 To DerColF3
If Cells(C.Row, i) = "" Then ValCell = "-" Else ValCell = Cells(C.Row, i) & "£"
X = X & ValCell
Next i
DebC = C
C = X
DicoF3.Add C, ""
C = DebC
X = ""
Next C
F1.Activate
[B2].Resize(DicoF3.Count) = Application.Transpose(DicoF3.keys)[/I][/I]
DerLigF1 = Application.WorksheetFunction.Max(DerLigF2, DerLigF3)
Range("C2:C" & DerLigF1).FormulaR1C1 = "=IF(RC[-2]=RC[-1],"""",""Ecart"")"
Range("A1") = Fichier1
Range("B1") = Fichier2
Range("C1") = "'Test"
Columns("A:B").Select
Selection.EntireColumn.AutoFit
Selection.Replace What:="£", Replacement:=" ", LookAt:=xlPart
Range("A1:C1").AutoFilter
ActiveSheet.Range("A1:C" & DerLigF1).AutoFilter Field:=3, Criteria1:="Ecart"
End Sub
Bonjour et bienvenue sur le forum
Tu devrais joindre tes 2 fichiers.
S'ils sont trop gros pour le téléchargement, passe par www.cjoint.com. Tu obtiendras un lien par fichier qu'il te suffira de coller dans ton message.
Bye !