Hirdetés

2024. április 30., kedd

Gyorskeresés

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-11-13 08:31:56

LOGOUT.hu

A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.

Összefoglaló kinyitása ▼

Hozzászólások

(#24801) felora:) válasza KaliJoe (#24767) üzenetére


felora:)
tag

Szia!

Eddig fasza, nagyon jóóó, eljutottam addig, hogy meg van a legördülő menüm, az + pont, hogy címet is adhattam neki, de még annyi kéne, hogy pl. ha kiválasztom a legördülő listából, hogy "IGEN" akkor generálja be, az "A16"-os cellába, hogy pl. "OKÉ", ha a "NEM"-et választom ki, akkor azt generálja be, hogy: "NEM OKÉ". azt hogyan? :D

Ja! még annyit, hogy minden cellának majd a szöveget az "A16"-osba kell begenerálnia, szépen egymás után.

[ Szerkesztve ]

(#24802) Delila_1 válasza felora:) (#24801) üzenetére


Delila_1
Topikgazda

Ehhez az A16-ba kell beírni a képletet.

=HA(A1="IGEN";"OKÉ";"Nem OKÉ")

Itt az A1 cellában van a választék.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#24803) Delila_1 válasza felora:) (#24801) üzenetére


Delila_1
Topikgazda

... és ha a több (hány?) cellába bevitt értékek vegyesen IGEN-t és "NEM"-et tartalmaznak? Akkor mi legyen az A16-ban?

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#24804) Delila_1 válasza felora:) (#24801) üzenetére


Delila_1
Topikgazda

"minden cellának majd a szöveget az "A16"-osba kell begenerálnia, szépen egymás után."
Ezt úgy érted, hogy az A16-ban az utoljára kiválasztott értéknek megfelelően jelenjen meg az OK vagy a NEM OK szöveg?

Ha igen, az A16 képlete legyen:

=HA(INDIREKT("A" & DARAB2(A1:A15))="Igen";"OK";"NEM OK")

Az A1:A15 helyett azt a tartományt add meg, ahol kiválasztod az igen, vagy nem szöveget.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#24805) slashing válasza Mutt (#24799) üzenetére


slashing
senior tag

eddig nem is tudtam hogy ilyet is lehet hogy igaz*5 vagy hamis*5 :C (MARADÉK(A1;5)>=3)*5
pedig így utólag már logikus

(#24806) KaliJoe


KaliJoe
csendes tag

Sziasztok,

Tudtok jó megoldást arra, hogy hogyan lehet ciklusból megcímezni 24 különböző CheckBoxot, amelyek neve csak egy sorszámban tér el? A CheckBoxok egy Frame-ben belül vannak.
A cél, h egy cellákban adott listából feltöltsem a CheckBoxNN.Caption tulajdonságát.

Forráscellák:

Ahová be akarom tölteni programból:

Vagy csak manuálisan lehet az értékeket megadni? Emigyen:
ChboxNév01.Caption = Worksheets("Személylap").Cells(byt_AktuálisSor, "B").Value ,
helyett
ChboxNév01.Caption = Worksheets("Személylap").Cells(2, "B").Value
ChboxNév02.Caption = Worksheets("Személylap").Cells(3, "B").Value
ChboxNévNN.Caption = Worksheets("Személylap").Cells(xx, "B").Value

[ Szerkesztve ]

Frazeológiám: Az ember nem kávéra, nem is kávéházra vágyik, az ember lelke barátra vágyik, a kávé csupán ürügy... :-) ;)

(#24807) Fferi50 válasza KaliJoe (#24806) üzenetére


Fferi50
őstag

Szia!

Az egyik lehetséges megoldás:
For xx= 1 to 24
Userform1.Controls("ChboxNév" & Right("0" & xx,2)).Caption=Worksheets("Személylap").Cells(xx+1, "B").Value
Next

Ebben a Controls("Név") ami fontos.

Üdv.

[ Szerkesztve ]

(#24808) KaliJoe válasza Fferi50 (#24807) üzenetére


KaliJoe
csendes tag

Szia Fferi50,

Igen, ezt kerestem. Köszönöm.

Frazeológiám: Az ember nem kávéra, nem is kávéházra vágyik, az ember lelke barátra vágyik, a kávé csupán ürügy... :-) ;)

(#24809) KaliJoe


KaliJoe
csendes tag

Kedves Blogozók,

Én még csak újonc vagyok itt és éppen csak néhány napja csatlakoztam Hozzátok, de nagyon meglepett az a kedves hozzáállás, amivel egymás (köztük az én) problémái(m) iránt viseltettek. Magam is ilyen gondolkodásúnak tartom magam, úgyhogy nagyon örülök, hogy köztetek lehetek! :)) :DD :C

Evvel az üzenettel és képpel kívánok Boldog Új Esztendőt, és köszönöm meg értékes segítségeteket.

Frazeológiám: Az ember nem kávéra, nem is kávéházra vágyik, az ember lelke barátra vágyik, a kávé csupán ürügy... :-) ;)

(#24810) DrojDtroll


DrojDtroll
addikt

Köszönök, az összes ez évi segítséget, és kívánok minden cellabűvölőnek sikerekben gazdag boldog új évet.

(#24811) zoli1962 válasza Mutt (#24717) üzenetére


zoli1962
csendes tag

Mutt segítsége jó lett :C De még egy problémám lenne. Van olyan oszlop ahol nem minden cellába kerül adat (szám) És ott ez a függvény nem jó. Tehát az oszlopba írt utolsó cella adatát írja ki egy új munkalap adott cellájába, de az oszlopba lehet valahol üres cella. Ezen a honlapon találtam tippeket : http://www.offcafe.hu/13szept.html akár melyiket írom a névkezelőbe nem jön össze , sőt érdekes módon (ilyet még nem láttam) egy idő múlva a cella hivatkozást átírja :W

(#24812) Delila_1 válasza zoli1962 (#24811) üzenetére


Delila_1
Topikgazda

A HOL.VAN("zzzz";A:A;1) képlet az A oszlop utolsó, szöveggel kitöltött sorát adja eredményül.

Nem tudom, hasznodra lesz-e ez a képlet, nem ismerem az előzményeket. A jelenlegi kérdésedből úgy látom, az egyes oszlopok alsó sorát szeretnéd meghatározni.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#24813) Delila_1


Delila_1
Topikgazda

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#24814) zoli1962 válasza Delila_1 (#24813) üzenetére


zoli1962
csendes tag

Kedves Delila !
A 24716-os hozzászólásodba ,még Te is segítettél. Ki is próbáltam ,jó volt. De inkább makró nélkül próbálom meg. Amit írtál azt is megpróbálom .Köszi

(#24815) Delila_1 válasza zoli1962 (#24814) üzenetére


Delila_1
Topikgazda

A Munka2 lap C oszlopának utolsó tagját (ami szám), a

=HOL.VAN(9,99999999999999E+307;Munka2!C:C;1)

képlettel kapod meg, foghíjas oszlop esetén is.

A Munka1!A1 képlete ennek alapján

=INDIREKT("Munka2!C" & HOL.VAN(9,99999999999999E+307;Munka2!C:C;1))

[ Szerkesztve ]

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#24816) zoli1962 válasza Delila_1 (#24815) üzenetére


zoli1962
csendes tag

Működik ! Nagyon köszönöm !

(#24817) Delila_1 válasza zoli1962 (#24816) üzenetére


Delila_1
Topikgazda

Szívesen. :)

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#24818) csferke válasza Delila_1 (#24817) üzenetére


csferke
senior tag

Sziasztok!
Egy táblázat A-F oszlopaiból szeretném kinyomtatni az A,B és F oszlopokat de csak azokat a sorokat amelyeknek az oszlopa nem üres.
Eddig eljutottam

de itt a nyomtatásban látszanak azok a sorok is melyeknek az F oszlopa üres.

Ezt a nyomtatást egy ActiveX Command Button-al kellene lefuttatni Excel 2007-ben.

köszi

[ Szerkesztve ]

(#24819) Delila_1 válasza csferke (#24818) üzenetére


Delila_1
Topikgazda

Tegyél autoszűrőt a táblázatodba. Az A, B, és F oszlopban a szűrésnél mindegyik oszlopban vedd ki a pipát az "Üres" négyzet elől. Rejtsd el a C:E oszlopokat, jelöld ki a nyomtatandó területet, a nyomtatás párbeszédablakban "A kijelölt terület" opciót add meg.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#24820) KaliJoe


KaliJoe
csendes tag

Sziasztok,

Van egy felsorolásom, amelyik a hét napjait tartalmazza, magyarul.
Van egy űrlapon két Combobox-om, amelyek .Value paraméteit a felhasználó állítgatja, természetesen a hét számát választja ki az egyikkel és a hét napját a másikkal. :DDD

A problémám akkor keletkezik, amikor vissza akarom fejteni ezeket az adatokat újra dátummá, vagy dátumértékké, emígyen:

dat_BeírandóDátum = DateAdd("n", (CBox_Hét.Value - 1) * 7 + CBox_NapNeve.Value, Date)
vagy emígyen:
dat_BeírandóDátum = DateAdd("n", (CBox_Hét.Value - 1) * 7 + enu_HétNapja = CBox_NapNeve.Value, Date)
Miközben enu_HétNapja tökéletesen tudja (és értéket is rendel a hét napjaihoz), hogy mennyit ér mondjuk 'péntek', ahogy ezt az alábbi kép is mutatja:

Persze, arra is rájöttem, h enu_HétNapja = CBox_NapNeve.Value összefüggésre max. egy False válaszra méltat az Interpreter... mivel:

... és közben CBox_NapNeve.Value típusa karakterlánc (magától értetődően), amikor nekem számot kellene az összeadásba adnom... :-( :O
Tehát a kérdésem az, h hogyan kellene helyesen megfogalmazni a fentiekben Látható sort VBE módra, hogy az összefüggés helyesen adja az éven belül eltelt napok függvényében a dátumot?

[ Szerkesztve ]

Frazeológiám: Az ember nem kávéra, nem is kávéházra vágyik, az ember lelke barátra vágyik, a kávé csupán ürügy... :-) ;)

(#24821) csferke válasza Delila_1 (#24819) üzenetére


csferke
senior tag

Arra gondoltam, hogy a nyomtatási parancsban valahol meg lehet adni, hogy ne nyomtassa azokat a sorokat ahol F oszlop cellája üres.

Valamikor a múltban tőled kaptam 2 néhány soros makrót. Egyik eltünteti az üres sorokat a másik visszahozza őket :R . Beillesztettem közéjük a nyomtatást. Működik. Picit lassú, de mivel csak évente párszor kell ez a nyomtatás, hát kivárom.

(#24822) Fferi50 válasza KaliJoe (#24820) üzenetére


Fferi50
őstag

Szia!

A Combobox rendelkezik a listindex tulajdonsággal, ami azt mutatja meg, hogy hányadik tétel van kiválasztva. Értéke 0 -val kezdődik, azaz az első tételhez a 0 index tartozik.

Ezt kellene használnod a dátum megállapításához szerintem.

Üdv.

(#24823) BenJoe80


BenJoe80
senior tag

Sziasztok

és boldog új évet mindenkinek!

A következőhöz lenne segítségre szükségem. Excel 2003-ban szeretnék egy legördülő listát létrehozni. A legördülő listában szerepeljen a "Kontó szám" és a hozzátartozó "Kontó név". Ebből a listából a megfelelő tétel kiválasztása után csak a "Kontó szám" látszódjon a cellában.

Ezt hogy tudom megoldani Excel 2003-ban?

A szóban forgó táblázat innen letölthető.

Az táblázatban az "Acc." lapon találhatóak a "Kontó számok" és a hozzátartozó "Kontó nevek". A legördülő listát pedig a "January" lapon az "A/C" oszlopba (D5:D70 tartomány) szeretném, de úgy, hogy csak a "Kontó számok" látszanak.

A segítséget előre is köszönöm!

[ Szerkesztve ]

Megisznak egy deci pálinkát. Miért? "Olyan savam vót, meg köllet innom egy deci pálinkát, aszittem megbolondulok." Aztán megisznak négy liter bort. Miért? "Há' semmi savam nem volt má'!"

(#24824) tgumis


tgumis
tag

sziasztok
hogy tudom azt megoldani makróval hogy a sárgával jelzett részen lévő adatok kijelölése után egy másik munkalapon a piros színnel jelölt részre irányított beillesztés transzportálással a munkalap utolsó üres sorába kerüljön
Próbálkoztam userformmal de macerás és egy csomó hiba van benne és sürgésen prezentálnom kellene de nem megy légy szí segítsetek.

(#24825) Delila_1 válasza BenJoe80 (#24823) üzenetére


Delila_1
Topikgazda

Feltettem ide.

Az Acc. lap C oszlopában összefűztem a kétféle adatot, közöttük pár szóközzel. A sárga hátterű tartománynak a lista nevet adtam. Ezt vittem érvényesítésként a January lap B oszlopába. Nem valószínű, hogy ebben az oszlopban kellene választanod, de nem írtad, melyikben szeretnéd.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#24826) Fferi50 válasza tgumis (#24824) üzenetére


Fferi50
őstag

Szia!

Én a munkalap Selection_Change eseménykezelőjébe tenném be a következőket:

Megnézném, hogy a kérdéses terület van-e kiválasztva (ezt az intersect függvénnyel tudod megtenni)
Ha igen, rákérdeznék, hogy másoljam-e át (msgbox eredménye yes vagy no).
Ha másolni kell, akkor megkeresem a második munkalapon az utolsó sort és a cellák értékét egyesével átadom első cella az első oszlopba, második cella a második oszlopba . és így tovább.

Üdv.

[ Szerkesztve ]

(#24827) tgumis válasza Fferi50 (#24826) üzenetére


tgumis
tag

Mint írtam készűl egy szebb megoldás viszont most csak egy olyan makrót szeretnék ideiglenes megoldásnak,hogy kijelöl egy adott területet(a sárga tartományt) az 1. munkalapon majd azonnal be is illessze a 2.munkalap utolsó üres sorába. A gond ott van, hogy hogyan adom meg neki a transzportálást és az utolsó üres sort.

(#24828) BenJoe80 válasza Delila_1 (#24825) üzenetére


BenJoe80
senior tag

Szia Delila_1!

Először is köszi az önzetlen segítségedet úgy most, mint a múltban (volt pár alkalom).

Megnéztem az általad módosított táblázatot, de amit én igazából szeretnék, hogy a legördülő lista az "A/C" oszlopban (D5:D70 tartomány) legyen. Mégpedig úgy, hogy a legördülő listában legyenek a választható, összesített tételek (pl.: 1000 Income, 1100 Other income... stb.), viszont amint kiválasztom a megfelelő tételt, az "A/C" oszlopban ((D5:D70 tartomány) csak a tétel kódok legyenek láthatóak (tehát: 1000, 1100... stb.)

Ez megoldható?

Egyenlőre előre-hátra lapozok az adott hónap és az "Acc." lap között, mert fejből nem tudom az összes tétel kódját és arra gondoltam, így egyszerűbb lenne. Viszont a tétel neve nem kell(ene).

Megisznak egy deci pálinkát. Miért? "Olyan savam vót, meg köllet innom egy deci pálinkát, aszittem megbolondulok." Aztán megisznak négy liter bort. Miért? "Há' semmi savam nem volt má'!"

(#24829) Fferi50 válasza tgumis (#24827) üzenetére


Fferi50
őstag

Szia!

Az utolsó üres sort megkapod a következőképpen:
az A oszlopban
usor=cells(rows.count,1).end(xlup).row+1

ha más oszlopban szeretnéd, akkor az oszlopszámot átírod.

Transzponálni nem kell erőlködnöd. Simán átveszed az értékeket:

pl.
Munka2.cells(usor,1).value=Munka1.cells(1,4).value
Munka2.cells(usor,2).value=Munka1.cells(2,4).value
Munka2.cells(usor,3).value=Munka1.cells(3,4).value

Sőt:
For xx= 1 to 3
Munka2.Cells(usor,xx).value=Munka2.cells(xx,4).value
Next

Ez a kód a Munka1. D1:D3 cellájának értékét átteszi a Munka2 utolsó sorának első -második és harmadik cellájába. Az oszlopszámokat szükség szerint állítsd át.

Üdv.

[ Szerkesztve ]

(#24830) slashing válasza BenJoe80 (#24828) üzenetére


slashing
senior tag

Tipp mert időm most nincs rá:

Ehhez már makró kell akkor, a legördülő lista mehetne az adott oszlopba azon az oszlopon meg lenne egy worksheet change esemény ami levága az elejét a kiválasztott szövegnek, balról az első szóközig...

(#24831) BenJoe80 válasza slashing (#24830) üzenetére


BenJoe80
senior tag

Aha... akkor azt hiszem várnom kell valakire, aki okos is meg rá is ér mert halvány lövésem sincs, hogy hogyan álljak neki. Makróval még sosem dolgoztam... hajaj! Pedig reméltem, hogy ma kész leszek...

Megisznak egy deci pálinkát. Miért? "Olyan savam vót, meg köllet innom egy deci pálinkát, aszittem megbolondulok." Aztán megisznak négy liter bort. Miért? "Há' semmi savam nem volt má'!"

(#24832) tgumis válasza Fferi50 (#24829) üzenetére


tgumis
tag

a hiba bennem van de nekem nem működik. csak 2 értéket tesz át aztán a formátumot is átírja

(#24833) tgumis válasza Fferi50 (#24829) üzenetére


tgumis
tag

csak a 7. sorba beírja az adatokat és ennyi

[ Szerkesztve ]

(#24834) Fferi50 válasza tgumis (#24833) üzenetére


Fferi50
őstag

Szia!

És mit csináljon még egyebet? Azt kérted, hogy a sárga cellák értéke menjen át a piros cellákba.

Ha még valamit szeretnél, azt kérem, írd le.

Üdv.

(#24835) tgumis válasza Fferi50 (#24834) üzenetére


tgumis
tag

ja nem fogalmaztam egyértelműen ahányszor indítom a makrót mindig keresse meg az utolsó sort és oda illessze be az adatokat amiket talál abban a cellában ahonnan hivatkozik.Szóval először a munka 2 munkalap második sorába majd onnantól mindig az utolsó üres sorba.

(#24836) Fferi50 válasza tgumis (#24835) üzenetére


Fferi50
őstag

Szia!

Hát, ha a makróba beteszed az usor=cells(rows.count,1).end(xlup).row+1 sort is a ciklus elé, akkor minden meghívásakor kiszámolja az utolsó sort és oda fogja betenni az értékeket.

Üdv.

[ Szerkesztve ]

(#24837) tgumis válasza Fferi50 (#24836) üzenetére


tgumis
tag

Sub megrendeo_nyil_tart_masol()
'
' megrendeo nyilvantartas masolasa utolso ures sorba a 2-es munkalapramasol Makró
'
usor = Cells(Rows.Count, 1).End(xlUp).Row + 1
Munka2.Cells(usor, 1).Value = Munka1.Cells(2, 2).Value
Munka2.Cells(usor, 2).Value = Munka1.Cells(3, 2).Value
Munka2.Cells(usor, 3).Value = Munka1.Cells(4, 2).Value
Munka2.Cells(usor, 4).Value = Munka1.Cells(5, 2).Value
Munka2.Cells(usor, 5).Value = Munka1.Cells(6, 2).Value

End Sub

ez a makróm de nem müxik

(#24838) Fferi50 válasza tgumis (#24837) üzenetére


Fferi50
őstag

Szia!

A Munka2 munkalapon keresed az utolsó sort, akkor oda is be kell írni:

usor = Munka2.Cells(Rows.Count, 1).End(xlUp).Row + 1

Azután elég ennyi:
For xx=1 to 5
Munka2.cells(usor,xx).value=Munka1.Cells(xx+1,2).value
Next

Üdv.

[ Szerkesztve ]

(#24839) tgumis válasza Fferi50 (#24838) üzenetére


tgumis
tag

kösz kösz kösz
Hálás vagyok

(#24840) Wyll


Wyll
őstag

Sziasztok!

Van kezdetben egy főlap munkalapom, és egy BASIC munkalapom.

A főlap segítségével a júzer létre fogja hozni egyenként a BASIC munkalap sok-sok másolatát, mindet egy-egy egyedi névre átnevezve, és a főlapra ezen egyedi lapok bizonyos cellái be lesznek linkelve.

A BASIC lapon elég sok összetett képlet van, így annak másolatain is elég sok összetett képlet lesz.

Továbbá a BASIC laphoz tartozik még egy tonna bonyolultan definiált név is (amiket a képletek használnak), amik Munkalap szintűek, így aztán minden egyes másolathoz is tartozni fog egy-egy tonna, az adott másolatra érvényes név is.

Namost tesztelgetés közben azt vettem észre, hogy már 10 lap körül is igencsak érezhetően belassul egy-egy ilyen másolatnak a létrehozása. Ez nem túl biztató, mivelhogy az a terv, hogy nagyságrendileg 150 ilyen másolatot akar majd a júzer összesen létrehozni...

A file mérete ránézésre nem tűnik vészesnek, 510kB. Viszont a megnyitása már most is tart vagy 20-30 másodpercig.

A kérdésem, hogy mennyire bölcs dolog így ez az egész konstrukció?
Megáll-e a lassulás egy elfogadható szinten, vagy lineárisan, netán exponenciálisan csak romlani fog?

Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=Wyll

(#24841) slashing válasza Wyll (#24840) üzenetére


slashing
senior tag

Ha még nem illesztetted be őket akkor érdemes lehet sokat tud gyorsítani rajta, csak a végén ne felejtsd el visszakapcsolni.. A tonnányi képlet kiszámolás tuti sokat számít arra mindenképpen érdemes berakni az első kapcsolót.

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.Enableevents=false

(#24842) Delila_1 válasza BenJoe80 (#24831) üzenetére


Delila_1
Topikgazda

Kissé megkésve, de sok szeretettel.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#24843) KaliJoe


KaliJoe
csendes tag

Sziasztok,

Írok egy jelenléti ív programot. Oda jutottam, hogy egy újabb vizsgálatnál ki akarom íratni a dolgozó teljes nevét. Ehhez most éppen a rövid név áll rendelkezésemre, ami egyezik a dolgozó jelenléti adatait nyilvántartó Munkalap nevével. Viszont a beírt VBE sor hibára fut. Megnéztem előtte sima képlettel ott rendben van. Az adatok:

Az Excel sor: =INDEX(Személylap!B2:K25;HOL.VAN("KalinaJL_1";Személylap!K2:K25;0);1)

A VBE sor kiemelve a kódrészlettel:
For Each wsh_DolgozóRövidNév In Worksheets
If dat_BeírandóDátum <= Worksheets(wsh_DolgozóRövidNév.Name).Cells(Worksheets(wsh_DolgozóRövidNév.Name).Cells(1, 1).Value, const_DolgozóNévOszlop).Value Then
int_Válasz = MsgBox("A kiválasztott" & Chr(10) & Chr(13) & _
Chr(9) & WorksheetFunction.Index(const_SzemélylapAdatbázis, WorksheetFunction.Match(wsh_DolgozóRövidNév.Name, const_SzemélylapRövidNévOszlop, 0), 1) & Chr(10) & Chr(13) & _
"nevű dolgozó adatbázisában későbbi időpont az utolsó bejegyzés, mint az Általad választott dátum. Akarod felülírni az űrlapon megadott információkkal az adatbázisban lévőt illetve beszúrni, ha nem létezik bejegyzés erre a dátumra?", _
vbQuestion + vbYesNo + vbDefaultButton2, "Felülírás-Beszúrás?")
If int_Válasz = vbYes Then
bol_Beszúrás = True
ElseIf int_Válasz = vbNo Then
Exit Sub
Else
'Úgy vesszük, mintha Nemet mondott volna = Visszalépés az űrlaphoz, hogy módosíthasson
Exit Sub
End If
End If
Next wsh_DolgozóRövidNév

A piros rész dob hibát, miközben, az értékeket rendesen tudja:

A hibaüzenet:

Kinek, mi az ötlete, mi lehet a gond? És, főleg, mi lehet a megoldás?

Frazeológiám: Az ember nem kávéra, nem is kávéházra vágyik, az ember lelke barátra vágyik, a kávé csupán ürügy... :-) ;)

(#24844) BenJoe80 válasza Delila_1 (#24842) üzenetére


BenJoe80
senior tag

:B :R :B

Nagyon szépen köszönöm!!! Közben kértem segítséget máshonnan is és ha nem baj összehasonlítanám a tieddel. A te makród:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
Application.EnableEvents = False
Range(Target.Address) = Left(Target, 4)
Application.EnableEvents = True
End If
End Sub

A másik amit kaptam:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D:D")) Is Nothing And Target.Value <> "" Then

ActiveCell.Value = Left(Target.Value, 4)
End If
End Sub

Bár mindkét makró pontosan azt teszi amire szükségem van, csupán kíváncsiságból: mi a különbség?

Megisznak egy deci pálinkát. Miért? "Olyan savam vót, meg köllet innom egy deci pálinkát, aszittem megbolondulok." Aztán megisznak négy liter bort. Miért? "Há' semmi savam nem volt má'!"

(#24845) BenJoe80 válasza Delila_1 (#24842) üzenetére


BenJoe80
senior tag

Még egy utolsó kérdés: hogy lehet a legördülő lista szélességét beállítani? Megfigyeltem, hogy az általad módosított táblázat legördülő listájában szépen olvasható a kód és név (legnagyobb része) egymás mellett. Amit én csináltam, ott meg a kód is csak ímmel-ámmal fér be legördülő lista szélességébe.

Pontosítok. A táblázatodban a legördülő lista szélesebb mint maga az oszlop, míg az enyémben csak olyan széles, mint maga az oszlop.

[ Szerkesztve ]

Megisznak egy deci pálinkát. Miért? "Olyan savam vót, meg köllet innom egy deci pálinkát, aszittem megbolondulok." Aztán megisznak négy liter bort. Miért? "Há' semmi savam nem volt má'!"

(#24846) gaborlajos


gaborlajos
csendes tag

Sziasztok!
Segítséget szeretnék kérni a megoldáshoz. Van egy oszlopom amiben nevek vannak, és lehetnek benne üres cellák is, és ezek ismétlődhetnek is.Egy másik oszlopba át kéne íratnom egymás alá, de minden nevet már csak egyszer. Hát ez meghaladja a képességeimet.
Előre is kösz.

(#24847) Delila_1 válasza BenJoe80 (#24845) üzenetére


Delila_1
Topikgazda

1. Az Application.EnableEvents = False sor letiltja, hogy az eseménykezelő makró újra lefusson, mikor a Left függvény beírja az első 4 karaktert a D oszlopba, majd True-ra állítva ismét engedélyezi a futást.
A Worksheet_SelectionChange típusú makró minden esetben lefut, mikor új adat kerül billentyűzetről a lapra, ilyen az egérrel kiválasztott adat is. Mindkét makró a beírt értéket felülírja egy rövidebb értékkel, ami újabb beírás, ismételten lefut a makró, ha nem tiltjuk ezt le. Ezúttal a 4 karakterből álló adat 4 első karakterét venné, ami gyakorlatilag nem változtat az új beíráson.
Mivel alkalmanként az ideiglenes letiltás csupán 1 újabb futást "takarít meg", nem látható a futási idő rövidülése. Enélkül is elmegy.

2. Nem maga az érvényesítés legördülője lett szélesebb, hanem a kiválasztáskor az általam feltett füzetben még üres a következő oszlop, ezért abban (is) látszik a kiválasztott, több karakterből álló szöveg.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#24848) BenJoe80 válasza Delila_1 (#24847) üzenetére


BenJoe80
senior tag

Köszönöm!

Az enyémben is üres (tőle balra és jobbra is), ugyanakkor ha a tiedet megnyitom, akkor balra-le megnyílik a legördülő lista és jó széles, olvasható. Nálam meg csak olyan széles mint maga az érvényesítés oszlopa.

Megisznak egy deci pálinkát. Miért? "Olyan savam vót, meg köllet innom egy deci pálinkát, aszittem megbolondulok." Aztán megisznak négy liter bort. Miért? "Há' semmi savam nem volt má'!"

(#24849) Delila_1 válasza BenJoe80 (#24848) üzenetére


Delila_1
Topikgazda

Akkor tedd át az adataidat az én füzetembe. :))

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#24850) Fferi50 válasza gaborlajos (#24846) üzenetére


Fferi50
őstag

Szia!

Ha 2010-es (esetleg 2007?) vagy annál újabb exceled van, akkor adatok -> ismétlődések eltávolítása.
Ha korábbi, akkor adatok -> irányított/speciális szűrő. Másolás más helyre, csak az egyedi adatok. Ekkor viszont az adatok első cellája fejléc kell legyen.

Üdv.

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.