Salut !
Merci beaucoup pour ton aide !
J'ai adapté un peu et tout semble marcher jusqu’à la ligne :
Wkb3.Worksheets("Master Extraction").Range("A1").Paste
Elle me renvoie une erreur 438 :propriété ou méthode non gérée par cet objet
Merci d'avance de m'éclairer et encore merci pour ta précédente réponse !
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 50 51 52 53 54 55 56 57 58 59 60 61 62
| Private Sub CommandButton5_Click()
Dim Nom1 As String
Dim Nom2 As String
Dim Nom3 As String
Dim i As Long
Dim max1 As Long
Dim max2 As Long
Application.ScreenUpdating = False 'désactive la mise à jour de l'écran
'j'ouvre les trois classeurs
Set Wkb1 = ThisWorkbook ' le classeur actuel
Set Wkb2 = Workbooks.Open("C:\Users\gmellet\Desktop\Fournisseur.xlsx")
Wkb2.Activate
max2 = Range("A65536").End(xlUp).Row
' ** on cherche les fournisseurs ds la colonne "g" sans doublons
Set Dico = CreateObject("Scripting.Dictionary")
For Each c In Wkb2.Sheets("Feuil1").Range("A1:A" & max2) ' colonne g! début en g2 si titre
'on teste si la valeur de la cellule n'est pas déjà dans le dictionnaire
'sinon on créer cette valeur comme nouvelle clé et comme nouvel item
If Not Dico.Exists(c.Value) Then Dico.Add c.Value, c.Offset(0, 0).Value
Next c
n = Dico.items
For i = 1 To Dico.Count - 1 ' donc--> i=1 to le nbre de fourniseur identique
fournisseur = n(i) 'ici on retrouve une seule fois le fournisseur
Wkb1.Activate
Wkb1.Sheets("Master Extraction").Range("$A$3:$BD$37066").AutoFilter Field:=26, Criteria1:=fournisseur
Wkb1.Sheets("Master Extraction").Range("$A$3:$BD$37066").AutoFilter Field:=36, Criteria1:=Array( _
"ACTIF", "INACTIF", "SUSPENDU")
Rows("1:300").Copy
Set Wkb3 = Workbooks.Add 'créér un nouveau classeur
Wkb3.Activate
Wkb3.Sheets("Feuil1").Name = "Master Extraction" ' je pense que tu souhaite nommer la feuille ainsi?
'Workbooks(Nom2).Worksheets("Master Extraction").Range("A1").Select 'pourquoi nom2 si tu active le 3
'Workbooks(Nom2).Worksheets("Master Extraction").Paste
Wkb3.Worksheets("Master Extraction").Range("A1").Paste
' Sauvegarde du document
With Wkb3
.SaveAs "C:\Users\gmellet\Documents\" & fournisseur & ".xls"
.Close
End With
Next i
End Sub |
Partager