Sub Macro1()
'**************************
'déclarations des variables
'**************************
Dim cs As Workbook 'déclare la variable cs (Classeur Source)
Dim cc As Workbook 'déclare la variable cc (Classeur Cible)
Dim os As Worksheet 'déclare la variable os (Onglet Source)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim li As Byte 'déclare la variable li (LIgne)
Dim col As Byte 'déclare la variable col (COLonne)
Dim oc As Worksheet 'déclare la variable o (Onglet Cible)
'Dim dest As Range 'déclare la variable dest (DESTination)
'****************************************
'définition des classeurs source et cible
'****************************************
Set cs = ThisWorkbook 'définit le classeur source
Set cc = Workbooks("Classeur2.xls") 'définit le classeur cible (à adapter...)
For Each os In cs.Sheets 'boucle 1 : sur tous les onglets du classeur source
'**********************
'définition de la plage
'**********************
With os 'prend en compte l'onglet
dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne
Set pl = .Range("E2:E" & dl) 'définit la plage pl
End With 'fin de la prise en compte de l'onglet
'**********************
'définition de la ligne
'**********************
For Each cel In pl 'boucle 2 : sur toutes les cellules de la plage pl
Select Case UCase(cel.Value) 'agit en fonction de la valeur de la cellule (convertie en majuscule)
Case "PREMIER" 'cas "PREMIER"
li = 2 'définit la ligne
Case "SECOND", "DEUXIÈME" 'cas "SECOND" ou "DEUXIÈME"
li = 3 'définit la ligne
Case "TROISIÈME" 'cas "TROISIÈME"
li = 4 'définit la ligne
End Select 'fin de l'action en fonction de...
Set oc = cc.Sheets("Récap-" & os.Name) 'définit l'onglet cible
'************************
'définition de la colonne
'************************
On Error Resume Next 'gestion des erreur, si une erreur est générée passe à la ligne suivante
col = oc.Rows(1).Find(cel.Offset(0, 4).Value, , xlValues, xlWhole).Column 'définit la colonne col (génère une erreur si la recherche n'aboutit pas)
If Err > 1 Then 'condition : si une erreur est générée
MsgBox "Le circo ne correspond pas à une région définie dans le classeur cible !" 'message
cel.Offset(0, 4).Select 'sélectionne la cellule colonne I "circo"
Exit Sub 'sort de la procédure
End If 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
'*******************************************
'incrémentation des valeur du classeur cible
'*******************************************
oc.Cells(li, col).Value = oc.Cells(li, col).Value + 1 'incrément la valeur de la cellule li/col de l'onglet cible du classeur cible
Next cel 'prochaine cellule de la boucle 2
Next os 'prochain onglet de la boucle 1
End Sub