Option Explicit
Sub supervisor()
Dim FICHIER_APPEL As String, FICHIER_CONTREAPPEL As String, FICHIER_CONTREAPPEL_COMPLET As String
Dim Ligne As Long, DL As Long
Dim Le_FichierOUVERT, Le_FICHIER, c
Dim fichierOUVERT As String, Chemin As String, Nom_Appelant As String
Application.ScreenUpdating = False
'****************************************************************************************************************
'1re étape : déclare les variables de fichiers et de chemins à utiliser
'****************************************************************************************************************
Chemin = "J:\ESPACE GSM\EN COURS\CONTREAPPEL\"
FICHIER_APPEL = ThisWorkbook.Name
FICHIER_CONTREAPPEL = "SuiviContreAppel.xls"
FICHIER_CONTREAPPEL_COMPLET = Chemin & FICHIER_CONTREAPPEL
'****************************************************************************************************************
'2e étape : vérifie si le fichier ContreAppel est déjà ouvert. Si c'est le cas, on ne l'ouvre pas de nouveau.
' Si ce n'est pas le cas, alors on l'ouvre
'****************************************************************************************************************
fichierOUVERT = "non"
For Each Le_FichierOUVERT In Application.Workbooks 'On parcours chacun des classeurs Excel ouverts.
If Le_FichierOUVERT.Name = FICHIER_CONTREAPPEL Then 'Vérifie s'il n'est pas déjà ouvert.
fichierOUVERT = "oui" 'Switch
Exit For 'Sort de la boucle
End If
Next Le_FichierOUVERT 'Passe au prochain fichier
If fichierOUVERT <> "oui" Then 'Une fois la boucle complétée, si la Switch n'a pas été tournée à oui, alors ouvre le fichier
Set Le_FICHIER = Workbooks.Open(Filename:=FICHIER_CONTREAPPEL_COMPLET, UpdateLinks:=0)
End If
'****************************************************************************************************************
'3e étape : Effectuer une recherche dans le fichier ContreAppel pour trouver la bonne ligne à renseigner. Pour ce
' faire, on va utiliser une recherche qui se base sur le nom de l'appelant.
'****************************************************************************************************************
Workbooks(FICHIER_APPEL).Activate
Nom_Appelant = Range("P12").Value 'Met dans une variable le nom de l'appelant.
Workbooks(FICHIER_CONTREAPPEL).Activate
DL = Cells(65536, 3).End(xlUp).Row 'Trouve la dernière ligne de notre onglet.
'On va faire la recherche. Une fois qu'on trouve le nom de l'appelant dans l'onglet, alors on conserve le numéro
'de la ligne dans une variable (Ligne)
Set c = Range(Cells(1, 1), Cells(DL, 13)).Find(Nom_Appelant, LookIn:=xlValues, Lookat:=xlWhole)
If Not c Is Nothing Then
Ligne = c.Row
Else
Exit Sub
End If
'****************************************************************************************************************
'4e étape : On va renseigner les cellules manquantes avec la nouvelle information
'****************************************************************************************************************
'-----Premiere cellule manquante
Workbooks(FICHIER_CONTREAPPEL).Sheets("Suivi").Cells(Ligne, 4) = Workbooks(FICHIER_APPEL).Sheets("Appel").[P8]
'-----Deuxieme cellule manquante
Workbooks(FICHIER_CONTREAPPEL).Sheets("Suivi").Cells(Ligne, 12) = Workbooks(FICHIER_APPEL).Sheets("Appel").[P23]
End Sub