VBA mentés előtt cella ellenőrzése

VBA mentés előtt cella ellenőrzése
2021-03-26T08:31:27+01:00
2021-04-08T13:29:41+02:00
2022-10-15T21:16:09+02:00
bogdanypeter
Sziasztok!

Abban szeretnék segítséget kérni, hogy egy excel táblázat kitöltése után ha a mentés gombra kattintok, akkor ellenőrizze egy cella tartalmát. Ha az üres, akkor mentsen, ha nem, akkor egy msgbox-al adjon hibát mentés nélkül.
Mutasd a teljes hozzászólást!
rálépsz a Thisworkbook modullapjára.(dupla katt a bal oldali sávon
a szerkesztő ablak tetején(a menüsor alatt) a bal oldali legördülő menüt "generál"-ról "Worksheetre" állítod.
Ekkor a jobb oldali legördülő menüben már tudsz választani, hogy az adott munkalap (jelen esetben a Thisworkbook-bár ez nem igazán munkalap, de ez most mindegy) melyik eseményt akarod birizgálni. Ott kiválasztod a BeforeSave eseményt, és oda másold be (a sub-end sub magától megjelenik)
A többi munkalapnál is tudsz ilyet csinálni.
Mint ahogy az összes Active-x és ürlapvezérlő meg munkalap objektummal (textbox, commandbutton, label, stb.(ehhez a fejlesztőeszközzök- tervező mód bekapcsolása után duplán kattintasz az adott mondjuk command button-ra, és akkor már megy- de beírhatod simán kézzel is, ha már tudod, hogy mit hogy kell megadni a sub után)
Mutasd a teljes hozzászólást!

  • Szia!

    A Thisworkbook-nak a BeforeClose és a BefroeSave eseményébe kell beírni az ellenőrzést.
    Mutasd a teljes hozzászólást!
  • azaz, lehet, hogy elég a BeforeSave eseménybe beírni, mivel a bezárásnál ha van mentés, lefuttatja a BeforeSave eseményt.

    elég csak ez:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If Worksheets("Munka1").Cells(1, "H") = "" Then MsgBox ("nem lehet menteni, A Munka1 munkalap H1 cellája üres") Cancel = True End If End Sub

    persze lehet ezt még szépíteni.....
    Mutasd a teljes hozzászólást!
  • Ha ezt beírom vba-be, és rákattintok a mentés gombra, semmi nem történik. Nem tudom mi lehet, hasonlót már próbáltam, de nem is reagál rá, rögtön ment.
    Mutasd a teljes hozzászólást!
  • rálépsz a Thisworkbook modullapjára.(dupla katt a bal oldali sávon
    a szerkesztő ablak tetején(a menüsor alatt) a bal oldali legördülő menüt "generál"-ról "Worksheetre" állítod.
    Ekkor a jobb oldali legördülő menüben már tudsz választani, hogy az adott munkalap (jelen esetben a Thisworkbook-bár ez nem igazán munkalap, de ez most mindegy) melyik eseményt akarod birizgálni. Ott kiválasztod a BeforeSave eseményt, és oda másold be (a sub-end sub magától megjelenik)
    A többi munkalapnál is tudsz ilyet csinálni.
    Mint ahogy az összes Active-x és ürlapvezérlő meg munkalap objektummal (textbox, commandbutton, label, stb.(ehhez a fejlesztőeszközzök- tervező mód bekapcsolása után duplán kattintasz az adott mondjuk command button-ra, és akkor már megy- de beírhatod simán kézzel is, ha már tudod, hogy mit hogy kell megadni a sub után)
    Mutasd a teljes hozzászólást!
  • Köszönöm a megoldást! Működik! :)
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd