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

  • scott_free
    senior tag

    sziasztok,

    az alábbiakban kérném a segítségeteket:

    adott ez a táblázat, ami a következőképp kellene, hogy működjön:
    1. A "Sorszám" oszlopban kiválasztott érték szerint FKERES-sel kiválasztja a "Név1", "Név2" és "Név3" mezőt (ha Sorszám=0, akkor 0-t ír mindenhova)
    2. a "Név1", "Név2" és "Név3" alapján pedig a piros táblázatból a nevek alapján hozzárendeli a pontokat a "Pont1", "Pont2" és "Pont3" mezőbe.
    eddig ez nyilván megy makró nélkül is - amiért mégis makró kell az ez:
    3. ha már egyszer hozzárendelt egy pontot egy mezőhöz, akkor utána ne írja felül akkor se, ha közben a pontérték megváltozik!

    Az - egyelőre még szinte nulla - makró-tudásommal ennyire jutottam:
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Ki As String
    Dim Hol As Range
    Ki = Cells(Target.Row, Target.Column)
    Set Hol = Range("I2:J6")
    If Target.Row < 2 Then Exit Sub
    Select Case Target.Column
    Case 2, 4, 6
    If Target.Value = 0 Then
    Cells(Target.Row, Target.Column + 1) = 0
    ElseIf Cells(Target.Row, Target.Column + 1) > 0 Then
    Exit Sub
    Else: Cells(Target.Row, Target.Column + 1) = Application.WorksheetFunction.VLookup(Ki, Hol, 2, 0)
    End If
    Case Else:
    End Select
    End Sub

    Ez annyit csinál, hogy ha egy pont-cella értéke 0, akkor felülírja, ha meg már van benne egy érték, akkor nem. (ld. 3-as pont)
    És csak akkor működik, ha a Név mezőbe manuálisan írom be a nevet - ha pl. FKERES-sel hívom be, akkor nem csinál semmit. :(

    Szóval ami hiányzik:
    1. működjön akkor is, ha FKERES-sel adom hozzá a nevet az excelben (nem a makróban!)
    2. a piros táblázat a valóságban egy másik lapon található ("Nevek") - próbáltam a Worksheets("Nevek").Range("NevekPontok")-at, de nem működött
    3. csak akkor fusson és csak azon a soron, amelyikben a Sorszám változik. (nem tudom, hogy a mostani makró is így megy-e)

    köszi előre is!

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