Cellaérték korlátozás VBA kóddal
2018-12-03T16:36:57+01:00
2018-12-04T12:31:36+01:00
2022-07-19T03:20:19+02:00
Titok111
Sziasztok!

Ennél a résznél megáll a kód.
Egy létező cellaérték korlátozást szeretnék módosítani egy xlsm vezérlő fájlból egy xls fájlban, de nem akarja.

nkeplet = "HA($B$5=""HETI"";$AA$6:$BZ$6;$AN$9:$AR$9)" Range("B8").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=" & nkeplet .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "Érték" .InputMessage = "" .ErrorMessage = "Csak a listából választhat!" .ShowInput = True .ShowError = True End With Cells(5, 2).Value = "HAVI" Cells(8, 2).Value = "11"
Mi éehet a baja? (az Add.type sornál jelez hibát. Rögzítéssel is hiába próbálom , nem megy.
Mutasd a teljes hozzászólást!
Szia!
A nevet el kell, hogy fogadja az adatérvényesítés.
Próbáld ki az excel munkalapon a menű használatával. 

Üdv.
Mutasd a teljes hozzászólást!

  • Szia!

    Az érvényesítés különösen viselkedik VBA alatt. Összetett képleteket nem fogad el.
    Egy megoldási javaslat. Névkezelőben adj nevet a kifejezésnek, amit érvényesítésként szeretnél használni.
    Tehát az nkeplet ne változó legyen, hanem a név. Ezt megteheted az Excelben.
    Utána az érvényesítésnél Formula1:="=nkeplet"
    Névadás:

    ActiveWorkbook.Names.Add Name:="nkeplet", RefersTo:="IF(Munka1!$B$5=""HETI"";Munka1!$AA$6:$BZ$6;Munka1!$AN$9:$AR$9)"
    Munka1 helyére írd a tényleges munkalapot.
    Üdv.
    Mutasd a teljes hozzászólást!
  • Szia!

    Köszönöm, de sajna egy miatt nem jó: legördülő listába kellene tudni ezt rakni, ott meg nem fogad el NEV-et...
    (Apróság: ponteosvessző helyett vessző a jó megoldás az IF után)
    Mutasd a teljes hozzászólást!
  • Szia!
    A nevet el kell, hogy fogadja az adatérvényesítés.
    Próbáld ki az excel munkalapon a menű használatával. 

    Üdv.
    Mutasd a teljes hozzászólást!
  • Köszi, végülis jó lett, de valamiért csak úgy, hogy kézzel rögzítettem a névadást. Mindjárt adom a pontyot is.
    Még egy apró kérdés:
    Előáll az új bővített legördülő lista, a kód alján be is iratom szövegként, benne is marad a cellában, a ráhivatkozó képlet mégsem ismeri fel a 11-et. Ha kiválasztom a legördülőből, akkor meg jó.
    VBA-ban hogy lehetne az új értéket kiválasztani a legördülő listából?

     Ez lett a kód:

    ActiveWorkbook.Names.Add Name:="nkeplet", RefersToR1C1:="=IF(ELŐLAP!R5C2=""HETI"",ELŐLAP!R6C27:R6C78,ELŐLAP!R9C40:R9C44)" Range("B8").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=nkeplet" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "Érték" .InputMessage = "" .ErrorMessage = "Csak a listából választhat!" .ShowInput = True .ShowError = True End With Cells(8, 2).Value = "11" Selection.NumberFormat = "@"
    Mutasd a teljes hozzászólást!
abcd