Sub Macro1()
Dim O As Object 'déclare la variable O (Onglets)
Dim M As String 'déclare la variaboe m (Message)
For Each O In Sheets 'boucle sur tous les onglets du classeur
'définit le message M
M = M & O.Name & " : " & O.Range("C2").Value & Chr(13)
Next O 'prochain onglet du classeur
MsgBox M 'affiche le message M
End Sub
Option Explicit
Sub Cellules_c2_lister()
Dim o As Worksheet
For Each o In Worksheets
If o.Name <> "Résultat" Then
With Sheets("Résultat")
.Range("a" & Rows.Count).End(xlUp)(2) = o.Range("c2")
.Range("b" & Rows.Count).End(xlUp)(2) = o.Name
End With
End If
Next
End Sub
Option Explicit
Sub Cellules_c2()
Dim o As Worksheet
With Sheets("Résultat")
.Columns("a:b").Clear
.[a1] = "Valeur"
.[b1] = "Onglet"
End With
For Each o In Worksheets
If o.Name <> "Résultat" Then
With Sheets("Résultat")
.Range("a" & Rows.Count).End(xlUp)(2) = o.Range("c2")
.Range("b" & Rows.Count).End(xlUp)(2) = o.Name
End With
End If
Next
End Sub
Sub Onglets()
Dim i As Integer
For i = 2 To Sheets.Count
Cells(12 + i, 2) = Sheets(i).Name
If Sheets(i).Name = "Calcul" Then Exit For
Next i
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim f As Long 'je pense que Byte serait suffisant sauf si tu as plus de 255 onglets dans le classeur
If Sh.Target.Address <> "$F$96" Then Exit Sub 'si le changement a lieu ailleurs qu'en F96, sort de la procédure
Sheets("Bilan des analyses").Range("SCORE3").ClearContents 'efface la plage nommée "SCORE3" de l'onglet "Bilan des analyses"
For f = 1 To Sheets.Count - 1 'boucle du premier à l'avant dernier onglet du classeur
'récupère la valeur de la cellue F96 de chaque onglet dans la plage nommée "SCORE3" de l'onglet "Bilan des analyses"
Sheets("Bilan des analyses").Range("SCORE3").Cells(f, 1).Value = Sheets(f).Range("F96").Value
Next f 'prochain onglet de la plage
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim f As Long 'je pense que Byte serait suffisant sauf si tu as plus de 255 onglets dans le classeur
Dim PL As Range 'déclare la variable PL (PLage)
Select Case Target.Address 'agit en fonction de l'adresse de la cellule modifiée
Case "$F$24" 'cas F24
Set PL = Sheets("Bilan des analyses").Range("SCORE1") 'définit la plage PL
Case "$F$58" 'cas F58
Set PL = Sheets("Bilan des analyses").Range("SCORE2") 'définit la plage PL
Case "$F$96" 'cas F96
Set PL = Sheets("Bilan des analyses").Range("SCORE3") 'définit la plage PL
Case "$F$115" 'cas F115
Set PL = Sheets("Bilan des analyses").Range("SCORE4") 'définit la plage PL
Case "$F$79" 'cas F79
Set PL = Sheets("Bilan des analyses").Range("SCORE5") 'définit la plage PL
Case Else 'pour tous les autre cas
Exit Sub 'sort de la procédure
End Select
PL.ClearContents 'efface la plage PL
For f = 1 To Sheets.Count - 1 'boucle du premier à l'avant dernier onglet du classeur
'récupère la valeur de la cellue ayant la même adresse que la cellule modifiée de chaque onglet dans la plage nommée PL
PL.Cells(f, 1).Value = Sheets(f).Range(Target.Address).Value
Next f 'prochain onglet de la plage
End Sub