Eh ben ! C'est effectivement du code de débutant. Mais c'est aussi du code que tu ne comprends pas du tout. Et tu mélanges tout.
Pour utiliser un
For Each, il faut une collection d'objet dans laquelle itérer.
ActiveWorkbook, c'est le classeur actif.
La collection des onglets du classeur, c'est
ActiveWorkbook.Sheets.
Il est plus intelligent de se restreindre aux seules feuilles de calcul (on ne tient pas compte des graphiques) :
ActiveWorkbook.Worksheets
Ensuite, mets toi d'accord avec toi-même, utilise soit la notation
Cells(Row, Col), soit la notation
Range("A1").
Et puis il faut vérifier que la feuille sur laquelle on écrit n'est pas celle dont on se sert de référence. Sauf à vouloir le faire exprès.
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
If Not ws Is ActiveSheet Then
If ActiveSheet.Range("A7").Value = ws.Range("B2").Value Then
ws.Range("C3").Value = ActiveSheet.Range("C7").Value
End If
End If
Next