Sub Numéro_téléphone()
'Activation de la feuille 03.Numéro de téléphone
Sheets("03.Numéro de téléphone").Select
'Effacement des ancciennes données
Rows("5:107").Select
Selection.ClearContents
Selection.Delete Shift:=xlUp
'Déclaration des variables
Dim lig As Integer
Dim colPortable As Integer
Dim ligGrade As Long
Dim colPrenom As Integer
Dim LigHaut As Long 'Repère des lignes du haut pour les noms prévus en haut
Dim NbHaut As Long 'Compte les noms du tableau T_Haut (onglet paramètres) pour commencer plus bas que la ligne 5
Dim Traite As Long 'Nombre de noms à placer en haut déjà traités
Dim NbOnglets As Integer, NbOnglets2 As Integer 'compteurs d'onglets à ne pas traiter
Dim NextWk As Boolean 'Permet de passer à l'onglet suivant si celui en cours ne doit pas être traité
NbHaut = Range("T_Haut").ListObject.DataBodyRange.Rows.Count
ligGrade = 5 + NbHaut
colGrade = 1
colNom = 2
colPrenom = 3
colStatut = 4
colFixe = 5
colPortable = 6
Traite = 0
NbOnglets = Range("T_Onglets").ListObject.DataBodyRange.Rows.Count ' Compte le nombre d'onglets à ne pas traiter dans le tableau T_Onglets de l'onglet paramètres
For Each wk In Worksheets
If NbOnglets2 < NbOnglets Then 'Tant qu'on est pas déjà passé sur tous les onglets à ne pas traiter
For i = 1 To NbOnglets
With Range("T_Onglets").ListObject.DataBodyRange
If wk.Name = .Cells(i, 1) Then NextWk = True: NbOnglets2 = NbOnglets2 + 1: Exit For 'On ne doit pas traiter cet onglet
End With
Next i
End If
If NextWk = False Then 'si wk n'est pas un onglet à ne pas traiter
'Si on n'a pas encore traité tous les noms on teste si l'onglet correspond à un des noms du tableau T_Haut (onglet paramètres)
If Traite < NbHaut Then
For i = 1 To NbHaut
With Range("T_Haut").ListObject.DataBodyRange
If wk.Name = .Cells(i, 1) Then LigHaut = i + 4: Traite = Traite + 1
End With
Next i
End If
'le numéro de la ligne est soit ligGrade, soit une des n lignes du haut selon sa position dans le tableau T_Haut (onglet paramètres)
'Affichage du grade:
Sheets("03.Numéro de téléphone").Cells(IIf(LigHaut = 0, ligGrade, LigHaut), colGrade) = wk.Range("B18")
'Affichage du nom:
Sheets("03.Numéro de téléphone").Cells(IIf(LigHaut = 0, ligGrade, LigHaut), colNom) = wk.Range("F11")
'Affichage du Prénom:
Sheets("03.Numéro de téléphone").Cells(IIf(LigHaut = 0, ligGrade, LigHaut), colPrenom) = wk.Range("F13")
'Affichage du statut:
Sheets("03.Numéro de téléphone").Cells(IIf(LigHaut = 0, ligGrade, LigHaut), colStatut) = wk.Range("B21")
'Affichage du téléphone fixe:
Sheets("03.Numéro de téléphone").Cells(IIf(LigHaut = 0, ligGrade, LigHaut), colFixe) = wk.Range("F29")
'Affihage du téléphone portable:
Sheets("03.Numéro de téléphone").Cells(IIf(LigHaut = 0, ligGrade, LigHaut), colPortable) = wk.Range("F27")
'Soit on remet ligHaut à 0 soit on fait tourner le compteur des lignes
If LigHaut = 0 Then ligGrade = ligGrade + 1 Else LigHaut = 0
End If
NextWk = False
Next wk