Viem, že to je len náznak, ako by to makro mohlo vyzerať, ale rozmýšľaj trocha:
- VBA nemá pre zmenu každej bunky samostatnú udalosť, takže D1_Change zrejme nerobí, to čo čakáš. Aj keby taká udalosť existovala, aký význam by mal argument Target?
- Keď chceš meniť hodnoty buniek v Range("F5:F200"), tak prečo by si mal prechádzať len cez bunky, ktoré sú v nejakom prieniku?
- Ak chceš bunke priradiť hodnotu, tak to musíš priradiť do vlastnosti cell.Value. Teraz si priradíš do premennej cell hodnotu a v ďalšom riadku s tou premennou pracuješ, ako keby v nej bola stále bunka.
Na takéto úlohy typu "ak sa zmení jedna bunka, tak nech sa zmenia hodnoty v iných bunkách" obyčajne stačia vzorce. Nestačili by aj v tomto prípade?
To makro by mohlo vyzerať takto:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrorHandler
Application.EnableEvents = False
Dim cell As Range
If Not Intersect(Target, Range("D1")) Is Nothing Then
For Each cell In Range("E5:E10")
cell.Value = cell * Range("D1")
cell.Offset(0, 1).Value = cell * 2
Next
End If
ErrorHandler:
Application.EnableEvents = True
End Sub