Keresés

Új hozzászólás Aktív témák

  • perfag

    aktív tag

    válasz motinka #8244 üzenetére

    A + jelnem jó. A cellatartalmat Delete-tel törlöd és üres lesz, ennyi elég.

    Tegnap volt a hosszú napom, ma reggelről egy megoldás:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Application.Intersect(Target, Range("C2:C20")) Is Nothing Then
    If ActiveCell.Value = Empty Then ActiveCell.FormulaR1C1 = "=IF(OFFSET(RC,0,-2)=""SC"",""SC"",""-"")"
    End If
    Application.EnableEvents = True
    End Sub

    A VBA "adat" lapjára kell tenned.

    Műxik, egy apró szépséghibával: Delete, Enter ezzel kitörlöd a cellát, pontosabban üres lesz, majd vissza kell rá kattintani, akkor beírja a képletet. Most mennem kell dolgozni, de du. megnézem mi a francért nem csinálja ezt meg elsőre, a Delete, Enter-re.
    Már 2-3 éve nem programozok, berozsdáltam.

  • Delila_1

    veterán

    válasz motinka #8244 üzenetére

    Akkor mégis a laphoz kell rendelni a makrót.

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target = "" Then Exit Sub
    If Target.Column = 3 And Target.Value = "W" Then
    Range(Target.Address).Formula = "=IF(A" & Target.Row & "=""SC"",""SC"",""-"")"
    End If
    End Sub

    A "TECHN" és "tipus" névadásokat egy OFSZET függvénnyel átírtam úgy, hogy az érvényesítések legördülőjében mindig annyi adat jelenjen meg, ahány éppen van a két listában - bővítés vagy szűkítés esetén az aktuális adatmennyiséghez igazodnak (Beszúrás/Név/Név megadása).

    A + jel nem jó, mert azt az Excel egy képlet kezdetének érzékeli, helyette W-t tettem, és beírtam a TECHN lista első tagjának, vagyis azt is a legördülőből lehet kiválasztani. Ezt választva a C oszlopba beíródik a képlet, csak az aktuális sorba.

    Fájl

Új hozzászólás Aktív témák

Hirdetés