Bonjour chers développeurs

SVP , j'ai une question

j'ai réalisé une application en VBA en liant plusieurs feuilles , et maintenant je vois que ce n'est pas la bonne manière ,
je voulais séparer les feuilles en utilisant deux classeurs Excel .
changements à effectuer :

j'ai une List comobox dans la feuil1 du classeur1 dont la source maintenant je veux qu'elle récupère la colonne de la feuille 2 Tableau1[zones] du classeur2 et non pas du même classeur comme je l'ai actuellement


Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Private Sub UserForm_Initialize()
 
Set O = Sheets("Feuil2") 'la feuille du classeur 2 
Me.ComboBox1.List = Range("Tableau1[zones]").Value
ComboBox1.Font.Size = 13
End Sub

, et j'ai un bouton Enregistrer que je veux enregistrer le résultat d'une case de la feuil1 nommée score final du classeur 1 vers la Feuil2 du classeur 2 aussi
voici le code :
Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
Sub Enregistrer_Prod()
'Déclaration des variables
Dim c As Range, l As Range
Dim mois As String, zone As String
 
mois = Sheets("Feuil1").Range("B9") ' est la cellule où est affiché le mois dans la feuille 1 classeur 1
zone = Sheets("Feuil1").Range("B5") ' est la cellule où est affiché le nom de la zone dans la feuille 1 classeur1 
 
If Range("B5") = "" Or Range("nbval1SO").Value + Range("nbval1SN").Value + Range("nbval1SNA").Value <> 5 Or Range("nbval2SO").Value + Range("nbval2SN").Value + Range("nbval2SNA").Value <> 6 Or Range("nbval3SO").Value + Range("nbval3SN").Value + Range("nbval3SNA").Value <> 6 Or Range("nbval4SO").Value + Range("nbval4SN").Value + Range("nbval4SNA").Value <> 6 Or Range("nbval5SO").Value + Range("nbval5SN").Value + Range("nbval5SNA").Value <> 6 Then
MsgBox ("Vous n'avez pas saisi toutes les données ! ")
Else
 
Set c = Sheets("Feuil2").Range("TblmoisGlobal").Find(what:=mois, LookIn:=xlValues, LookAt:=xlWhole) '"TblmoisGlobal" est la ligne des mois que je veux dans la feuille 2 du classeur 2
If c Is Nothing Then
MsgBox ("mois " & mois & "introuvable")
Exit Sub
End If
 
Set l = Sheets("Feuil2").Range("Tableau1[zones]").Find(what:=zone, LookIn:=xlValues, LookAt:=xlWhole)'classeur 2 
If l Is Nothing Then
MsgBox ("zone " & zone & "introuvable") ' est la colonne des noms des zones que je veux dans la feuille2 classeur2 
Exit Sub
End If
 
Sheets("Feuil2").Cells(l.Row, c.Column) = Sheets("Feuil1").Range("Scorefinal") ' est la cellule du résultat de la feuil1 
Sheets("Feuil2").Cells(l.Row, c.Column).NumberFormat = "0%"
end sub



Quels sont les changements à effecuer ?
je veux que la feuille du classeur 2 "Feuil2" s'actualise automatiquement même si le classeur est fermé

Merci beaucoup