Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Excel makro - Podľa hodnoty zmenej bunky prepočítať stĺpec

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

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny