- Ubisoft Forward 2024 - Az összes bejelentés egy helyen
- UbiForward24 - Jön az Anno 117: Pax Romana
- UbiForward24 - Hosszabb játékmenet videón az Assassin's Creed Shadows
- UbiForward24 - Sztori kiegészítőt kap az Avatar: Frontiers of Pandora
- UbiForward24 - Prince of Persia: The Sands of Time Remake csak 2026-ban
- Diablo IV
- Xbox Series X|S
- UbiForward24 - Hosszabb bemutatón a Star Wars: Outlaws
- Genshin Impact (PC, PS4, Android, iOS)
- Ubisoft Forward 2024 - Az összes bejelentés egy helyen
- Call of Duty: Black Ops 6
- PlayStation 5
- UbiForward24 - Hosszabb játékmenet videón az Assassin's Creed Shadows
- Marvel Snap
- EAFC 24
-
GAMEPOD.hu
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Delila_1
Topikgazda
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
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
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
Topikgazda
válasz Lasersailing #52602 üzenetére
Dátumként deklaráltad a datum-ot, majd szöveges értéket adtál neki.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
customer114
senior tag
Sziasztok!
Az alábbi problémámban szeretném a segítségetek kérni.
Adott egyetlen cella tele adattal nevek és azt követő email címek, az formátum szerint:
Vezetéknév, Keresztnév <Név.email@ceg-ceg.com>; Vezetéknév, Keresztnév <Név.email@ceg-ceg.com>; Vezetéknév, Keresztnév <Név.email@ceg-ceg.com>; Vezetéknév, Keresztnév <Név.email@ceg-ceg.com>; Vezetéknév, Keresztnév <Név.email@ceg-ceg.com>; Vezetéknév, Keresztnév <Név.email@ceg-ceg.com>;
Kb. 500 darab név és email cím.
Milyen módon tudnám a neveket és az email címeket egy képlettel külön oszlopon, külön cellákba áthelyezni?
A oszlop: Vezetéknév
B oszlop: Keresztnév
C oszlop: email címNagyon szépen köszönöm!
-
customer114
senior tag
válasz customer114 #52604 üzenetére
Megoldottam. Megnyitáskor elválasztottam, txt-ből.
[ Szerkesztve ]
-
Fferi50
őstag
válasz customer114 #52604 üzenetére
Szia!
Egy ötlet:
1. lépés: Adatok - szövegből oszlopok - tagolt - határolójel ; (pontosvessző) OK.
2. létrejött 1 sor, ahol a cellák egy név adatait tartalmazzák, ezt kijelölöd - másolás - irányított beillesztés TRANSZPONÁLÁS. Ezáltal egy oszlopot kapsz.
3. az oszlopra szintén - Adatok - szövegből oszlopok - tagolt - határolójel , (vessző) OK
4. így külön kerül a vezetéknév és a keresztnév az email cím
5. a második oszlopra újfent Adatok - szövegből oszlopok - tagolt - határolójel egyéb <, a többit kitörölni, OK
6. az email címeket tartalmazó oszlop végéről lecsípheted a > jelet - =Bal(A1;Hossz(A1)-1) képlettel egy új oszlopba.
Üdv. -
rovgab
csendes újonc
Sziasztok!
Van egy táblázatom és abból szeretném mondjuk egy kisebb táblázatba kiszűrni azokat az anyagokat (A oszlop) és a mögötte lévő mennyiségeket ( G-H-I-J oszlop) amelyek nem egyenlőek "0# + 0 KRT"-nal.
Tehát az anyag lenne a lényeg és, ha mögötte bármelyik cellában az érték nem egyenlő 0# + 0 KRT, akkor az a sor úgy kompletten kell. Ellenkező esetben semmit sem szeretnék látni abból a sorból, ahol mind a 4 oszlop nullás. Szűrő függvényben gondolkodtam, hogy azzal esetleg kivitelezhető lenne? A makró sajnos kizárva. Előre is köszönöm a segítséget.
-
nihill
őstag
Sziasztok!
Pivot tábla adatbázisból. Van-e arra bármi lehetőség, hogy az érték részbe nem számot húzok bele hanem szöveges mezőt? Vagy ezt bárhogy máshogy megoldani?
Az adott sor és oszlop kombinációban mindig fixen 1db (szöveges) érték van az adatbázisban, nincs semmit összesíteni vagy megszámolni, minden cellában csak meg kéne jeleníteni az adott X-Y-hoz tartozó szöveget.
Köszönöm. -
Lasersailing
senior tag
válasz Delila_1 #52603 üzenetére
Köszönöm, küzdök továbbra is
Most a gondom az alábbi: (és valószínűleg a háttérbeli ok ugyanaz: nem ismerem a formátumokat excel vba-ban)
Az alábbi függvényrészlet soha nem talál egyezőséget, pedig ránézésre (inputbox alapján) ugyanaz a két érték pl. sm=4-nél (lásd képernyőkép később)
sm = 3
Do
sm = sm + 1
'Loop Until year(right(Sheets(sob).Cells(sm, 1).Value,4)),month(mid(Sheets(sob).Cells(sm, 1).Value,4,2),day(left(Sheets(sob).Cells(sm, 1).Value,2))) = datum
InputBox (Sheets(sob).Cells(sm, 1).Value & Chr(13) & Right(Kiszallitasform.datumok.Value, 2) & "/" & Mid(Kiszallitasform.datumok.Value, 6, 2) & "/" & Left(Kiszallitasform.datumok.Value, 4))
Loop Until Sheets(sob).Cells(sm, 1).Value = Right(Kiszallitasform.datumok.Value, 2) & "/" & Mid(Kiszallitasform.datumok.Value, 6, 2) & "/" & Left(Kiszallitasform.datumok.Value, 4)(A sob sheeten az értékeket összehúzva dátumként kezeli az A oszlop értékeit.)
Egyezőségről képernyőkép:
Mi lehet a gond és főleg mi a megoldás?
kiszallitasform.datumok tulajdonságai: -
Fferi50
őstag
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. -
BagyiAti
tag
Sziasztok,
Van négy kimutatás diagramom, melyek száma 1,2,4,5. A szeletelők a kimutatáskapcsolat beállitásakor, nem ajánlják fel az egyiket, ellenben felajánlanak egy 3-as számút...ami nincs...valami ötlet mi lehet a baj?
Jha természetesen ugyanabból az adatforrásból dolgozik mind.[ Szerkesztve ]
-
Fferi50
őstag
válasz BagyiAti #52616 üzenetére
Szia!
Ha a Kimutatás2-höz állítod a kapcsolatot, akkor magához nem fog szerintem ajánlani, viszont az 1,4,5 vagyis a további 3 kimutatás amihez kapcsolódni lehet, az ott van. A kimutatás3 szerintem egy korábban törölt kimutatás neve lehet és ezért nincs is bepipálási lehetőség, ha jól látom.
Üdv. -
BagyiAti
tag
válasz Fferi50 #52617 üzenetére
Szia,
A kimutatás 2 az egy diagram (mint az 1,4,5), a kimutatáskapcsolat kép meg egy szeletelő beállitás. Tehát van egy szeletelőm ami a kimutatás2 diagramot nem eszi meg, minden mást igen..sőt, több szeletelőm is van, azok ugyanigy viselkednek. 3-at meg engedné...ha törölve van akkor miért engedné?
-
BagyiAti
tag
Probálom máshogy is mutatni.
4 kimutatás van. Abból az 1,4,5-höz ha szeletelőt rendelek akkor ezt mutatja a kimutatás kapcsolatnál (mindegyiknél próbálva):
Ha a 2-es kimutatáshoz rendelek hozzá szeletelőt akkor meg ezt:
És ugye az lenne a cél, hogy a szeletelő mind a 4-et vezérelje..[ Szerkesztve ]
-
Mutt
aktív tag
válasz nihill #52611 üzenetére
Szia,
Excel 2013-tól van Power Pivot, ami DAX nyelvet használja.
A CONCATENATEX függvényt próbáld ki így:1. Beszúrás -> Kimutatásnál válaszd ki az adatmodellbe töltést (Add Data Model), ez a Power Pivot.
2. Csináld meg a kimutatást ahogy szeretnéd. Majd a kimutatás mezőknél jobb klikk a tábla nevén (példámban Tartomány) és új mérték/new measure opciót válaszd.
3. A képlet a példámban: =CONCATENATEX('Tartomány';[Név];",")
Ahol tartomány a tábla neve, [Név] pedig az oszlopneve amiben lévő adatot össze kell fúzni, végül pedig a felsorolás jele vessző. OK után ezt az új érték már be tudod húzni az értékekhez.üdv
Ps. Aki Kimutatást használ annak érdemes alapból az adatmodelbe töltést választani minden esetben, mégha DAX-ot nem is fog használni, mert kapsz új aggregációs függvényeket és a lehetőséget hogy több táblát összekapcsolj.
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Albus_D
aktív tag
Sziasztok,
7000-8000 cella tartalma szöveg, és sajnos sok olyan cella van, amiben a szöveg után van egy space karakter. A szerkesztőlécre kattintva ez jól látszik. Hogy lehetne egy huszárvágással törölni ezeket a felesleges szóköz karaktereket a cellákból?
Mert ugyanis így azonos tartalmú cellák keresésekor nem veszi észre az azonos tartalmat a plusz szóköz miatt.
köszönöm
üdv[ Szerkesztve ]
-
spleenszuru
őstag
Sziasztok!
Mi lehet olyankor a hiba, ha egy excel munkafüzet magától húz össze sorokat/oszlopokat?
Tehát nem a tipikus dupla bal klikkel, hanem magától csinál mindent.
Hol lehet ezt ki/be kapcsolni?Köszi.
Malaka!
-
Geryson
addikt
Sziasztok! Van egy cellaértékem, ami a következő:
234220-AMW_211022-1,56
Volt nekem egy
=JOBB(B2;HOSSZ(B2)-SZÖVEG.KERES("_";B2))
képletem, viszont sajnos ez némileg téved, mert nekem csak az 1,56-os értéket kellene hozni eredményképpen - de mást is hoz: "211022-1,56". Mi lenne a helyes képlet, hogy csak a kötőjel utáni rész legyen az eredmény?De ha már kérhetek egy képletet, akkor kérhet egy olyat is, hogy a dátum (azaz az "_" és a jobb oldali "-" közötti szám legyen a lekérdezés eredménye?
Rinderkennzeichnungsfleischetikettierungsüberwachungsaufgabenübertragungsgesetz
-
dm1970
tag
Sziasztok!
Ismét itt, természetesen kérdéssel.
Van egy vbs fájl, amit ha elindítok fájlkezelőből belép egy felületre és végzi a dolgát, de előbb még egy felugró ablakon kell egy OK-t nyomni. Kérdésem, hogy meglehet ezt makróba írni, hogy egy gombhoz hozzárendelve végigfusson a folyamat?Köszi dm!
-
dm1970
tag
válasz Fferi50 #52643 üzenetére
Szia!
Van egy megnyitott excel táblám, amiben ha berögzítettem minden adatot hozzányitok egy SAP excel táblát ellenőrzés végett. Ezt a táblát úgy kapom, hogy a SAP folyamatot felvettem script-l, s ugye így lett egy vbs fájlom, amit futtatva belép a SAP-ba, s végig viszi a folyamatot. Arra már rátaláltam, hogy ezt a vbs-t egy alap excel táblán egy gombhoz rendelt makróval megnyitom, de nekem nem megnyitni kellene, hanem futtatni a fájlt + még a SAP felugró ablakát le OK-zni. Plusz progik felrakására nincs lehetőség. -
Mutt
aktív tag
válasz dm1970 #52644 üzenetére
Szia,
Van programozási tapasztalatod (For - Next ciklus)?
Én MM/FI modulokban dolgozom, onnan tudok példát mutatni.
Egy komplex változat fent van a GitHub-on.
Illetve YT-on Varga Csongor videói is tudnak segíteni.Mielőtt tovább megyünk, pár tanács!
1. Óvatosan a szkriptekkel, mert nagy kárt tudsz okozni!
2. Ha nincs teszt környezeted, ahol tudod ellenőrízni a szkriptet, akkor nagyon legyél körültekintő.
3. A SAP bonyolult, a SAP szkript mégrosszabb. Előbb kérdezz vkit.
4. Használd a Scripting Trackert (letölthető innen), hogy kiderítsd melyik mező miről szól.Itt egy Móricka példa. MM02-es tranzakcióval a 93062409-es anyagnak a material group-ját LEDG101-re írtam át. A script ez lett:
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "mm02"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").text = "93062409" 'ez az anyagszám
session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").caretPosition = 8
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP01/ssubTABFRA1:SAPLMGMM:2004/subSUB2:SAPLMGD1:2001/ctxtMARA-MATKL").text = "LEDG101" 'ennek a mezőnek az értékét akarom módosítani vmire
session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP01/ssubTABFRA1:SAPLMGMM:2004/subSUB2:SAPLMGD1:2001/ctxtMARA-MATKL").setFocus
session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP01/ssubTABFRA1:SAPLMGMM:2004/subSUB2:SAPLMGD1:2001/ctxtMARA-MATKL").caretPosition = 7
session.findById("wnd[0]/tbar[0]/btn[11]").press
session.findById("wnd[0]").sendVKey 0A példámban a szkriptet szeretném lefuttatni másik anyagszámokon (19-es sor) és akár más értéket megadni (24-es sor)
1. Excelben egy lapon megadom hogy mely anyagoknak milyen új értéket akarok megadni
pl.
2. Kell egy For - Next ciklus ami ezen végigmegy.
VBA Editorban egy új modulban ez például az A-oszlopban lévő értéket kiírja.Sub minta()
With ActiveSheet
lastrow = .Range("A" & Rows.Count).End(xlUp).Row
For c = 2 To lastrow
Debug.Print .Range("A" & c)
Next c
End With
End Sub3. Most már csak a SAP scriptet kell ide tenni. Az első 14 sor a SAP-hoz kapcsolódást csinálja, ezt elég egyszer megtenni. Vagyis ez a For-Next elé kerül. A többi lépés pedig bele a For-Next-be.
Annyi javítás kell, hogy az "Application" Excelben már foglalt, így más kell helyette használni pl. "SAPApplication".4. Nekem két változó értékem van az A és B-oszlopban, amit szeretném ha a szkript használna.
A lenti sornak a végén a fix anyagszám helyett kell nekem az A-oszlop értéke.session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").text = "93062409"
A helyes kód a fenti helyett ez lesz:
session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").Text = .Range("A" & c)
A
session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP01/ssubTABFRA1:SAPLMGMM:2004/subSUB2:SAPLMGD1:2001/ctxtMARA-MATKL").text = "LEDG101"
sor helyett pedig ezsession.findById("wnd[0]/usr/tabsTABSPR1/tabpSP01/ssubTABFRA1:SAPLMGMM:2004/subSUB2:SAPLMGD1:2001/ctxtMARA-MATKL").Text = .Range("B" & c)
5. Érdemes egy visszajelzést is adni, hogy melyik sorban járunk és ha kell akkor meg is tudjuk szakítani a futtatást. Ezért a "Next c" elé kerüljön be ez.
DoEvents
.Range("C" & c) = "Kész"6. Rakj ki egy gombot és rendeld hozzá a makrót. Érdemes tesztelni 1-2 kombináción, ha van teszt environment akkor azon, ha nincs akkor a mentést sort kommenteld ki először.
A teljes minta kód:
Sub minta()
If Not IsObject(SAPApplication) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set SAPApplication = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(Connection) Then
Set Connection = SAPApplication.Children(0)
End If
If Not IsObject(session) Then
Set session = Connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject SAPApplication, "on"
End If
With ActiveSheet
lastrow = .Range("A" & Rows.Count).End(xlUp).Row
For c = 2 To lastrow
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "mm02"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").Text = .Range("A" & c)
session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").caretPosition = 8
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP01/ssubTABFRA1:SAPLMGMM:2004/subSUB2:SAPLMGD1:2001/ctxtMARA-MATKL").Text = .Range("B" & c)
session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP01/ssubTABFRA1:SAPLMGMM:2004/subSUB2:SAPLMGD1:2001/ctxtMARA-MATKL").SetFocus
session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP01/ssubTABFRA1:SAPLMGMM:2004/subSUB2:SAPLMGD1:2001/ctxtMARA-MATKL").caretPosition = 7
session.findById("wnd[0]/tbar[0]/btn[11]").press
session.findById("wnd[0]").sendVKey 0
DoEvents
.Range("C" & c) = "Kész"
Next c
End With
End SubEzzel készen is vagy, de azért sok mindent lehet rajta fejleszteni mint például
- vannak felesleges sorok (általában a caretPosition-osok ilyenek)
- nincs semmilyen hibaellenőrzés (pl. nincs jogosultságod vmihez, nem jó érték van az inputban)
- nem annyira jó az első kliens első sessionjéhez csatlakozni, lehet hogy éppen másra használod.Ha kell segítség akkor dobd fel ide/keress meg.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Mutt
aktív tag
válasz dm1970 #52644 üzenetére
Szia,
Ahogy olvasom az erdeti kérdést, ha csak letöltesz egy riportot és OK-t kell nyomni, akkor még1xübb a dolog, mert akkor nem kell For-Next ciklus. A VBS szkritpet bemásolod egy VBA modulba, az Application-t mindenhol lecseréled SAPApplication-re.
A felugró ablakban (a wnd szám mondja meg melyik ablakban kell dolgozni, 0 az alap és 1-esével növekszik minden felugró ablakkal) OK-t (a btn utáni szám 0-szokott lenni OK-ra, de ezt a Script Tracker meg tudja mutatni) így lehet nyomni:
session.findById("wnd[1]/tbar[0]/btn[0]").press
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
oke
senior tag
Sziasztok,
Szeretnék makróban megoldani egy egyszerűnek tűnő dolgot, de nem boldogulok:
- "A" oszlop szúrése két értékre: 0 és #HIÁNYZÓ
- A szűrés álatl felhozott cellákban a fenti értékek törlése. Csak az értékek, nem a sort vagy cellát.
- szűrlés feltétel törlése.A sorok száma változhat, nem fix.
[ Szerkesztve ]
Új hozzászólás Aktív témák
- Office Professional Plus 2013, 2016, 2019, 2021 RETAIL licenckulcsok - MEGA Akció!
- Mass Effect 1 PC
- Tiny Tina's Wonderlands Vásárolnék
- Windows Server 2016, 2019, 2022 Standard, Datacenter, Essentials termékkulcsok - MEGA akció!
- Windows 7 Home Premium, Pro, Ultimate és Windows 8, 8.1 Pro licenckulcsok 64, 32 bit - MEGA Akció!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen