Keresés

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

  • m.zmrzlina

    senior tag

    válasz Padam #11446 üzenetére

    Csak Select Case szerkezetben kell a páratlan sor helyett a párosból kivonni az 1-et így:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cella As Range
    Dim datumoszlop As Integer
    Dim maradekos As Integer
    maradekos = (Target.Column Mod 2)

    Select Case maradekos
    Case Is <> 0
    datumoszlop = Target.Column
    Case Is = 0
    datumoszlop = Target.Column - 1
    End Select

    If Not Application.Intersect(Target, Range(Cells(3, datumoszlop), Cells(18, datumoszlop + 1))) Is Nothing Then
    For Each cella In Range(Cells(3, datumoszlop), Cells(18, datumoszlop + 1)).Cells
    If Not cella.Address = Target.Address And Target.Value <> "" Then
    If cella.Value = Target.Value Then
    MsgBox Target.Value & " erre az időpontra nem osztható be!"
    Target.Value = ""
    Exit Sub
    End If
    End If
    Next
    End If
    End Sub

    A napokat írhatom a végtelenségig?

    Igen, bár ennek a megoldásnak van legalább egy komoly hibája, mégpedig hogy ez a sor:
    If Not cella.Address = Target.Address And Target.Value <> "" Then
    meg ez:
    If cella.Value = Target.Value Then
    kiakad, ha nem egyetlen cellán, hanem tartományon szeretnél műveletet végezni. (pl Beszúrás stb..)

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

Hirdetés