Bonjour!

J'ai un petit problème qui me prend la tête et qui ne doit pas être si dur que ça à résoudre…

Mon problème est que les plages sont variables dans d’onglets variables. Alors je m’explique :
L'objectif est de connaître la disponibilité d'un matériel potentiellement utilisé dans 3 salles (3 onglets).
Dans chacune des salles le matériel peut être indisponible suite à une intervention (I).
Cette disponibilité doit être renseignée par demi-journée (J : Jour et N : Nuit) et ne tient pas compte des commentaires (Comm)
L'onglet REC récapitule la disponibilité des matériels par demi journée sur la semaine.

J’ai réussi à faire tout le code mais, je n’arrive pas à changer de colonne. Je joins un fichier exemple pour que ce soit plus clair !
Essai macro.xlsm
Code : 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
Dim L As Integer 'Max lignes onglets
Dim j As Integer 'Lignes
Dim k As Integer 'Colonnes de l'onglet "REC"
Dim m As Integer 'Colonnes des salles
 
L = Application.WorksheetFunction.Max(Sheets("Salle1").UsedRange.Rows.Count, Sheets("Salle2").UsedRange.Rows.Count, _
Sheets("Salle3").UsedRange.Rows.Count)
k = 2
m = 2
While k < Sheets("REC").UsedRange.Columns.Count + 1
j = 3
While j < Sheets("REC").UsedRange.Rows.Count + 1
If (Application.WorksheetFunction.CountIfs(Sheets("Salle1").Range("A3:A" & L), Sheets("REC").Range("A" & j), Sheets("Salle1").Range(Cells(3, m), Cells(L, m)), "I") Or _
    Application.WorksheetFunction.CountIfs(Sheets("Salle2").Range("A3:A" & L), Sheets("REC").Range("A" & j), Sheets("Salle2").Range(Cells(3, m), Cells(L, m)), "I") Or _
    Application.WorksheetFunction.CountIfs(Sheets("Salle3").Range("A3:A" & L), Sheets("REC").Range("A" & j), Sheets("Salle3").Range(Cells(3, m), Cells(L, m)), "I")) Then
    Sheets("REC").Cells(j, k) = "I"
    Else
    Sheets("REC").Cells(j, k) = "Ok"
End If
j = j + 1
Wend
k = k + 1
m = m + 2
Wend