-
PROHARDVER!
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.
Új hozzászólás Aktív témák
-
eszgé100
őstag
Nincs
-
user112
senior tag
Sziasztok!
Időnként előfordul, hogy Ctrl-C-re nem az aktuális cella másolódik a vágólapra, hanem az aktuális sor törlődik. Mi lehet ennek az oka? Excel 2007; win 7.
Köszönöm. -
eszgé100
őstag
válasz
eszgé100 #50096 üzenetére
megtalaltam mi a hiba, viszont igy egy masik kerdes merult fel.
F, G, H oszlopban felteteles formazas van ervenyben, 0 eseten a betu es hatter szine feher, ami jo is addig amig a Customert es a Commodity-t ki nem valasztom egy legordulo listabol. Ekkorra az index formulak eredmenye mar nem 0, szoval a felteteles formazasnak el kellene tunnie, de a feher betuszin nem valtozik meg valamiert, tudtok erre valami magyarazatot? -
eszgé100
őstag
sziasztok,
van egy allandoan bovulu tablazatom, a lenti koddal terjesztek ki mielott adatokat viszek be.
problemam a formulakkal van, miutan a tablazat merete megvaltozott a formula nem ad eredmenyt, csak ha bezarom es ujranyitom a munkafuzetet.
Van valami otletetek, hogy mikent tundam ezt orvosolni?mrs.Activate
Set tbl2 = mrs.ListObjects("Table2")
lastrow = Cells(Cells.Rows.Count, "A").End(xlUp).Row
tbl2.Resize mrs.Range("A2:N" & lastrow + 1)
lastrow = Cells(Cells.Rows.Count, "A").End(xlUp).Row
mrs.Range("A" & lastrow) = modnum
mrs.Range("B" & lastrow) = modtype
mrs.Range("F" & lastrow).Formula2 = "=INDEX(Lists!$L$4:$L$33,MATCH(1,([@Customer]=Lists!$J$4:$J$33)*([@Commodity]=Lists!$K$4:$K$33),0))"
mrs.Range("G" & lastrow).Formula2 = "=INDEX(Lists!$M$4:$M$33,MATCH(1,([@Customer]=Lists!$J$4:$J$33)*([@Commodity]=Lists!$K$4:$K$33),0))"
mrs.Range("H" & lastrow).Formula2 = "=INDEX(Lists!$N$4:$N$33,MATCH(1,([@Customer]=Lists!$J$4:$J$33)*([@Commodity]=Lists!$K$4:$K$33),0))" -
Fferi50
Topikgazda
Szia!
Például: abban a munkafüzetben, amiben a makró van, egy munkalap egy cellájába beírod a következő nyomtatás dátumát(időpontját). A makróval megnézed, hogy a cellában levő dátum/idő elmúlt-e már, ha igen akkor átírod a dátumot a következőre és nyomtatsz egyet, ha nem, akkor a makrónak nyomtatás nélkül vége.
Üdv. -
VGYke
addikt
válasz
Fire/SOUL/CD #50093 üzenetére
Köszi, de nem is a gyakorlati haszna, hanem az elvi megvalósítás miatt lenne érdekes számomra! Nem kell tudnia a makrónak mikor nyomtattam rajta kívül, csak annyit, mikor nyomtattam a segítségével, és ha letelt az idő nyomtasson, ha nem, nem.
Ez tényleg már csak érdekesség, hogyan lehetne makróval megoldani (ketyeg az idő, ha letelt, nyomtasson valamit, ha nem várjon)... -
Ennek a kérdésnek semmi értelme, mert:
1. Teljesen lényegtelen, hogy egy adott XLS/XSLX táblázatot mikor nyomtattál ki, ha közben eltelt 1 év... (pl. 1 éve kinyomtattál egy Excel táblát, de 1 órája meg nyomtattál akármit...)
2. Az OS automatikusan hozzárendeli a fájlhoz, az utolsó nyomtatási idejét, de ez nem mérvadó, lásd feljebb... (jobb egér a fájlon, tulajdonságok/részletek fül -> utolsó nyomtatás dátuma)Szóval, ha nem akarod, hogy beszáradjon a masina (van benne tapasztalatom, most már kb. 7-9 éve az ECO Tank Epson-okkal), akkor minden hónapban 1x nyomtass ki egy szines képet, jó minőségben, oszt' ennyi...
-
VGYke
addikt
Sziasztok! Egy olyan, gondolom másként nem magvalósítható, makrós Excelen töröm a fejem, ami a következőre képes, a színes-tintatartályos drága nyomtatóm miatt, nehogy beszáradjanak a nyomtató fejek:
Ha elindítom mondjuk a Print.xlsx-t, akkor nézze meg hogy utoljára mikor nyomtatta ki a tesztképet.
* Ha a beállított időn belül (mondjuk utolsó nyomtatás+14 nap), akkor ne csináljon semmit.
* Ha a beállított időn kívül (mondjuk utolsó nyomtatás+15 nap), akkor nyomtasson egy általam megadott, akár xlsx tesztképet.
Nyilván a makró nem tudja figyelni, hogy a Print.xlsx indításai között, időközben nyomtattam-e, így nem sok értelme van, de akkor is izgat a feladat.
Tudtok segíteni? -
Ærni
tag
Sziasztok!
Legördülő listánál kérem a segítségetek. Magát a listát létrehozni sikerült, működik is szépen. Mentés, excel bezárása és újranyitása után, viszont eltűnik a legördülő lista, mintha soha létre se hoztam volna.
Szerintetek mi lehet a baj? Mit ronthattam el?Köszí!
-
Delila_1
veterán
válasz
Sátán44 #50083 üzenetére
Nézd meg ezt a régi fájlt, és írd át a saját igényednek megfelelően.
Itt is játszik a névadás a Névkezelőben. -
lappy
őstag
válasz
BullZeye #50086 üzenetére
Ez adja meg az utolsó szam helyét
Formula 1: =MAX(IF(ISNUMBER(VALUE(MID(A2,ROW(INDIRECT("1:" & LEN(A2))),1))),ROW(INDIRECT("1:" & LEN(A2))))) + Ctrl + Shift + Enter;
Formula 2: =MAX(IFERROR(FIND({1,2,3,4,5,6,7,8,9,0},A2,ROW(INDIRECT("1:"&LEN(A2)))),0)) + Ctrl + Shift + Enter
-
BullZeye
veterán
Van lehetőség nem karakter, hanem maximum 3 szám eltávolítására egy cella végéről?
Cél, hogy ezen cellákbólNarancs123
Narancs3
NarancsLegyen ez mindhárom esetben:
Narancs
-
Delila_1
veterán
-
Sátán44
addikt
válasz
Lasersailing #50079 üzenetére
Ezt már próbáltam, de nem jó megoldás számomra. Több mint 100 beosztásból áll a lista, ezért szeretném szűkíteni, vagy ha lenyomom a kezdőbetűt ugorjon az 1 találatra, majd másodszori leütésre ugorjon a 2. találatra.
-
Lasersailing
senior tag
válasz
Sátán44 #50078 üzenetére
Szia,
A data menüben van data validation, ott állítsd be az engedélyezett cellákat list-re, majd a forrásnál egérrel kijelölöd/beírod, hogy mely cellákból fogadjon el értéket.
$-jeleket használd a szokásos módon, ha másolni szeretnéd a cellákat!De ez (tudtommal) nem tud olyat, hogy kitöltéskor szűkítse a listát és a végén csak választhassál:
- itt vagy kiválasztod, hogy melyiket szeretnéd,
- vagy beírhatod pontosan azt.Ha elírod, akkor hibaüzenettel nem enged kilépni a cellából (bár ez állítható, ha megnézed a kisablak tabjait)
-
Sátán44
addikt
Sziasztok!
Kérném a segítségeteket!
Kizárólag Office 2016-ban hogy lehet megoldani a következőt?B3-as cella legördülö lista legyen, de keresési- szűrési lehetőséggel, gépeléskor szűkítse a találati listát. A forráslista munka2 lapon szerepel. Ahhoz hasonlót, mint az alapértelmezett szűrés funkció tud. Minden megoldás érdekel
-
Bertiee
senior tag
Szisztok! Tudnátok abban segíteni, hol találhatnék gyakorlófeladatokat-megoldásokkal könnyebbtől nehezebb szintig? Most barátkozom az Excellel, online anyagokból tanulok, de jó lenne sokat gyakorolni. Köszönöm!
-
Delila_1
veterán
válasz
Ani Ann #50069 üzenetére
A sheet-2 lap A1 cellájába beírod
=sheet-1!A1
Ezt másolhatod jobbra, és le.
Ha a 2. lapon nem az 1. lap tükörképét akarod létrehozni, akkor a 2. lap megfelelő cellájába írod a képletet. Pl. a 2. lap D2 cellájában akarod látni az 1. lap A1 cellájának az aktuális értékét, akkor a 2. lap D2-be írod be a fenti képletet. -
Ani Ann
friss újonc
sziasztok, még uj vagyok a csoportban, egy kis segitségre lenne szükségem. 2011-es angol nyelvü excel táblázatot használok, a kérdésem a következő: többlapos táblázatban (bal alsó sarokban "sheet-1, sheet-2, stb" ) szeretnék egy olyan beállitást, hogy ha mondjuk a "sheet-1" lapon módositok valami adatot, az megjelenjen a "sheet-2" lapon is. ez hogyan lehetséges? köszi előre is.
-
eszgé100
őstag
sajnos nem egészen jó, viszont valószínű fel fogom tudni használni.
a makró működik, de csak abban az esetben, ha a cella tartalma egy 123456789012.abc formátumú szöveg, nálam pedig B2 cella:
=INDEX(Lists!$L$4:$L$33,MATCH(1,([@Customer]=Lists!$J$4:$J$33)*([@Commodity]=Lists!$K$4:$K$33),0))azt fogom csinálni, hogy mielőtt szükség lenne rá, egy másik makróval kimásolom a többi releváns adattal együtt, és Paste as Value-val beillesztem egy másik munkalapra, ahol már le tudom futtatni a fenti kódot.
köszönöm szépen
-
lappy
őstag
válasz
eszgé100 #50065 üzenetére
Sub TwoFonts2()
Dim MyPos, SearchChar
SearchChar = "."
Range("B2").Select
With ActiveCell.Characters(Start:=5, Length:=1).Font
.Name = "Calibri"
.FontStyle = "Bold"
.Size = 16
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With ActiveCell.Characters(Start:=8, Length:=3).Font
.Name = "Calibri"
.FontStyle = "Bold"
.Size = 16
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
End Sub -
eszgé100
őstag
Sziasztok!
az egyik cellámban ez a formula található
=INDEX(Lists!$L$4:$L$33,MATCH(1,([@Customer]=Lists!$J$4:$J$33)*([@Commodity]=Lists!$K$4:$K$33),0))
ami ilyen formátumban ad vissza értékeket: 123456789012.abc
meg lehetne oldani, hogy a fenti példából az 5 és a 890 külön legyen formázva, teszem azt alapból 10-es normál betűméret, az 5-890 pedig 16 vastag legyen?
előre is köszönöm
-
bozsozso
őstag
válasz
Lasersailing #50062 üzenetére
Na erre nem is gondoltam. Pedig tök egyszerű. Köszönöm szépen.
-
bozsozso
őstag
Sziasztok,
Makróval kiolvasom egy cella tartalmát ami minden esetben szám, de szövegként kezelem. Nullával szeretném az elejét felölteni 3 karakterre, ezt excelben a szöveg függvénnyel meg tudtam oldani, de szeretném ezt a makróban megcsinálni. TEXT(változó,"000")-vel próbálkoztam, de ezzel nem sikerült. Hogyan tudnám ezt megoldani. Excelben a cellát nem kell módosítani, csak a makróban amiből egy könyvtárat hozok létre.
Pl.:
Cella tartalma: 7
Makróban viszont 007-es könyvtárat szeretnék létrehozni. Ha nem előnullázom akkor csak 7-es könyvtárat hoz létre.Előre is köszönöm a segítséget.
-
fruel
csendes tag
Sziasztok!
Egy adott pillanatban egy termékre vonatkozó éppen futó projekteket szeretném excel diagramban megjeleníteni.
3 oszlop lenne:
- projekt neve
- projekt indulási dátuma
- projekt befejezési dátuma
A diagram
- y tengelye a projektek tengelye
- x tengely az idő tengely de dátumokat mutatva.
Csatolva egy kép, hátha az még segít a megérésben.
Hogy tudom ezt megvalósítani?
Előre is köszi
Cs.
-
Lasersailing
senior tag
válasz
Fferi50 #50056 üzenetére
Köszönöm!
A második ötletet simán el tudom képzelni, ez magyarázná, hogy miért csak néha dob hibát.
Holnap megpróbálok betenni egy rövid szünetet ("sleep") és úgy fogom használni egy pár napig, ha akkor is előjön, akkor jelentkezem. Ha nem, akkor meg kitesztelem mi a legrövidebb várakozási idő ami még elfut. (mert közben az is a gond, hogy rengetegszer kell hálózati file-t megnyitni - bezárni, így pont várakoztatni nem szeretném a programot) -
Fferi50
Topikgazda
válasz
Lasersailing #50051 üzenetére
Szia!
Not enabled - azt jelenti, hogy nincs bekapcsolva (láthatóan szürke), tehát nem lehet rávinni a fókuszt.
Elképzelhető az is,hogy másik vezérlőhöz kapcsolódó esemény fut még és ezért nem sikerül a fókuszt áttenni a kérdéses objektumra.
Üdv. -
Ramsan
lelkes újonc
Köszönöm! Átnézem és okosodok belőle
Közben találtam ezt
https://hu.extendoffice.com/documents/excel/2484-excel-random-number-no-duplicates-no-repeat.html
Az alján van egy kiegészítő . Kutools for Excel. Ezzel pillanatok alatt meglett. De azért megtanulom a képlettel való megoldást is. -
Ramsan
lelkes újonc
Hello szakik!
Egy oszlopban egymás alatt lévő 150 cellát szeretnék feltölteni 1-160 ig terjedő számmal véletlenszerűen úgy hogy egyikbe sem kerüljön azonos szám. Tulajdonképpen a 160 db szám véletlenszerű elosztásáról lenne szó. Milyen módszer lenne erre ?
-
Lasersailing
senior tag
válasz
Fferi50 #50050 üzenetére
Bocsánat valamit elbénáztam, a csatolásnál:
Ugyanaz a programrészlet egyszer elakad máskor nem. Holnap bentről tudok csatolni hosszabb programrészletet.
Amiket ír:
"invisible": ennek az elemnek a láthatóságát nem variálom a makróban, mindvégig látható --> kizárnám
"not enabled": ez nem tudom mire vonatkozhat???
"type does not accept focus": máskor meg elfogadja, talán nem ez a gond, nem? -
Fferi50
Topikgazda
válasz
Lasersailing #50049 üzenetére
Szia!
Mi a hibaüzenet?
Van különbség a hibát okozó és a rendben lefutó kód között?
Jó lenne bővebb kódrészletet látni ha nem titok.
Üdv. -
Lasersailing
senior tag
Sziasztok,
Excel vba-ben lenne kérdésem:
egy userform-on szeretnék egy mezőt kiválasztani az alábbi sorral:orderattekinto.szken.SetFocus
Ez bizonyos esetekben működik úgy ahogyan szeretném, majd más esetekben hibára fut:
Ennek mi lehet az oka? Mi lehet a hiba? -
Delila_1
veterán
válasz
andreas49 #50045 üzenetére
Kijelölöd a tartományt az alsótól a felsőig. Ctrl+g-re bejön az Ugrás menü. Kiválasztod az Irányított-at, majd az Üres cellák-at. Beírsz valamit, pl. egy pontot, majd Ctrl+Enterrel egyszerre beviszed az összes kijelölt cellába.
Most már nem kell külön nyolcanként a villámkitöltés, egy lépésben elvégezhető.
Szűröd az oszlopot a bevitt pontra, kijelölöd a sorokat, és törlöd a pontot. -
-
andreas49
senior tag
Sziasztok,
Képlettel hogyan tudnám megoldani, hogy a Jakab Gipsz -ből Jakab GIPSZ legyen, esetleg ez lefelé is másolható legyen, valamint ha 3 tagú a név akkor csak a harmadik tag legyen nagybetűs.
Köszi a segítséget előre is. -
huan
őstag
Sziasztok,
Ezt a dolgot hogyan tudnám megoldani?
Egy excel táblában van egy formanyomtatvány. Ott van egy cella, ami változik és nyomtatnom kellene belőle 50db-ot úgy, hogy a formanyomtatvány (csak)ezen cellája mind az 50 esetében más. Az 50db egyedi érték szintén excelben (vagy ugyen ebben más munkalapon) van. Olyan mint a word körlevél, ha word-ben lenne, sima ügyem lenne, de nem akarom word-be tenni, formázgatni...
Hogyan oldjam meg?Köszönöm előre is!
-
ny.janos
tag
válasz
Czmorek #50031 üzenetére
Szia!
Egyéni számformátummal is megoldhatod a nullák elrejtését, HA függvény sem kell hozzá.
-
Czmorek
aktív tag
válasz
Lasersailing #50032 üzenetére
Nem müxik, de a vesszőket kicseréltem ;-re és úgy már megy.
Köszi! -
Czmorek
aktív tag
Helló!
Kifog rajtam valami apróság...
=SZUM(I10:I27)
Azt szeretném, hogy ha nulla az eredmény akkor üres maradjon a négyzet, ne 0 legyen ott.
Körberaktam már HA függvénnyel, de nem adja... -
the radish
senior tag
válasz
Fferi50 #50029 üzenetére
Szia!
Akkor most már offolom, úgy néz ki, egyedi a problémám. Azért nem értem, mert két különböző gépről, (WIN10, WIN11) és két különböző Office-ról van szó. Az irodai gép IT által menedzselt, azaz korlátozottak a beavatkozási lehetőségeim és nem is emlékszem, hogy babráltam volna vele.
Most gyorsan megnéztem Sasmsung Ativ Samrt Pc-n (Win11 + Office 365) és ott is produkálja. Semmi mást nem csinálok, csupán kikapcsolom a sor és oszlopazonosítókat.
Mindegy, azért tudok ezzel együtt élni és nagyon köszönöm, hogy segítettél ez ügyben (is).. -
Fferi50
Topikgazda
válasz
the radish #50028 üzenetére
Szia!
Nos nálam ebben a verzióban sem csinálja így a 365.
Üdv. -
the radish
senior tag
-
Fferi50
Topikgazda
válasz
the radish #50026 üzenetére
Szia!
Tudom, nem vígasztal, de nálam nem jön elő ez a probléma 365-ben. Talán valami más beállítás - ami az egérmutató formáját vezérli - a Windows-ban lehet a ludas, mert az Excel beállításnál nem találtam ilyet.
Jól gondolom, hogy adatérvényesítéssel áll elő a lista?
Üdv. -
the radish
senior tag
Sziasztok!
Először is kérem, ne nevessetek, ki.
Másodszor pedig jöjjön egy lényeges kérdés. (Na jó, annyira talán mégsem, de azért amióta felfedeztem, egy kicsit bosszant (de csak picit).Viszont ha kikapcsolom a sor- és oszlopazonosítókat, a gyönyörű egérmutató átalakul:
Excel 365 és 2019 tesztelve, eredmény ua.
Van erre megoldás, vagy engedjem el?
-
Pakliman
tag
válasz
istvankeresz #50023 üzenetére
Szia!
Egy pl. a billentyű(k) tiltására/átengedésére:
Private Sub tbValami_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub -
istvankeresz
aktív tag
válasz
istvankeresz #50022 üzenetére
User error bocsánat.
IsNumeric(deg) maradt benne az IsNumeric(Textbox11.value) helyett.
Khm, mégsem jó....
A Dr. 1 -et engedi beírni
-
istvankeresz
aktív tag
Üdv újra!
Ha egy textboxban megtiltom, hogy számokat lehessen beírni, azzal a céllal, hogy elvileg nincs numerikus karakterekből álló nevű ember, akkor a . (pont) karaktert, hogy tudom mégis engedélyezni? Itt a Dr. Valaki esetet akarom megoldani.
Ebből indulok ki:
Private Sub TextBox11_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TextBox11.Text) > 30 Then
MsgBox "Maximum 30 karakter!"
TextBox11.Text = ""
ElseIf IsNumeric(deg) = True Then
MsgBox "Csak betüt írj!"
TextBox11.Text = ""
End If
End Sub
-
Fferi50
Topikgazda
válasz
the radish #50019 üzenetére
Szia!
Ez sajnos egy erős BUG a legújabb Excel verziókban. Nem tudom, szóvá tette-e valaki a MS oldalán. Valahány fájlt megnyit, mind ottmarad a VBA oldalon, de egyébként ha "megkérdezed" hány munkafüzet van nyitva, akkor 0 a válasz. Viszont úgy tűnik, a memóriát azért foglalja, sőt el is tud indulni a benne levő makró - csak épp hiba vagy összeomlás a vége. Csak a bezárás és újranyitás segít sajnos.
Jelenteni kell a MS felé.
Üdv. -
the radish
senior tag
Sziasztok!
Msgbox az alábbi formában:
myResponse = MsgBox("Amennyiben folytatod, az összes megnyitott excel fájl mentés nélkül bezáródik." & vbNewLine & "" & vbNewLine & "Biztosan folytatod?", 4 + 48 + 256, "Figyelem!")
If myResponse = vbNo Then Workbooks("Ctrl.xlsb").Close SaveChanges:=FalseMajdnem tökéletes, az excel bezárása nélkül mentés nélkül be is zárja a munkafüzetet,
viszont a VBA-ban benne marad a "fájl" és ha újra - az excel bezárása nélkül megnyitom, akkor elég hektikusan, de inkább sehogy nem működik. Hogy tudom megoldani, hogy a fájl bezárása során a VBA-ból is tűnjön el? -
Fferi50
Topikgazda
válasz
istvankeresz #50017 üzenetére
Szívesen!
-
Fferi50
Topikgazda
válasz
Fferi50 #50015 üzenetére
No itt a makró javított kiadása:
Sub akarmi()
Dim answer As Integer, wsFound As Boolean
Dim wbSearch As Workbook, wsSearch As Worksheet
wsfound = False
On Error Resume Next
Set wsSearch = Sheets(Textbox11.Value)
If Err = 0 Then
'ha van már ilyen munkalap, akkor feltesszük a kérdést
answer = MsgBox("Ilyen nevű munkatárs már rögzítve! Biztos, hogy folytatod a rögzítést?", vbQuestion + vbYesNo + vbDefaultButton2, "Munkatárs rögzítése")
If answer = vbYes Then wsSearch.Copy after:=Sheets("Havi_TEMPLATE"): wsFound = True
Else
Err = 0
Sheets("Szemely_TEMPLATE").Copy after:=Sheets("Havi_TEMPLATE")
ActiveSheet.Name = Textbox11.Value
wsFound=True
End If
On Error GoTo 0
If wsFound Then
With ActiveSheet
.Range("A2") = Textbox11.Value & " " & ComboBox7.Value
.Range("B2") = TextBox12.Value
.Range("C2") = TextBox13.Value
.Range("D2") = TextBox14.Value
End With
MsgBox "Munkatárs sikeresen rögzitve! Kérlek zárd be és nyisd meg újra a programot!"
End If
Textbox11.Value = ""
ComboBox7.Value = ""
TextBox12.Value = ""
TextBox13.Value = ""
TextBox14.Value = ""
'Sheets(xx).Activate az alapmunkalap aktíválása, ha szükséges.
End Sub -
Fferi50
Topikgazda
válasz
istvankeresz #50013 üzenetére
Szia!
Inkább ezt próbáld ki, mert a másik nem igazán jó:Sub akarmi()
Dim answer As Integer, wsFound As Boolean
Dim wbSearch As Workbook, wsSearch As Worksheet
wsfound = True
On Error Resume Next
Set wsSearch = Sheets(Textbox11.Value)
If Err = 0 Then
'ha van már ilyen munkalap, akkor feltesszük a kérdést
answer = MsgBox("Ilyen nevű munkatárs már rögzítve! Biztos, hogy folytatod a rögzítést?", vbQuestion + vbYesNo + vbDefaultButton2, "Munkatárs rögzítése")
If answer = vbYes Then wsSearch.Copy after:=Sheets("Havi_TEMPLATE"): wsFound = True
Else
Err = 0
Sheets("Szemely_TEMPLATE").Copy after:=Sheets("Havi_TEMPLATE")
ActiveSheet.Name = Textbox11.Value
End If
On Error GoTo 0
If wsFound Then
With ActiveSheet
.Range("A2") = Textbox11.Value & " " & ComboBox7.Value
.Range("B2") = TextBox12.Value
.Range("C2") = TextBox13.Value
.Range("D2") = TextBox14.Value
End With
MsgBox "Munkatárs sikeresen rögzitve! Kérlek zárd be és nyisd meg újra a programot!"
End If
Textbox11.Value = ""
ComboBox7.Value = ""
TextBox12.Value = ""
TextBox13.Value = ""
TextBox14.Value = ""
'Sheets(xx).Activate az alapmunkalap aktíválása, ha szükséges.
End Sub
Egy kis magyarázat hozzá:
Nem kell végigpörgetni a munkalapokat, mivel a vba hibakezeléssel megállapítható, ha van már ilyen munkalap => a Set után ha nincs hiba, akkor van már. Amennyiben ugyanolyan nevű új személy van, akkor ezt a munkalapot másoljuk, aminek az lesz az eredménye, hogy az Excel automatikusan ad egy sorszámot a névhez! ezzel nekünk nem kell foglalkozni.
Ha nincs, akkor másoljuk a Templatet.
Mivel a másolt munkalap lesz az aktív, utána beírhatjuk a szükséges adatokat az új munkalapra.
Remélem sikerülni fog.
Üdv. -
Fferi50
Topikgazda
válasz
istvankeresz #50008 üzenetére
Szia!
Egy minta makrórész:Sub akarmi()
Dim answer As Integer, wsFound As Boolean
Dim wbSearch As Workbook, wsSearch As Worksheet
wsFound = True
For Each wsSearch In ActiveWorkbook.Sheets
If wsSearch.Name = TextBox11.Value Then
answer = MsgBox("Ilyen nevű munkatárs már rögzítve! Biztos, hogy folytatod a rögzítést?", vbQuestion + vbYesNo + vbDefaultButton2, "Munkatárs rögzítése")
wsFound = answer = vbYes
End If
Next
If wsFound Then
Sheets("Szemely_TEMPLATE").Copy After:=Sheets("Havi_TEMPLATE")
With ActiveSheet
.Name = TextBox11.Value & 2
.Range("A2") = TextBox11.Value & " " & ComboBox7.Value
.Range("B2") = TextBox12.Value
.Range("C2") = TextBox13.Value
.Range("D2") = TextBox14.Value
End With
MsgBox "Munkatárs sikeresen rögzitve! Kérlek zárd be és nyisd meg újra a programot!"
End If
TextBox11.Value = ""
ComboBox7.Value = ""
TextBox12.Value = ""
TextBox13.Value = ""
TextBox14.Value = ""
'Sheets(xx).Activate az alapmunkalap aktíválása, ha szükséges.
End Sub
A Combobox Additem tulajdonságát nézd meg a forrás frissítésre.
Üdv. -
Msony
tag
Sziasztok!
Tudom, hogy nincs ilyen formázási lehetőség, de azért felteszem kérdésnek.
Szöveget fűzök össze és szeretném, ha valamilyen módon egy-egy szövegszakasz vastagon lenne kiemelve.
Tehát függvénnyel kiírt szöveg formázásánál meg lehet adni szövegformázást stílussal? Vagy esetleg másik betűtípussal?Nem akarok makrót írni erre.
Üdv.
-
Fferi50
Topikgazda
válasz
istvankeresz #50008 üzenetére
Szia!
Én az ugrálást egyáltalán nem támogatom.
A Combobox forrását (List tulajdonság) lehet frissíteni vba-ból is, nem kell azért bezárni a munkalapot.
Én bevezetnék egy változót, amivel jelölném a találatot.
A ciklus elején True-ra állítom. Ha van már olyan munkalap, akkor jön a kérdés, ha létre kell hozni az új munkalapot, akkor marad True, ha nem, akkor False-ra állítom. A vizsgálat után kilépek a ciklusból. A ciklus után ha True a jelölő, akkor létrehozzuk a munkalapot, ha False, akkor nem kell létrehozni.
Üdv. -
istvankeresz
aktív tag
válasz
Fferi50 #50007 üzenetére
Szia!
Azért, mert a bezárás nélkül nem látszik az új berögzített személy, azaz a új worksheet egy másik comboboxban, ahol ezt az új worksheet-t ki lehet választani. Ezt még nem sikerült megoldanom. De rajta vagyok ezen is.
Esetleg valami GoTo megoldás nem lehet jó nekem? Talán ha az egyik feltétel teljesül, akkor ugorjon ide, ha a másik, akkor ugorjon oda.
-
Fferi50
Topikgazda
válasz
istvankeresz #50004 üzenetére
Szia!
Miért kell bezárni a fájlt egy új munkalap hozzáadása után?
Üdv. -
andreas49
senior tag
válasz
istvankeresz #50004 üzenetére
Ezt valószínűleg nem nekem akartad címezni, hanem Ferinek
-
istvankeresz
aktív tag
válasz
andreas49 #50003 üzenetére
Üdv!
A megegyező nevű emberek textboxból berögzítésének problémájánál akadtam el.
Az működik, hogy berögzítek egy embert, aminek a neve lesz a worksheet neve, ilyenkor ugye ha még egy ugyanolyan nevű embert rögzittek, akkor az sikertelen.
Ha úgy oldom meg, hogy tegyen mellé egy valamilyen karaktert (Pl.: 2), akkor az is működik(egyszer). Harmadik ugyanilyen nevű embernél már ez is hibázik. Ez már nagyon kis eséllyel fordul elő, de hibás rögzítésnél könnyen előfordulhat.
Erre van kiforrott megoldás, vagy olyasmire gondoltam , hogy egy 2-től növekvő számot tegyen az ilyen esetekben a nevek mögé, és úgy hozzon létre egy új worksheet-t.
Másik problémám pedig ennek a problémának a figyelése. Próbáltam elágazásokkal, Case Select-el, de mindig valami félre ment. A koncepcióm az, hogy a rögzítő gomb megyomásakor egy ciklus végigfut a worksheeteken, ha nem talál egyező worksheetet, akkor létrehozza azzal nével, ami a textboxban van. Ha talál egyezőt, akkor megkérdi, hogy biztos rögzíted? Ez lenne a két megegyező nevű ember esete. Itt ha Igen.t nyom, akkor létrehozza a fent említett módon. Pl. Kovács Béla2. Viszont a ciklusokból nem sikerül jó helyen kilépnem. Mert a feltételek nem úgy teljesűlnek, ahogy én terveztem.
Most ezt faragom, de ez sem működik jól:
Dim answer As Integer
Dim wbSearch As Workbook, wsSearch As Worksheet
For Each wsSearch In ActiveWorkbook.Sheets
Select Case wsSearch.Name
Case Is <> TextBox11.Value
Case Is = TextBox11.Value
answer = MsgBox("Ilyen nevű munkatárs már rögzítve! Biztos, hogy folytatod a rögzítést?", vbQuestion + vbYesNo + vbDefaultButton2, "Munkatárs rögzítése")
If answer = vbYes Then
Sheets("Szemely_TEMPLATE").Copy After:=Sheets("Havi_TEMPLATE")
ActiveSheet.Name = TextBox11.Value & 2
Sheets(TextBox11.Value).Range("A2") = TextBox11.Value & " " & ComboBox7.Value
Sheets(TextBox11.Value).Range("B2") = TextBox12.Value
Sheets(TextBox11.Value).Range("C2") = TextBox13.Value
Sheets(TextBox11.Value).Range("D2") = TextBox14.Value
MsgBox "Munkatárs sikeresen rögzitve! Kérlek zárd be és nyisd meg újra a programot!"
TextBox11.Value = ""
ComboBox7.Value = ""
TextBox12.Value = ""
TextBox13.Value = ""
TextBox14.Value = ""
End If
If answer = vbNo Then
TextBox11.Value = ""
ComboBox7.Value = ""
TextBox12.Value = ""
TextBox13.Value = ""
TextBox14.Value = ""
End If
End Select
Next wsSearch
Szóval ezen az úton indultam el. Ötlet?
-
andreas49
senior tag
Sziasztok,
Dátum sorba tételével van gondom:
Több dátumom 1900 előtti, így nem tudja rendezni ezeket. Próbáltam szétválasztani év-hó-nap formába, így már sorba lehetett tenni, de az összefűzésnél az 1900 előtti dátumok 'vad' értékeket adnak. Lehet, hogy az a legegyszerűbb, ha meghagyom az eredeti oszlopot is, majd az összefűzés után törlöm a szétválasztott oszlopokat? -
Fferi50
Topikgazda
válasz
the radish #50000 üzenetére
Szia!
Képletet összefüggő tartományra meg lehet adni egy lépésben:
Pl.Range("O1:O" & usor).FormulaLocal="=HAHIBA(INDEX(C$1:C$20000;$N1);"""")
Érték másolás önmagára akkor kell, ha nem szeretnéd a képletet megtartani.
Üdv.
Új hozzászólás Aktív témák
Hirdetés
- Információbiztonság, kiberbiztonság, adatvédelem
- Linux kezdőknek
- Házimozi belépő szinten
- HiFi műszaki szemmel - sztereó hangrendszerek
- Kínai és egyéb olcsó órák topikja
- Apple MacBook
- Trollok komolyan
- Okos Otthon / Smart Home
- Akciófigyelő: Ingyenes Steamen a Borderlands 2
- AliExpress tapasztalatok
- További aktív témák...
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Eladó steam/ubisoft/EA/stb. kulcsok Bank/Revolut/Wise (EUR, USD, crypto OK)
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Eladó Steam kulcsok kedvező áron!
- Apple iPhone 11 64GB, Kártyafüggetlen, 1 Év Garanciával
- Lejárt a gyártói garancia? Mi tovább támogatjuk az IT infrádat!
- Beszámítás! Apple Watch SE 2024 44mm Cellular okosóra garanciával hibátlan működéssel
- Bontatlan SteelSeries QcK 3XL egérpad
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest