- Volkswagen ID.7 menetpróba
- Nothing Phone (2) - több, mint elsőre látszik
- Huawei P40 lite - kényszerpályán
- Google Pixel 6/7/8 topik
- iPhone topik
- Különleges kameraszettet kapott a Huawei Pura 70 Ultra
- Macrodroid
- Apple iPhone 15 Pro Max - Attack on Titan
- MIUI / HyperOS topik
- Samsung Galaxy Watch6 Classic - tekerd!
Hirdetés
-
Sorra osztja a dollármilliárdokat az USA a chipgyártóknak
it Az Intel, a TSMC és a Samsung után a Micron következik, ők is tetemes összegű támogatást kapnak az USA-tól a chipgyártáshoz.
-
Analóg kapcsolós klaviatúrák triója a Razer fémjelzésével
ph A Huntsman széria harmadik nemzedékét háromféle formátumban vihetjük haza.
-
Sony Xperia bemutató lesz május 17-én
ma Különleges Xperia eseményt tart a Sony Tokióban, száz résztvevőt invitálnak.
-
Mobilarena
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
-
Fferi50
őstag
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. -
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?HONOR Magic5 Pro - Huawei P30 Pro 8/128 GB - Xiaomi MI Note 10 Pro - Huawei Mate 10 Pro
-
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?
[ Szerkesztve ]
XBOX ONE GT: istvankereszt79
-
andreas49
senior tag
válasz istvankeresz #50004 üzenetére
Ezt valószínűleg nem nekem akartad címezni, hanem Ferinek
[ Szerkesztve ]
HONOR Magic5 Pro - Huawei P30 Pro 8/128 GB - Xiaomi MI Note 10 Pro - Huawei Mate 10 Pro
-
Fferi50
őstag
válasz istvankeresz #50004 üzenetére
Szia!
Miért kell bezárni a fájlt egy új munkalap hozzáadása után?
Ü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.
[ Szerkesztve ]
XBOX ONE GT: istvankereszt79
-
Fferi50
őstag
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. -
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
őstag
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. -
Fferi50
őstag
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
őstag
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 -
istvankeresz
aktív tag
-
Fferi50
őstag
válasz istvankeresz #50017 üzenetére
Szívesen!
-
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
őstag
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. -
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
[ Szerkesztve ]
XBOX ONE GT: istvankereszt79
-
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
[ Szerkesztve ]
XBOX ONE GT: istvankereszt79
-
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 -
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?
-
Fferi50
őstag
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
-
Fferi50
őstag
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
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).. -
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... -
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![ Szerkesztve ]
-
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á.
-
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!
-
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.HONOR Magic5 Pro - Huawei P30 Pro 8/128 GB - Xiaomi MI Note 10 Pro - Huawei Mate 10 Pro
-
andreas49
senior tag
-
andreas49
senior tag
Amint írtam, egy munkalapon az azonos tartomány az 100-120 név, de 8 csoportban (ures sorok a csoportok között), így egy lapon 8* kell a villámkitöltést
elvégezni, mivel az üres sornál leáll. Ez 5-600 munkalapnál *-va 8-al elég hosszadalmas.HONOR Magic5 Pro - Huawei P30 Pro 8/128 GB - Xiaomi MI Note 10 Pro - Huawei Mate 10 Pro
-
Delila_1
Topikgazda
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.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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? -
Fferi50
őstag
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.