Hirdetés
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Brogyi: CTEK akkumulátor töltő és másolatai
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Magga: PLEX: multimédia az egész lakásban
- Meggyi001: Több tucat Eiffel torony??? ... Igen, gyere mutatom, hogy hol...
- Hieronymus: Kalózkodás. Kalózkodás? hozzászólás
- bambano: Bambanő háza tája
-
LOGOUT
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 StringFor sm = 1 To 4szoveg = Right(Cells(sm, 1), 4) & "." & Mid(Cells(sm, 1), 4, 2) & "." & Left(Cells(sm, 1), 2)Kiszallitasform.datumok.AddItem szovegNextKiszallitasform.ShowEnd 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 IntegerFor sm = 1 To 4Cells(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)NextKiszallitasform.ShowEnd Sub -
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.returnbooleancancel = trueGondolom 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őbenIf fusson Then' amit az eseménykezelőben szeretnélEnd IfEnd Sub
A makróban, bárhol van a makró:Sub Akarmi()...Userform1.fusson=False '(Userform1 helyett a formod neve kell!)... változtatásokUserform1.fusson=True...End SubA 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ásSheets(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.displayalertsokozza 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 = trueHa í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)...![;]](//cdn.rios.hu/dl/s/v1.gif)
-
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
- AMD GPU-k jövője - amit tudni vélünk
- Horgász topik
- Audiokultúra - Hi-Fi-ről hifisen
- Battlefield 6
- Disney+
- Futás, futópályák
- Apple asztali gépek
- Star Trek Online -=MMORPG=-
- Pánikban a világ a Radeon RX 5000 és 6000 sorozat támogatása miatt
- Android alkalmazások - szoftver kibeszélő topik
- További aktív témák...
- HP EliteOne 800 G5 All-in-One i5-9500 16GB 512GB 23.8" Érintőkijelző!! 1 év garancia
- Honor 400 Lite / 8/256GB / Kártyafüggetlen / 12Hó Garancia
- Garmin Forerunner 405 GPS óra
- Bomba ár! Lenovo ThinkPad T470s - i5-7GEN I 8GB I 256GB SSD I 14" FHD I Cam I W11 I Garancia!
- GYÖNYÖRŰ iPhone 11 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3263, 100% Akkumulátor
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest
A tömbképletet a régebbi verziókban Ctrl+Shift+Enter kombóval kell lezárni, az Excel kapcsos zárójelbe teszi.

![;]](http://cdn.rios.hu/dl/s/v1.gif)
), utána Delila_1 által adottal hibátlanuil ment.


Fferi50
