- Milyen okostelefont vegyek?
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- One mobilszolgáltatások
- Sony Xperia 1 V - kizárólag igényeseknek
- Huawei Watch GT 3 Pro - korlátolt szépség
- Külföldi prepaid SIM-ek itthon
- Hivatalosan is bemutatta a Google a Pixel 6a-t
- Xiaomi 14T Pro - teljes a család?
- Samsung Galaxy Watch7 - kötelező kör
- Okosóra és okoskiegészítő topik
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
-
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
Topikgazda
válasz
Lasersailing #53972 üzenetére
Szia!
Az INDIRECT függvényt a táblázat meghatározáshoz használd, ne az egész képletre:=VLOOKUP(A1,INDIRECT(F1 & "!B:E"),4,0)
Üdv. -
Mutt
senior tag
válasz
Lasersailing #53085 üzenetére
Szia,
Hogy szokjuk az új függvényeket is, itt egy MS365-ben műkődő változat.
D7-ben van az oszlop szám. A SEQUENCE magyar megfelelője SORSZÁMLISTA.=REDUCE(0;SEQUENCE(INDEX($A$1:$ZZ$1;;$D$7));LAMBDA(state;current;state+INDEX($A$2:$ZZ$10000;current;$D$7)))
üdv
-
Fferi50
Topikgazda
válasz
Lasersailing #53085 üzenetére
Szia!
Két lehetőséget is látok:
Az egyik AQ2 képlete (tömbképlet!)=SZUM(INDEX($AE$2:$AK$70;0;AO1)*(SOR($AE$2:$AE$70)<=AO2))
A másik AP2 képlete (volatile képlet)=SZUM(ELTOLÁS($AE$2;0;AO1-1;AO2-1;1))
AO1 cellában az oszlop száma van
AO2 cellában a sorok száma van.A tömbképletet a régebbi verziókban Ctrl+Shift+Enter kombóval kell lezárni, az Excel kapcsos zárójelbe teszi.
A volatile azt jelenti, hogy minden egyes cella változás esetén újraszámolódik a képlet, ami lassítja a számolást.
Remélem, sikerül átültetned a feladatodra.
Üdv. -
lappy
őstag
válasz
Lasersailing #53085 üzenetére
Indirekt függvényt nezd meg
-
lappy
őstag
válasz
Lasersailing #53026 üzenetére
In the Visual Basic Editor, on the Tools menu, click References.
Click to select the Microsoft Outlook 15.0 Object Library check box, and then click OK. -
Fferi50
Topikgazda
válasz
Lasersailing #52614 üzenetére
Szia!
Hiába egyforma kinézetre a két érték, ha az egyik dátum formátumú a másik pedig szöveg.
Ahogyan írtad, a sob sheet A oszlopában dátum formátumok vannak (erről meggyőződhetsz, ha a cellaformátumot megváltoztatva számmá v. általánossá számot látsz a cellában).
A form datumok mezőjében pedig szöveg és a szövegfüggvényekkel való manipulálás után is szöveg marad az összerakott érték! Ezért dátummá kell alakítanod, nem pedig szöveggé összefűznöd. Pl.CDate(Right(Kiszallitasform.datumok.Value, 2) & "/" & Mid(Kiszallitasform.datumok.Value, 6, 2) & "/" & Left(Kiszallitasform.datumok.Value, 4))
Csak utána nézd meg, hogy így mennyi lesz a dátum értéke mert lehet, hogy fordítva kell összeraknod a napot-hónapot.
Másik lehetőség: a sob munkalap A oszlop celláinak nem a VALUE hanem a TEXT tulajdonságát használod és azt hasonlítod az összerakott szöveghez:Sheets(sob).Cells(sm, 1).TEXT= Right(Kiszallitasform.datumok.Value, 2) & "/" & Mid(Kiszallitasform.datumok.Value, 6, 2) & "/" & Left(Kiszallitasform.datumok.Value, 4)
A Text ugyanis mindig az adott cellában levő tényleges "kinézetet" tartalmazza.
Remélem sikerül megoldanod.
Üdv. -
Delila_1
veterán
válasz
Lasersailing #52602 üzenetére
Dátumként deklaráltad a datum-ot, majd szöveges értéket adtál neki.
-
Lasersailing
senior tag
válasz
Lasersailing #52600 üzenetére
Megoldási javaslatod mentén elindultam, most egy másik hibát találtam, ami megint dátumformátum hiba:
Ezzel mi a gond?
(korábban: dim datum as date) -
Delila_1
veterán
válasz
Lasersailing #52600 üzenetére
Szerencsére még nem töröltem ki a makrót.
Átalakítva:Sub Inditas()
Dim sm As Integer, szoveg As String
For sm = 1 To 4
szoveg = Right(Cells(sm, 1), 4) & "." & Mid(Cells(sm, 1), 4, 2) & "." & Left(Cells(sm, 1), 2)
Kiszallitasform.datumok.AddItem szoveg
Next
Kiszallitasform.Show
End Sub
-
Delila_1
veterán
válasz
Lasersailing #52598 üzenetére
Szia,
A feltöltés előtt átalakítom magyar dátumra az A1:A4 adatait.
Sub Inditas()
Dim sm As Integer
For sm = 1 To 4
Cells(sm, 1) = Right(Cells(sm, 1), 4) & "." & Mid(Cells(sm, 1), 4, 2) & "." & Left(Cells(sm, 1), 2)
Kiszallitasform.datumok.AddItem Sheets("sob").Cells(sm, 1)
Next
Kiszallitasform.Show
End Su
b -
Fferi50
Topikgazda
válasz
Lasersailing #52495 üzenetére
Szia!
a.) Szerintem próbáld meg a PrintObject tulajdonságot. Ha True, akkor nyomtatásban látszik, ha False akkor nem látszik a nyomtatásban.
b.) Nézd meg légy szíves az Immediate ablakban, hogy az adott munkalapon hány SHAPES van. Amelyik a Textboxot tartalmazza, annak a Visible tulajdonságát állíthatod:
pl. ActiveSheet.Shapes(1).Visible=True / False ha csak egy ilyen van a munkalapon.
c.) Esetleg érdemes lenne elgondolkodnod vízjel hozzáadásán.
[link] Itt egy magyarázat és videó hozzá.
Üdv. -
Lasersailing
senior tag
válasz
Lasersailing #52040 üzenetére
Bocsánat, hogy magamnak válaszolok, de úgy tűnik, hogy ez a megoldás:
[link]Tools / references / AccessibilitycplAdmin 1.0 type admin-t kellett kiválasztani.
(Lehet hogy ezen a gépen én még nem futtattam ezt a makrót és azért nem volt itt kiválasztva?) -
Delila_1
veterán
válasz
Lasersailing #50880 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
Lasersailing #50878 üzenetére
Beszúrás, kiválasztasz egy alakzatot. Alakzat formázása, kitöltés, kép, ahol választhatsz, hogy 3 közül melyik helyről szeretnél képet csatolni.
Az alakzat formázásánál több dolgot is beállíthatsz. -
Fferi50
Topikgazda
válasz
Lasersailing #50822 üzenetére
Szia!
Szerintem 1 másodpercet vár. Legalábbis a kiíratás ezt mutatja. Tizedmásodperceket szerintem nem lehet várakoztatni vba-ból direktben. Esetleg használd a TimeSerial függvényt, ott mindegy milyen az időformátumod.
Üdv. -
Lasersailing
senior tag
válasz
Lasersailing #50821 üzenetére
(bocsánat a dupláért, de már nem szerkeszthető)
Az lehet, hogy a fenti sor nem is 1 teljes másodpercig vár, hanem csak addig amíg új másodperc nem kezdődik???
(F8-cal érzésre nem azonos időközök telnek el a várakozások között) -
Fferi50
Topikgazda
válasz
Lasersailing #50690 üzenetére
Szia!
Szerintem ez nem megy.
Javaslom: Tegyél fel a listbox fölé labeleket, amibe beleírhatod a fejlécet. A Label WordWrap tulajdonsága lehetővé teszi a többsoros szövegeket.
A listboxnál pedig kapcsold ki a fejléc megjelenítést.
Üdv. -
TheSaint
aktív tag
válasz
Lasersailing #50681 üzenetére
Két lépésben szerintem így jó lehet:
keresdatum_raw = Sheets("Serials").Cells(se_sm, 4).Value
keresdatum = Format(DateValue(Left(keresdatum_raw, InStr(1, keresdatum_raw, "_") - 1)), "dd/mm/yyyy") -
Fferi50
Topikgazda
válasz
Lasersailing #50681 üzenetére
Szia!
Ha dec. 28 így néz ki: 28/12/2023, akkor bizony a 2/9/2023 az szept. 2 és nem február 9.
Miből gondolod, hogy február 9-nek kellene lennie?
Ha szövegből szeded ki a dátumot és valóban február 9-et szeretnél, akkor kicsit még "mókolni" kell vele, a hónapot és a napot meg kell cserélni.
Üdv. -
PistiSan
addikt
válasz
Lasersailing #50561 üzenetére
Köszi szépen, ez működik!
Ha esetleg lesz más megoldás azt is megnézem. -
Magnat
veterán
válasz
Lasersailing #50490 üzenetére
Szia,
bakker hogy nem ütötte ki a szememet, nagyon köszi
-
Fferi50
Topikgazda
válasz
Lasersailing #50513 üzenetére
Szia!
Nem emlékszem, melyik Excel verziót használjátok?
1. A tömörítés az új (2017-től) Office verziók formátuma, automatikusan megy és nem befolyásolható - illetve mentéskor választhatsz korábbi formátumot (.xls), de akkor kompatibilitási problémák keletkezhetnek, ráadásul nem is lesz gyorsabb. Ez az új szabvány az Office-ban.
A munkafüzet megosztását szerintem érdemes kipróbálni - O365-ben van egy új lehetőség, a társszerzőség. Persze az egymás után bevitt adatok esetleges felülírását ütközés esetén itt is nehéz szabályozni. Egyszerűbbnek tűnik, ha mindenki számára van egy dedikált terület, ahova írhat - így nem vághatja agyon senki a másik által bevitt adatot. A nap végén - vagy bizonyos időszakonként a napon belül - lehet összefuttatni akár makróval is a felvitt adatokat. Így szerintem elkerülhető az állandó nyitás-mentés-zárás. Keresni pedig a megnyitott fájlban természetesen lehet. ---> Ez a dedikált terület lehet akár a makrófuttató fájl egy munkalapja ill. az "adatbázis" munkafüzetben egy-egy külön munkalap.
Még további gondolat:
Ha mindenki a saját munkafüzetében menti a változásokat, akkor az "adatbázis" munkafüzetet minden felhasználó megnyithatja csak olvasásra. Természetesen ekkor is csak összedolgozáskor frissülhetnek az adatok az "adatbázisban".
Egyidejű - online - adatfrissítés bizonyos korlátozásokkal csak közös használattal és folyamatos mentéssel lehetséges. Amíg a mentés tart, addig nem lehet újabb adatokat bevinni a fájlba természetesen.
Ha gondolod, esetleg priviben még beszélgethetünk a feladatról.
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing #50499 üzenetére
Szia!
A megnyitás-bezárás bizony elég lassú művelet az excelben, pláne a mostani verziókban (tömörítés miatt). Keresni kellene olyan megoldást, amivel nem kell minden beolvasás érdekében újranyitni az "adatbázist".
Ha már adatbázis - miért nem adatbáziskezelőben vannak az adatok? Az lehetővé teszi a több felhasználós működést, már az Access is ilyen.
Milyen típúsúak a beolvasások-kiírások? Ugyanabba a cellába kerülnek különböző adatok egymás után?
Talán érdemes lenne megfontolni az "adatbázist" közös használatúvá tenni, mivel nem abban futnak a makrók, működhetne is szerintem.
Üdv. -
Delila_1
veterán
válasz
Lasersailing #50473 üzenetére
-
Delila_1
veterán
válasz
Lasersailing #50470 üzenetére
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim ujszoveg As String
If Len(TextBox1) = 60 Then
ujszoveg = Left(TextBox1, 23) & Mid(TextBox1, 41, 60)
TextBox1.Value = ujszoveg
End If
End Sub -
Lasersailing
senior tag
válasz
Lasersailing #50470 üzenetére
Úgy látom, a replace megoldja (nem csak a hosszát, hanem a karaktersorozatot is ismerem)
-
Fferi50
Topikgazda
válasz
Lasersailing #50467 üzenetére
Szia!
Szerintem a Textbox szöveget csak egyben lehet formázni, szöveg részletet nem. Megoldás lehet 2 v. több textbox, egymást átfedően, a font tulajdonság állításával.
Üdv. -
Lasersailing
senior tag
válasz
Lasersailing #50347 üzenetére
Végül az alábbi megoldást választottam, mert amit Delila írt / linkelt, az más problémát okozott (valószínűleg az a probléma is kezelhető lett volna, csak amikor elkezdtem ide írni a kérdésemet rájöttem a legegyszerűbb megoldásra, lásd lent)
Az alap problémám az 50347-ben leírtam.
A megoldás pofonegyszerű: csinálok szken1 és szken2 nevű textboxot és mindkettő meghív egy harmadik procedure-t, amiben van a lefuttatandó makró (előtte elmentem az értéket egy mezőbe, legalább a user is látja, hogy mit szkennelt be).
A szkennelés után mindig átugrik a másik textboxba, mivel a többi mező tabstop false-ra van állítva.(leírtam, hátha más is belefut ilyenbe)
-
Delila_1
veterán
válasz
Lasersailing #50351 üzenetére
Nem tudom mindenre a választ, de feltettem ide egy mintát.
A Bevitel tabon van a Kamu TextBox, aminek a szélessége és magassága is 0 értékű.
Ráállni úgy tudsz, hogy a TextBox1-en TAB-ot nyomsz. -
Lasersailing
senior tag
válasz
Lasersailing #50349 üzenetére
Kicsit pontosítom a kérdésemet:
Remekül végig tudom szkennelni az adatokat, minden fut szépen. A gondom az, hogy ezt követően egérrel szeretném, hogy a felhasználó választhasson 4 menüpontból (egérrel), de nem tudom kattintani egyiket sem. Hiába kattintok rá, nem történik semmi. (Ill. lépésenkénti futtatásban látom, hogy lefut a program amit írtál, de a program amit az adott gombhoz rendeltem nem fut le.)Az alábbiak mit jelentenek, mit csinálnak? lehet az a baj, hogy ezt nem értem:
byval cancel as msforms.returnboolean
cancel = true
Gondolom ez adja meg a fentinek az értéket(bocsánat az amatőr kérdésért még pascal-ban tanultam programozni, excel dolgait cseppenként szedegetem össze)
-
Delila_1
veterán
válasz
Lasersailing #50347 üzenetére
Szia!
Kamu névvel illettem a másik TextBoxot.Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Kamu = TextBox1.Value
'.....
TextBox1 = ""
DoEvents
Cancel = True
End Sub -
Fferi50
Topikgazda
válasz
Lasersailing #50293 üzenetére
-
Fferi50
Topikgazda
válasz
Lasersailing #50282 üzenetére
Szia!
Az eseménykezelés letiltása (Application.EnableEvents) sajnos a formra nem terjed ki, így kicsit kerülő úton lehet elérni az esemény "letiltását".
Kell egy publikus logikai változó a userform modul lapjára, aminek a hamis v. igaz értéke szerint fut le az esemény kezelés.
Amikor makróval változtatod az értéket, a változás előtt a logikai változó értékét beállítod, majd utána vissza, hogy a user változásokat le tudja kezelni.
Pl.Userform1 modul lapon:
Public fusson As Boolean
_Change eseménykezelőben
If fusson Then
' amit az eseménykezelőben szeretnél
End If
End Sub
A makróban, bárhol van a makró:Sub Akarmi()
...
Userform1.fusson=False '(Userform1 helyett a formod neve kell!)
... változtatások
Userform1.fusson=True
...
End Sub
A Publikus változó helyes meghívása a Modulnév.Változónév, így egyértelmű a VBA számára, hogy melyik változóról van szó.
Üdv. -
Delila_1
veterán
válasz
Lasersailing #50281 üzenetére
Szám szöveggé alakítása:
cells(x,y)=cells(x,y) & ""
(üres string)
Fordítva:cells(x,y)=cells(x,y)*1
-
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.
-
bozsozso
őstag
válasz
Lasersailing #50062 üzenetére
Na erre nem is gondoltam. Pedig tök egyszerű. Köszönöm szépen.
-
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. -
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. -
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! -
Mutt
senior tag
válasz
Lasersailing #49051 üzenetére
Szia,
Próbáld ki esetleg ezt. Mielőtt meghívod a fájl megnyitót jegyeztesd meg az aktuális fájlt és utána aktiváld vissza.
Dim wbCurrent As Workbook
Set wbCurrent = ThisWorkbook<itt hívd meg a főlapos dolgot>
wbCurrent.Activate
üdv
-
Fferi50
Topikgazda
válasz
Lasersailing #49051 üzenetére
Szia!
Próbáld meg a következőt:
Mielőtt elmented az adatokat, jegyezd meg, melyik az aktív control a userformon. A fájl bezárását végző makróben a bezárás után tedd a fókuszt erre a controlra:
Pl.Userform1.Textbox1.Setfocus
Ha máshol szeretnéd folytatni, akkor arra a controlra kell tenni a fókuszt, ahol a folytatás következne.
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing #49043 üzenetére
Szia!
Hol található a kiíró-mentő programrész? A Userform kódlapján vagy általános modulban?
A fájlt muszáj mindig megnyitni és bezárni a kiírás miatt?
Nagyon nem szép módon a kiírás előtt Userform.Visible= False, utána Userform.Visible=True esetleg segít?
Üdv. -
Mutt
senior tag
válasz
Lasersailing #49041 üzenetére
Kiírás után <userform>.Show esetleg?
-
lappy
őstag
válasz
Lasersailing #48937 üzenetére
Szerintem megosztott dokumentumban a Vba nem működik (sajnos)
-
Fferi50
Topikgazda
válasz
Lasersailing #48918 üzenetére
Szia!
Nem kell a nyomtatni szándékozott munkalapot aktívvá tenni, direktben lehet rá hivatkozni.Sheets("print").Select
ActiveSheet.PrintOut copies:=1, collate:=True, ignoreprintareas:=False
helyettSheets("print").PrintOut copies:=1, collate:=True, ignoreprintareas:=False
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing #48878 üzenetére
Szia!
Való igaz, hogy egyszerre nem lehet modális és nem modális form megjelenítése. A főmodul alatt egy userform kódlapját érted? Ha igen, akkor miért oda kell tenni?
Mielőtt a non-modal formot mutatod, a másikat el kell rejteni, majd utána ismét megmutatni. Hiszen közben csak azt szeretnéd, ha látnák, hogy a program dolgozik.
Egyébként ebből a szempontból érdekes lehet az állapotsor is (Application.Statusbar), ahova beírhatsz saját szövegeket:Application.Statusbar = "Mentés van folyamatban"
Majd a mentés befejezése után:Application.Statusbar = False
visszaadja az állapotsort a VBA-nak.
Üdv. -
Lasersailing
senior tag
válasz
Lasersailing #48876 üzenetére
Ok, rájöttem. Használtam, csak nem tudtam hogy így hívják.
Közben FFeri50 javaslata tetszik azt próbálom meg használni, mert amúgy is userformos minden ebben a programban.
-
Fferi50
Topikgazda
válasz
Lasersailing #48871 üzenetére
Szia!
A Userform.Show -nak van egy Modal nevű paramétere, amely alapértelmezésben True, vagyis a form megállítja a programok futását.
Ha Userform.Show False módon hívod meg, akkor a programok futnak tovább, viszont neked kell gondoskodni a Form "eltüntetéséről" később a futás folyamán.
[Help]
Üdv. -
Delila_1
veterán
válasz
Lasersailing #48871 üzenetére
Beírod a szöveget egy alakzatba. A fájl indításakor láthatatlanná teszed.
Láthatóvá teszed, indítod az adatkiírást, elrejted az alakzatot.Sheets(1).Shapes.Range("Alakzat").Visible = True
'adatkiírás
Sheets(1).Shapes.Range("Alakzat").Visible = False
-
Lasersailing
senior tag
válasz
Lasersailing #48852 üzenetére
Továbbgondolva az eredeti kérdésemet, az alábbi megoldás érdekelne:
Userform használatával arra gondoltam, hogy megjelenítek egy formot, hogy adatkiírás folyamatban. Azt hogyan lehet megoldani, hogy miközben ez megjelenik, aközben fusson le a mentés? (és a végén elhide-olnám) -
alcsa
senior tag
válasz
Lasersailing #48554 üzenetére
Koszonom neked is, most van honnan valogassam
.
-
ny.erno
tag
válasz
Lasersailing #48451 üzenetére
Köszi, megjegyeztem!
-
Fferi50
Topikgazda
válasz
Lasersailing #48430 üzenetére
Szia!
Ugyanabban a munkafüzetben egy menetben is lehet törölni a munkalapokat pl.:Sheets(Array("Munka2", "Munka3", "Munka5")).Delete
Nálam makróból nem kérdezgette, hogy törölhető-e.
Milyen Excel verziót használsz?
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing #48428 üzenetére
Szia!
Szerintem ha azonnal a törlés után visszaállítod a figyelmeztetést, akkor a mentésnél fog várni egy user "akciót".
Próbáld ki, hogy csak a mentés után állítod vissza True - ra az értéket.
Üdv. -
Lasersailing
senior tag
válasz
Lasersailing #48379 üzenetére
Ma arra rájöttem, hogy az
application.displayalerts
okozza a gondot, bár nem értem, hogy miért:A makró elején kitörlök néhány sheetet. Hogy a felhasználót ez ne zavarja van egy sorom:
application.displayalerts = false
a sheetek törlése után pedigapplication.displayalerts = true
Ha így van, akkor a sheetek törlésénél nem kérdez rá a felhasználónál a makró, hogy törölje-e, viszont utána a mentésnél a mentés ablak nem tűnik el: ott ragad, mintha még mindig mentené (de intézőben látható, hogy már lementette).
Ha a fenti két sort kiszedem, akkor nem produkálja a hibát. Azt ellenőriztem, tutira lefut a második sor is, nincs feltétel, stb. mögé elrejtve (F5-tel megállítottam a programfutását).
Azt el lehet érni más utasítással, hogy a törlésnél ne kérdezzen rá a usernél, akkor megoldódna a gondom?
-
Lasersailing
senior tag
válasz
Lasersailing #48379 üzenetére
Erre esetleg van valakinek ötlete, hogy mi okozhatja?
-
válasz
Lasersailing #48388 üzenetére
1. Az objektumoknak vannak olyan tulajdonságaik, amelyek nem jelennek meg a Properties panelen
2. A tulajdonságok közül van olyan, amit írni-olvasni is lehet(pl. ComboBox.ListIndex), de pl. van olyan is, amit csak olvasni(pl. Combobox.ListCount)"Kicsit máshogy, de lényegében ezt írtam be"
Akkor nem jól írtad be, mert pl. ha a ListCount tulajdonságot próbáltad írni, az nem fog menni (pont ezt a hibát fogja dobni)... -
válasz
Lasersailing #48384 üzenetére
'akkor fut le, amikor a UserForm megnyilik
Private Sub UserForm_Activate()
'ellenőrizzük, hogy van-e legalább 1 elem a Combobox-ban
If UserForm1.ComboBox1.ListCount > 0 Then
'ha igen, akkor (itt a példában) az első elemére állítjuk
'0-tól ListCount-1-ig lehet az elemek indexére hivatkozni
UserForm1.ComboBox1.ListIndex = 0
End If
End Sub -
Delila_1
veterán
válasz
Lasersailing #48382 üzenetére
Jelentkezz, mindig lesz itt valaki, aki segít.
-
Delila_1
veterán
válasz
Lasersailing #48380 üzenetére
Egyszerűbb, ha ComboBoxot viszel a formra. A RowSource tulajdonságnál megadod a választható tételek helyét, pl. Munka1!A1:A20
Ezután a ComboBox1 értékére hivatkozhatsz a
Private Sub ComboBox1_Change()
makróban. -
Fferi50
Topikgazda
válasz
Lasersailing #48330 üzenetére
Szia!
Örülök, hogy tudtam segíteni.
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing #48327 üzenetére
-
Fferi50
Topikgazda
válasz
Lasersailing #48324 üzenetére
Szia!
Az a kérdés, a keresés milyen adatokból történik? Megpróbáltad az Excel Find funkcióját használni?
Másrészt a munkalap adatai behúzhatók memóriába (tömbbe) is, ahol minden művelet nagyságrendekkel gyorsabb, mint a munkalapról.
Tippeket igazán csak a konkrét feladat ismeretében lehet adni szerintem.
Ha gondolod, privátban írd meg egy mintával egyetemben.
Üdv.
Ps. Nem feltétlenül öröm a 100 % közeli proci használat. Excel számítások közben láthatod az állapotsoron a használatot. -
Lasersailing
senior tag
válasz
Lasersailing #48324 üzenetére
-
Fferi50
Topikgazda
válasz
Lasersailing #47505 üzenetére
Szia!
Nem egészen értem a kérdést.
Mit jelent az, hogy reggel 8-kor betöltjük, majd a mentés du. 2-kor történik meg? Milyen módon töltitek be?
Milyen fájlban tároljátok az adatokat?
Az Excelben nincs nyitva az a fájl reggel 8-tól délután 2-ig?
Milyen módon használjátok az "adatbázis" fájlt, közös használatú?
Elnézést a sok kérdés miatt, de ezeket minimum ismerni kell ahhoz, hogy valamilyen módszert ajánlhassunk a felülírások elkerülésére.
Üdv. -
válasz
Lasersailing #47505 üzenetére
Igen, regisztrálj egy jövőbeli eseményt (pont mint JavaScriptben) a lekérés végén:
https://stegriff.co.uk/upblog/non-blocking-wait-or-sleep-in-office-vba/ -
válasz
Lasersailing #47496 üzenetére
Miért nem menti el a makró a változásokat?
-
Lasersailing
senior tag
válasz
Lasersailing #47439 üzenetére
Úgy tűnik az alábbi segített:
Sheets(TKE).Cells(tke_sm, 1) = DateValue(Sheets(bemenet).Cells(input_sm, 9))
-
Lasersailing
senior tag
válasz
Lasersailing #47436 üzenetére
Megpróbáltam az eredeti hozzászólásomban kigondolt megoldással, egy lépésben másolni a két adattartományt, majd lerendezni.
A gondom az, hogy a két forrásban nem azonos dátum formátum van használva (mindkettő egy rendszer outputja, tehát nem változtatható).
Az egyik dátumot felismeri, a másikat nem, így nem tudom lerendezni dátum szerinti sorrendbe. Ha a "rossz" dátumba F2-vel bemegyek, majd enter, akkor már rájön, hogy ez egy dátum. Hogyan tudom VBA-ban elmondani, hogy az adott cella egy dátum formátum?Jelenleg ezzel próbálkozom, de nem segít:
Sheets(TKE).Cells(tke_sm, 1).NumberFormat = "yyyy/mm/dd"
-
Lasersailing
senior tag
válasz
Lasersailing #47436 üzenetére
tripla, bocsánat
-
Lasersailing
senior tag
válasz
Lasersailing #47436 üzenetére
tripla, bocsánat
-
Delila_1
veterán
válasz
Lasersailing #47434 üzenetére
Újra megnyitáskor kell lépésenként futtatnod.
-
Delila_1
veterán
válasz
Lasersailing #47432 üzenetére
Lépésenként futtatva (F8) a hibát okozó sort sárgával kijelölve láthatod.
-
Lasersailing
senior tag
válasz
Lasersailing #46381 üzenetére
Most kicsit utána olvastam, az RMB a RENMIBI rövidítése, de ha jól értelmezem ez gyakorlatilag a CNY, amit viszont az MNB jegyez...
https://en.wikipedia.org/wiki/Renminbi
CNY-t meg jegyzi az MNB, így kérdés törölve. -
RAiN91
őstag
válasz
Lasersailing #46348 üzenetére
Köszönöm, ilyenre gondoltam!
-
Weareus
addikt
válasz
Lasersailing #46178 üzenetére
Igen, értem, köszönöm Lappynak is.
Az egybeírás más okok miatt lesz...
Pl. a bene placido helyett: abeneplacido.
És utána pontosvessző, majd szóköz és meghatározás (több szó).
Arra tudatosan figyelek, hogy a meghatározásokbnan már ne használjak több pontosvesszőt, mert nem akarom, hogy további oszlopok keletkezzenek. Két oszlop kell...
De szóval akkor így mehet...
Köszike. -
Fferi50
Topikgazda
válasz
Lasersailing #46113 üzenetére
Szia!
Használhatod pl. a With kulcsszót:With Sheets("AP - modified").Cells(AP_sm, 26)
If .Value= Sheets("65M").Cells(2, 2) Or .Value= Sheets("65M").Cells(2, 3)) Or .Value = Sheets("65M").Cells(2, 4)) Or .Value = Sheets("65M").Cells(2, 5)) Or .Value = Sheets("65M").Cells(2, 6)) Or (s) Then
....
End If
End With
De érdekes lehet a következő is szerintem:If Not Range(Sheets("65M").Cells(2, 2),Sheets("65M").Cells(2, 6)).Find(What:=Sheets("AP - modified").Cells(AP_sm, 26).Value,lookIn:=xlValues,lookAt:=xlWhole) Is Nothing Then
Ez utóbbi akkor ad igaz értéket, ha megtalálja az adott cella értékét a másik tartományban.
Üdv. -
mdk01
addikt
válasz
Lasersailing #46093 üzenetére
Köszi, lényegében én is töröltem mindent, mert az "összes törlés" tudtommal a formázástól elkezdve mindent töröl.
-
csferke
senior tag
válasz
Lasersailing #46076 üzenetére
Esetleg ha nem akarsz N/A-kat látni, akkor:
=IF(ISBLANK(J1),"",VLOOKUP(J1,$R$1:$S$4,2,0))
kösziFferi50-nek is, de az előző megoldást választottam
-
Delila_1
veterán
válasz
Lasersailing #46081 üzenetére
Egy próbát megér.
Nyiss egy új füzetet. Az A1 cellába írd be: =megnyitandó_füzet!A1
Természetesen útvonallal és lapnévvel együtt írd be a hivatkozást.
Az A1 hivatkozását jobbra, és le is másold, ameddig kell.Megnyitott (hibás) fájlnál elég a füzet és lap neve.
A képen a szerkesztőlécen az új füzet A1 cellájának a képletét látod.
-
Fferi50
Topikgazda
válasz
Lasersailing #46075 üzenetére
Szia!
Érdemes egy mentést csinálni a hibás fájlról.
Ezután kézzel megnyitni, elmenteni az Excel által javított fájlt és azt megpróbálni megnyitni.
Itt valószínűleg nem a lekérdezésben van a hiba, hanem a fájl szerkezet "rongálódott meg". Az eredeti alkotó sem tudná megjavítani.
Esetleg meg kellene búvárkodni egy korábbi mentését a fájlnak.
Üdv. -
Weareus
addikt
válasz
Lasersailing #46045 üzenetére
Köszi mindenkinek.
Megvan!
Notepad++-ban töröltem a sorvégi szóközöket (több is volt), utána Delila_1 által adottal hibátlanuil ment.
Benéztem kicsit amúgy.Köszönöm a helpet.
-
Weareus
addikt
válasz
Lasersailing #46042 üzenetére
Elnézést kérek mindekitől. Lasersailing kollégának igaza van. Ha belekattintok az eredeti cellába, nem a vessző mögé áll a kurzor, hanem még eggyel tőle jobbra, ott tehát még egy szóköz is van.
Ezt figyelmen kívül hagytam.Ennek fényében szabad javaslatot kérni?
Kérlek, ne orroljatok rám, totálisan amatőr vagyok ebben.
-
Weareus
addikt
válasz
Lasersailing #46040 üzenetére
Úgy sem működik:
[link]
Azt nem vitatom, hogy elrontok valamit, de a függvény angolul van (már) és az Excel is angol.
Elgépelés nincs.
(Remélem).
Esetleg az lehet a baj, hogy az átalakítandó oszlop (ahol a vesszők vannak) már eleve egy függvény eredménye?
De ez csak találgatás...? -
Fferi50
Topikgazda
válasz
Lasersailing #43364 üzenetére
Szia!
Idd csak meg, egészségedre!
Megérdemled a vesződségek miatt.
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing #43342 üzenetére
Szia!
Nem lehet, hogy a cella formátuma szöveg? Nézd meg és állítsd át általánosra.
Üdv. -
Delila_1
veterán
válasz
Lasersailing #43344 üzenetére
Erre. Most állítottad be, vagy így volt?
-
Delila_1
veterán
válasz
Lasersailing #43342 üzenetére
A beállításoknál ki van kapcsolva az automatikus számolás.
-
Colin111
csendes tag
válasz
Lasersailing #43020 üzenetére
néztem, excel 100% processzor foglaltságot okozott
-
torrentwarez
csendes tag
válasz
Lasersailing #42969 üzenetére
Köszönöm, megoldódott!
-
torrentwarez
csendes tag
válasz
Lasersailing #42969 üzenetére
Köszönöm, figyelmetlen voltam... nem tudtam, hogy az 5. lépésnél mindegyik oszlopot külön lehet illetve kell beállítani, hogy milyen cella formátuma legyen!
Így már jó lett!
-
Sanyus81
újonc
válasz
Lasersailing #42925 üzenetére
Köszönöm a tippet, de sajna ez sem működik :/
-
allein
addikt
válasz
Lasersailing #42923 üzenetére
Amikor email címeket keresek ugyanezzel a függvénnyel, akkor is egész táblázatra nyomok rá. De mostani esetben én is látom valami nem jó.
-
Lasersailing
senior tag
válasz
Lasersailing #42902 üzenetére
Eszembe jutott a DoEvents (közvetlenül a statusbar frissítés után), úgy tűnik, ez most megoldja a problémát!
-
bucihost
senior tag
válasz
Lasersailing #41988 üzenetére
Köszönöm! Ez alapján már eltudtam indulni, és működik is.... Felhasználtam egy Műszak + túlóra pótlék számításhoz is. Gyönyörű képlet született belőle
=HAHIBA(HAELSŐIGAZ(G4=1;HA(F4>2;2*$G$1*1,5+(F4-2)*$G$1*1,75;F4*$G$1*1,5);G4=2;HA(F4>2;2*$G$1*2+(F4-2)*$G$1*2,25;F4*$G$1*2);G4=3;HA(F4>2;2*$G$1*2+(F4-2)*$G$1*2,25;F4*$G$1*2));)
-
gyulazsolti
senior tag
válasz
Lasersailing #41934 üzenetére
Szia!
A megoldás végül az lett, hogy megint letöröltem az office-t.
A hiba: 1907-re az volt a megoldás, hogy be kellett, menni a betűkészletbe, és mindet engedélyezni. Volt pár ami nem volt engedélyezve.
Utána feltettem a 2013-as 64-bites verziót.
Hiba nélkül fel ment.
Csináltam egy másik táblát, átmásoltam bele mindent.
Most hiba nélkül megy. Katt, 2 másodperc és előttem van a tábla.
Remélem marad is így.Amit írtál, kipróbáltam, /visszabányáztam a kukából/ de nem segített.
Az a tábla lassan tölt be továbbra is.
Köszönöm szépen. -
Bacusuz
őstag
válasz
Lasersailing #41046 üzenetére
mindenkinek köszönöm a segítséget, végül sikerült.
A 2 táblázatban ugyan azt a szűrőket állítottam be, ezért nem olyan válaszokat kaptam amiket szerettem volna.
szóval köszi még 1x , sokat segítettetek -
bexinho23
őstag
válasz
Lasersailing #40795 üzenetére
Szia!
Valóban ez az oka az eltérésnek.
Köszönöm.
-
oke
senior tag
válasz
Lasersailing #40707 üzenetére
Szia!
Kicsit megfordítom, hátha így jobban érthető:
A példából kiindulva:
Attila a 1111 és 1112 irányítószám alatt végez Mázolást
Géza a 1111, 1112 és 1113 irányítószám alatt végez festést és a 1112-ben tapétázást stb
Ezek vannak a segédtáblában.Az "A" és a "B" oszlop a fő tábla, ahová a "C" oszlopba kell hozzárendelni a segédtábla segítségével.ki is a munkavégző. Azt a csatolt képen meg is van oldva összetűzéssel, látszik a szerkesztőlécen a függvény.
Amivel gondom van az a segédtábla kialakítása. Ha a példában látható módon szeretném hozzárendeléseket elvégezni, az emberkéket a tevékenység+irányítószám pároshoz hozzárendelni, akkor rengeteg variációt kellene elvégeznem, mivel a tényleges táblában 300 féle feladat 100 irányítószám és 20-30 ember van.Tehát hogy a valóságban meg tudjam állapítani, hogy Attila végzi e az adott munkát az adott irányítószám alatt- feltételezve, hogy ő 50 típusú feladatot végez mind a 100 irányítószám alatt - 50*100 sort kellene felvennem a segédtáblába. Ezt hogy lehetne egyszerűsíteni.
-
dgyuri50
újonc
válasz
Lasersailing #40673 üzenetére
Köszi a választ!
Ezt végigcsináltam, de nem segített.
Valami más a gond sajnos.
Új hozzászólás Aktív témák
- Miért vezet mindenki úgy, mint egy állat?
- Milyen okostelefont vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Mini-ITX
- Tesla topik
- CADA, Polymobil, és más építőkockák
- Fejhallgató erősítő és DAC topik
- Autós topik
- Témázgatunk, témázgatunk!? ... avagy mutasd az Android homescreened!
- Székesfehérvár és környéke adok-veszek-beszélgetek
- További aktív témák...
- Azonnali kézbesítés az év bármely pillanatában
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- LicencAruhaz.hu OLCSÓ, LEGÁLIS SZOFTVEREK AZONNAL - Windows - Office - Win Server - ÖRÖK GARANCIÁVAL
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- ÚJ Apple Macbook Air 15,3 M4 10C CPU/10C GPU/16GB/256GB - Ezüst mw1g3mg/a - 3 év gari - MAGYAR
- Azonnali készpénzes AMD Radeon RX 6000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- Ultimate előfizetés új fiókra akár 2105 Ft/hó áron! Azonnali, automatizált aktiválással, csak Nálam!
- LG 27GS95QE - 27" OLED / QHD 2K / 240Hz & 0.03ms / 1000 Nits / NVIDIA G-Sync / AMD FreeSync
- Lenovo, Dell, HP, Panasonic Getac üzleti és ütésálló katonai laptopok + Ipad 6-13. gneráció
Állásajánlatok
Cég: FOTC
Város: Budapest