-
Fototrend
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
-
DeFranco
nagyúr
sziasztok!
van arra valamilyen lehetőség, hogy a szűrt oszlopok fejlécét jobban kiemeljem, pl. kék cellaháttérrel vagy hasonló módon?
ott van a kis szűrő ikon de nem mindig tűnik fel, hogy le van szűrve a tábla ha nem nézem meg a sor elejét.
-
Telda
addikt
Sziasztok!
Excel 365-ben megszűnt a közös használat, csak ez a "Megosztás" van?
Mert én nem találom. -
zoombiee
csendes tag
Sziasztok,
Van egy egyszerű makróm excelben.
Tudnátok segíteni, hogy ezt hogyan tudnám használni google sheeten?Private Sub CommandButton1_Click()Dim Start_X As IntegerDim Start_Y As IntegerStart_X = Sheets("Teszt1").Range("C17")Start_Y = Sheets("Teszt1").Range("D17")Sheets("Teszt2").Cells(Start_X, 3) = Start_YEnd Sub -
modflow
veterán
Sziasztok!
Tudnátok a következő ügyben segíteni?
Van egy fájl, sok munkalappal.
Pl. 1-es munkalapon ott van a kérdés, hogy ki szereti az almát. Szereti Béla, Aladár, Timi.2-es lapin ott a kérdés, hogy ki szereti a körtét. Szereti Timi, Béla, Betti
3-as lapon ki szereti a dinnyét. Szereti Timi, Béla, Aladár.
Hogy lehet a legegyszerűbben egy táblázatot készíteni, ami automatikusan összegzi, hogy az egyes gyümölcsöket ki szereti. Ill. egyes emberek milyen gyümölcsöt szeretnek?
-
ReSeTer
senior tag
válasz
Fferi50
#44788
üzenetére
=HIPERHIVATKOZÁS("pdfelérésiútja\pdfneve-0098.pdf";"PDF")
Jelenleg itt tartok. Ezt a sor függvényt nem értem. A sorok sorszáma nem egyezik meg a pdf-ek nevében szereplő számmal.
Tehát mondjuk a lista a 344. sorban kezdődik, és ott van a pdfneve-0098.pdf link.
A 345. sorban már pdfneve-0099.pdf kellene ugyanabban az oszlopban. -
ReSeTer
senior tag
Sziasztok!
Olyat lehet csinálni, hogy az excelben a hivatkozásokat is növekvő módban "lehúzni"?
Tehát az első cella linkje: 1.pdf az alatta lévőké meg növekedne: 2.pdf 3.pdf 4.pdf... stb.
Van több mint 100 sor, nem akarom mindegyiknél egyenként beírogatni a linket.
A sima "lehúzós" módszer nem működik, mert ismételgeti a kijelölt 2 cella linkjét, tehát nem veszi észre, hogy növekszik.Köszönöm!
-
zsolti_20
senior tag
Próbáltam körül nézni találtam is valamit.
Sub TestCOMPortConst ForWriting = 2, TriStateFalse = 0Dim fso, fSet fso = CreateObject("Scripting.FileSystemObject")Set f = fso.OpenTextFile("COM1:", ForWriting, False, TriStateFalse)' Write data to the portf.Write Chr(26)f.Write Chr(32)f.Write Chr(27)f.CloseEnd Sub
Megadtam neki hogy COM6:9600, illetve f.Write Chr(49), felprogramoztam az arduinot hogy figyelje a serial portot és ha kap egy 1-est akkor kapcsolja fel a ledet de semmi nem történik. Amikor futtatom a kódot, akkor felvillan a led, de aztán nem tudok rá küldeni semmit sem. -
zsolti_20
senior tag
Sziasztok! Egy nem mindennapi dolog jutott eszembe. Van egy célhardverem egy arduino ami egy bizonyos USB porton, mondjuk COM6 és bizonyos bitrateval mondjuk 9600baudrateval kommunikál.
Felvetődött az ötlet hogy lehetséges vezérelni az arduinot egy excel fileból egy USB-UART átalakítóval, de a topikban felvilágosítottak, hogy nem is lenne szükségem rá, ha sikerülne egy Excel VBA-t gy megírni hogy adatokat küldjön ki COM6-on 9600bitrátával.
Lehetséges ilyesmit megoldani VBA-ban, mondjuk hogy az A1 cella értékét küldje folyamatosan? Ha lenne még valami menü vagy akármi ahol az aktív COM portok kiválaszthatóak lennének mellette a bitrátával az lenne a legjobb.Még nem hallottam ilyesmi megoldásról de lehet van valakinek tapasztalata ebben.
-
Kommy
veterán
Sziasztok!
Lenne egy olyan problémám, hogy meg kellene számolnom az egy hónapban levőmunkanapok számát úgy, hogy az általam beírt dátumokat pluszban kiszedje ( pl.: ünnepek, szabadságok).
A problémám igazából az, hogyha pl egy szabadság szombatra esik akkor az en. kerül számításra. A "NETWORKDAYS.INTL" függvényt használnám erre, de így nem vonja ki ha szombatra esik.
Pl.: 08.01 szombat és ez szabadság is lenne, míg 08.20 ünnep az szépen kivonódik, itt ugye 31 nap van a hónapban 5 hétvége (10 nap), így a függvény 20-at ír ki, de ugye 19-nek kellene lennie. 31-10(hétvége)-1(ünnep)-1(szabadság) -
Bobrooney
senior tag
válasz
Norbika1493
#44776
üzenetére
-
lappy
őstag
válasz
Norbika1493
#44776
üzenetére
Szumha függvényt nézd meg inkább.
-
Delila_1
veterán
válasz
Norbika1493
#44776
üzenetére
Nem másik táblázatot, hanem kimutatást kell készítened az eredeti táblázat adataiból.
-
Norbika1493
csendes tag
Sziasztok,
Még egy olyan kérdésem lenne, hogy van egy táblázat. amiből többször megjelenik egy megnevezés mellete levő sorokba meg számok. készítettem egy másik táblázatott, amiben egy legördülő listában választanám ki név szerint a dolgokat de a számokat összesíteni kellene. Addig jutottam, hogy FKERES fuggvénybe kikeresi a megnevezést de ha egynél többször szerepel a listában nem adja össze. Ebben szeretnék segítséget kérni.
előre is köszönöm
-
Fferi50
Topikgazda
válasz
fausto
#44770
üzenetére
Szia!
Ez pedig egy képlettel megoldott változat a kék táblára:
H2 cella képlete: =A2,
I2 cella képlete=INDEX($A$2:$F$6;HOL.VAN(H2;$A$2:$A$6;0);DARABTELI($H$1:H2;H2)+1)
A H3 cella képlete:=HA(DARABTELI($H$1:$H2;H2)<DARAB2(INDEX($B$2:$G$6;HOL.VAN($H2;$A$2:$A$6;0);0));H2;INDEX($A$2:$G$6;HOL.VAN($H2;$A$2:$A$6;0)+1;1))
Az I2 és H3 cella képlete húzható lefelé.
A képletekben fontos a címzési formák betartása.
Amikor véget ér a listád, akkor hibaüzenetet fogsz kapni. Ez kiküszöbölhető a HAHIBA függvénnyel.
Az átalakítás után célszerű a másolás - irányított beillesztés értéket műveletet végrehajtani az új területre, ezáltal az eredeti adataid törölhetők. -
Mutt
senior tag
-
Fferi50
Topikgazda
válasz
Norbika1493
#44767
üzenetére
Szia!
Makrórögzítést próbáltad?
Üdv. -
fausto
addikt
Sziasztok,
Szeretnék segítséget kérni. Csatolok képet, a lényeg az, hogy az adatokat olyan formában kapom, mint a kék táblázat (vagy esetleg a zöld táblázat, ha transzponálom) és ezt szeretném valahogy úgy átalakítani, hogy a piros táblázatnak megfelelően legyenek rendezve. Van ötletetek, hogyan tudnám megcsinálni?
Köszönöm előre is!
-
Fferi50
Topikgazda
válasz
Norbika1493
#44764
üzenetére
-
Delila_1
veterán
válasz
Norbika1493
#44762
üzenetére
Az A füzetben szűrd az adatokat úgy, hogy az üres sorok ne jelenjenek meg. Másold a látható sorokat, és illeszd be a B füzetbe.
-
Norbika1493
csendes tag
Sziasztok,
Egy kis segítségre lenne szükségem. Adott két munkafüzet hívjuk "A"-nak az egyiket a másikat "B"-nek. "A" munkafüzetben van sok adat szeretném a "B" munkafüzetbe másolni úgy, hogy az üres sorok ne kerüljenek át. Sorok tartalmaznak megnevezéseket az oszlopok meg adatokat. Annyi kellene, hogy minden sorhoz fixen jöjjenek az oszlop adatok. Az üres sorokat ne hozza a "B" munkafüzetbe.
előre is köszönöm a segítséget.
-
reimerm
csendes tag
válasz
Fire/SOUL/CD
#44746
üzenetére
Köszönöm Fire/SOUL/CD és lappy! Nagy segítség volt!!
-
Mutt
senior tag
Szia,
Nincs CS01 hozzáférésem, így nem tudtam tesztelni de ezt próbáld meg:
Dim objExcel
Dim objSheet, intRow, i
Set objExcel = GetObject(, "Excel.Application")
Set objSheet = objExcel.Workbooks("dj feltolt").Sheets("Munka1")
For i = 2 To objSheet.UsedRange.Rows.Count
COL1 = Trim(CStr(objSheet.Cells(i, 1).Value)) 'Column1
'CS01 fõképernyõn anyagszám / plant / BOM usage megadása
session.findById("wnd[0]/usr/ctxtRC29N-MATNR").Text = COL1
'session.findById("wnd[0]/usr/ctxtRC29N-WERKS").text = "0610"
session.findById("wnd[0]/usr/ctxtRC29N-STLAN").Text = "1"
session.findById("wnd[0]/usr/txtRC29N-WTEXT").SetFocus
session.findById("wnd[0]/usr/txtRC29N-WTEXT").caretPosition = 0
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]").sendVKey 0
'component screen amiről csak akkor kell elmenni, ha másik anyagot kell felépíteni
j = -1
Do
j = j + 1
COL2 = Trim(CStr(objSheet.Cells(i + j, 2).Value)) 'Column2
COL3 = Trim(CStr(objSheet.Cells(i + j, 3).Value)) 'Column3
session.findById("wnd[0]/usr/tabsTS_ITOV/tabpTCMA/ssubSUBPAGE:SAPLCSDI:0152/tblSAPLCSDITCMAT/ctxtRC29P-POSTP[1," & CStr(j) & "]").Text = "L"
session.findById("wnd[0]/usr/tabsTS_ITOV/tabpTCMA/ssubSUBPAGE:SAPLCSDI:0152/tblSAPLCSDITCMAT/ctxtRC29P-IDNRK[2," & CStr(j) & "]").Text = COL2
session.findById("wnd[0]/usr/tabsTS_ITOV/tabpTCMA/ssubSUBPAGE:SAPLCSDI:0152/tblSAPLCSDITCMAT/txtRC29P-MENGE[5," & CStr(j) & "]").Text = COL3
session.findById("wnd[0]/usr/tabsTS_ITOV/tabpTCMA/ssubSUBPAGE:SAPLCSDI:0152/tblSAPLCSDITCMAT/txtRC29P-MENGE[5," & CStr(j) & "]").SetFocus
session.findById("wnd[0]/usr/tabsTS_ITOV/tabpTCMA/ssubSUBPAGE:SAPLCSDI:0152/tblSAPLCSDITCMAT/txtRC29P-MENGE[5," & CStr(j) & "]").caretPosition = 5
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]").sendVKey 0
Loop Until COL1 <> Trim(CStr(objSheet.Cells(i + j + 1, 1).Value))
'mentés
session.findById("wnd[0]/tbar[0]/btn[11]").press
'léptetni kell az i értékét
i = i + j
Next i
MsgBox "Keszen vagyunk"Neked egy fájlban vannak a létrehozandó anyagtörzsek (az aktuális mindig a COL1 változóban van), így addig nem kell kilépned CS01-ből amíg új anyaghoz nem érsz.
A fenti megoldásban van egy Do - Loop ciklus ami addig adogatja a komponenseket a listához amíg a COL1 értéke meg nem változik.A másik fontos dolog, hogy a rácson hivatkozni SAP-ban sor és oszlop azonosítóval lehet.
pl. .. CMAT/ctxtRC29P-IDNRK[2,0] mindig a második mezőt az első soron jelenti, vagyis a komponenst.
A sor változót kell léptetni, hogy a komponensek egymás alá kerüljenek és ne mindig az első sor legyen felülírva. Ezért van mindegyik sorban a j belső változó meghívva.Ami fontos, hogy a script el fog hasalni ha olyan sorra hivatkozol ami a nem látható képernyő része. A képernyőmentéseden látszik 19 sor, de ha kisebbre teszed a GUI-t akkor lehet hogy csak 5 sort fogsz látni. Ezt kivédeni úgy lehet, hogy mielőtt írnál megnézed hogy létezik-e az adott sor. Tippre vhogy így:
On Error Resume Next
If session.findById("wnd[0]/usr/tabsTS_ITOV/tabpTCMA/ssubSUBPAGE:SAPLCSDI:0152/tblSAPLCSDITCMAT/ctxtRC29P-POSNR[0," & CStr(j) & "]").Text <> Right("000" & j, 4) Then
MsgBox "hiba"
End If
On Error GoTo 0Megkértem a jogosultságot a CS01-hez így ha majd megkapom akkor tudom tesztelni, hogy az elmélet párosul-e a valósággal.
üdv
-
KBaj
kezdő
Sziasztok!
Saját korábbi hozzászólásomhoz szeretnék néhány gondolatot írni. VBA programozásaimkor fordult elő, hogy belövéskor Next nélküli ciklus hibát jelzett. A For-Next ciklusokkal semmi baj nem volt. De akkor hol a hiba? Nagyon sokáig kerestem a hibát. Nagy nehezen megtaláltam az End If nélküli hibát. Kijavítottam és minden rendben volt. Azóta ilyen hibajelzés esetén nagyon figyelek az End If-re is.
Az előbbiekből kiderült, hogy megtaláltam egy programozási hibát, de nem baj mert tudom rá a reakciót. De okosak voltak a programozók, mert ugyan nem határozták meg a hibát (gondolom nem akarattal), de nem engedték el, így hibajavítás nélkül nem fut a program.
Gyanítom, hogy ugyanígy jártam most a Solverrel. Nem is az a Hiba amit kiír, mert tovább enged, de valami van. Csak bosszantó mert gombnyomást vár. De akkor mi lehet a hiba, mert nem az amit kiír. Tanulságul.
Üdv. -
DeFranco
nagyúr
válasz
Fferi50
#44755
üzenetére
köszönöm

néha elgondolkodom hogy mit össze tudna optimalizálni egy hozzáértő a "kódjaimon" (főleg hogy pl. én nem is deklarálom rendesen a változókat csak úgy odahányok mindent ahogy esik)
szerencsére legalább rendesen futnak és nem annyira bonyolultak hogy komolyabb időt igénybe venne a futásuk, de igyekszem tanulni és fejleszteni magam.
-
DeFranco
nagyúr
Sziasztok,
írogattam már VBA kódokat, túl sok szakmai alapom nincs hozzá, de általában összekalapálok egész használható dolgokat ami megkönnyíti a munkámat, viszont előfordul hogy az alapok hiánya miatt megáll a tudomány egy egyszerű lépésnél, ez van most is.
Azt szeretném automatizálni hogy ha kiválasztok egy tartományt, akkor a kód lépkedjen végig a kiválasztott tartomány egyes celláin és hajtsa végre a következő műveleteket:
0: kiválasztom az A1:D4 tartományt
1: nézze meg a soron következő cella (pl. A1) értékét
A1 cella tartalma:rántotta),
azt írja be magának egy változóba
2: ugyanebbe a cellába (A1) írjon be egy előre definiált képletet (legyen mondjuk=BAL([A1];2)) ahol az[A1]paraméter értéke értelemszerűen az A1 cellából felírt érték:
eredmény (A1 cella tartalma)=BAL("rántotta";2)
3: fogja meg az A1 cellát és a tartalmát mentse értékre:
eredmény (A1 cella tartalma)rá
4: lépjen a kiválasztásban a soron következő cellára
5: GOTO 1tegye ezt addig amíg a kijelölés végére nem ér (D4)
gondolom ez egy FOR ciklus lesz, ami nehézséget okoz, hogy hogyan olvasom ki a kijelölés paramétereit, tehát a kijelölt terület első cellája, sorok és oszlopok száma, amit a ciklus paramétereinek beadok. a többi elvileg menne.
-
KBaj
kezdő
válasz
Bobrooney
#44751
üzenetére
Szia!
Köszi, hogy érdeklődsz a témám után. Szerintem ránézésre minden megfelelő. Azóta kipróbáltam: ugyanarról a munkalapról dolgozva újból felvettem a makrót Excel fejlécről indítva, ugyanazokat cellákat használva. Persze rendben lefutott, csak a végző ablak (Megoldást talált ...) jelent meg, de ez természetes. Többször végig futott hiba nélkül. Egy furcsaságot tapasztaltam: kétszer jegyezte be az "SolverOk SetCell..." parancsot. Gondoltam sebaj, olvastam már interneten tőlem okosabb emberektől, hogy a makró rögzítő sok esetben igen bőven lejegyzi a parancsokat. A konkrét feladat megoldáshoz lehet, hogy nem minden sor kell. ... Nem baj én kétszer bemásoltam a kódsorokat az én programomba, úgy se ment, ill. kiírta a figyelmeztető ablakot.
Még egy módosítás: a fentebb említett parancs után van egy "SolverSolve" utasítás, ahogy a rögzítésben is van. Ilyenkor a futás végén megjelenik a "Megoldást talált" ablak, de ha szóközzel utána írjuk az "UserFinish:=True" szöveget nem kérdez, jóváhagyottnak tekinti a kiszámolt adatokat és továbbadja a vezérlést. Én így akarom használni.
Szívesen válaszolok további kérdésekre.
ÜDv. -
Met
nagyúr
Sziasztok!
Kivágok egy részletet egy pdf-ből (snashot tool, tehát bitkép), bemásolom egy cellába, majd jobbklikk kép szerkesztése, erre megnyújtja a képet, ezt el lehetne kerülni? Általában kilóg a képernyőről a kép és körülményes így a méretezés.
2016-os magyar nyelvű Excel
-
KBaj
kezdő
Sziasztok!
Ismét egy problémába ütköztem. A feladatom megoldására Solvert használok, eddigi megelégedésemre.
Először működött a dolog, röviden jelképesen leírva: Solver makrórögzítővel felvéve >> kiegészítve VBA utasításokkal >> VBA programomba helyezve, működött rendesen. Csiszolgattam a VBA programomat és most már nem úgy működik ahogy akarom. Ugyanis minden meghívás után a "A változó celláknak az aktív lapon kell lenniük." ablak jelenik meg. Pedig szerintem minden stimmel: a változók azon lapon vannak ahonnan meg lett hívva (select vagy activete lap). Az OK gombra kattintva tovább megy és teszi dolgát, jól. Ez, az egész projektet nézve bosszantó. Ugyanis a futás közben nagyon sokszor meg kéne nyomni az OK gombot.
Mit csinálhattam rosszul?
Üdvözlet. -
Fferi50
Topikgazda
válasz
sajog159
#44747
üzenetére
Szia!
Egyértelmű, hogy az ominózus cellában szöveg szerepel és nem dátum (csak dátum, időnek látszik). Ezért ez cellaformázással nem alakítható dátummá.
Az Adatok - Szövegből oszlopok varázslóval elérheted, hogy csak a dátum része maradjon meg, az "időt" pedig ne írja ki sehova:
A darabolási opcióknál válaszd a Tagolt típust. A következő párbeszédpanelnél jelöld be a szóközt is. A 3. lépésnél pedig az első oszlopra bejelölheted, hogy dátum:
a második oszlopnál pedig az oszlop kihagyása opciót:
Ezután magára az adott cellára/oszlopra visszaírathatod az eredményt - egy dátum oszlopot, a rendeltetési hely megadásával.
Üdv. -
sajog159
aktív tag
Lehet, hogy nem egészen fogtam fel a teendőt.
Amit probáltam: callán jobb klikk/cellaformazás/itt a kategória oszlopban kiválasztom a Dátum sort és ott a 2012.08.14 opciót. De ettől nem változik semmi:
Lehet még az Adatok opciókban kiválasztani Szövegből adatok (feltehetően a dátum végén lévő pont miatt az Excel ezt szövegnek nézi) végül is lehet 2 oszlopba íratni az egészet és dátummal nincs is gond, de a jobbra lévő számokat felülírjí idővel (07:27:27)
-
válasz
reimerm
#44744
üzenetére
Ez pont az, amire szükséged van, viszont a megértése a képletnek az már más tészta, ami meg nem ártana, mert a kérdésed úgy hangzik, mintha valami házi feladat lenne (ha rákérdeznek, hogy akkor ezt most magyarázd el, akkor gond lehet).
Beteszem a megoldást, de sok meló lesz, hogy megértsd
B1 cellába (majd másolható)
=SZORZATÖSSZEG(KÖZÉP(0&A3;NAGY(INDEX(SZÁM(--KÖZÉP(A3;SOR(INDIREKT("1:"&HOSSZ(A3)));1))*SOR(INDIREKT("1:"&HOSSZ(A3))); 0);SOR(INDIREKT("1:"&HOSSZ(A3))))+1;1)*10^SOR(INDIREKT("1:"&HOSSZ(A3)))/10) -
reimerm
csendes tag
Sziasztok!
A következő problémával találkoztam.
Az A oszlopban sorokban a következő mondatok állnak:
A1: A 513624 cikkszám hibás.
A2: Biztosan a 986576 cikkszámot szeretné megrendelni.
A3: A mai napon megrendelése feldolgozásra került és a 587764 cikkszámú termék postázásra került.
A feladat az, hogy a B1-B2-B3-ban csak a cikkszám szerepeljen a szövegből. A cikkszám mindig 6 karakterből áll, de a szöveg különböző helyén található.
Melyik függvénnyel lehetne ezt megoldani? És csak függvénnyel szabad megoldani a feladatban.
Segítségeteket előre is köszönöm! -
sajog159
aktív tag
Egy OTP Direkt-től letöltött fájlban a tranzakció időpontja oszlopban ilyen formátumban szerepel az időpont: 2020.08.15. 11:17:02. Eddig csak dátum volt. Van viszonylag egyszerű módszer az „11:17:02” kitörlésére? Vagy, hogy dátumként kezelje az időpont jelenlététől függetlenül? Ha kijelölöm a cellában és kitörlöm, a maradékot dátumként kezeli az Excel, de ez kissé macerás cellánként megcsinálni.
A segítséget előre is köszönöm. -
Fferi50
Topikgazda
Szia!
Bocs, hogy értetlenkedek, ez azért van mert nem ismerem az SAP-t (ez persze nem lehet mentség) és így csak "butákat" tudok kérdezni. De régebbi ismereteim szerint az ilyen rendszerekben szokott lenni olyan lehetőség, hogy adatfeltöltés fájlból és ez általában része az alapnak. Meg persze lehet API specifikáció is hozzá.
Amit a leírás alapján te szeretnél, az úgy gondolom, nem fűzhető össze egy tranzakcióvá, mivel több soros lenne az eredmény. Lehet belső ciklust csinálni, ahol figyeled a Material értékét és amíg egyezik, nem kell ismét bekérni.
Talán érdemes lenne kinyomozni a cég SAP kapcsolattartóját és vele beszélni erről.
Én biztosan a textfájlos inputot favorizálnám. Mivel ismered a cél formátumát, talán mégis lehet valami kaput találni, amit ki lehet nyitni a tömeges adatbevitelre.
Üdv. -
Telda
addikt
válasz
Fferi50
#44738
üzenetére
Az a baj, hogy csomó tranzakcióhoz nincs hozzáférésem. Vagy nincs megvéve a modul.
Dolgozz benne, de az infó rejtegetve van...
Igy csak ilyen scriptekkel tudok operálni.
Ezeket a cellákat kellene feltöltenem.
Ez pedig lenne az excel, amiből feltölti.
Valami olyasmi lenne az elképzelésem, hogy az A oszlopot figyelve, amig nem változik az érték, jelen esetben a 4192805 addig nem menti el a BOM-t. Hanem lépked lefelé és feltölti a cellákat. Amint megváltozik, pl.4192806 akkor elmenti és újra kezdi az egészet.
Találtam valami hasnonló elképzelést a sap blogon.
[link] -
Fferi50
Topikgazda
-
Telda
addikt
Sziasztok!
SAP-ban a CS01 taranzakcióban szeretnék BOM-ot feltölteni.
Összetákoltam valamit, de az a baj, hogy csak az 1 soros BOM-mal működik.
Esetleg van valami valami ötlete, vagy ehhez hasonló kész megoldása?
A scriptet SAP-ból inditom és csak annyit csinál, hogy a megadott excel fájl oszlopaiból kiolvassa az értékeket és beírja az adott helyekre.
De mivel ez csak egy léptető ciklus ahogy halad lefelé mindig csak egyet tud beépíteni.Dim objExcel
Dim objSheet, intRow, i
Set objExcel = GetObject(,"Excel.Application")
Set objSheet = objExcel.Workbooks("dj feltolt").Sheets("Munka1")
For i = 2 to objSheet.UsedRange.Rows.Count
COL1 = Trim(CStr(objSheet.Cells(i, 1).Value)) 'Column1
COL2 = Trim(CStr(objSheet.Cells(i, 2).Value)) 'Column2
COL3 = Trim(CStr(objSheet.Cells(i, 3).Value)) 'Column3
session.findById("wnd[0]/usr/ctxtRC29N-MATNR").text = COL1
'session.findById("wnd[0]/usr/ctxtRC29N-WERKS").text = "0610"
session.findById("wnd[0]/usr/ctxtRC29N-STLAN").text = "1"
session.findById("wnd[0]/usr/txtRC29N-WTEXT").setFocus
session.findById("wnd[0]/usr/txtRC29N-WTEXT").caretPosition = 0
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/tabsTS_ITOV/tabpTCMA/ssubSUBPAGE:SAPLCSDI:0152/tblSAPLCSDITCMAT/ctxtRC29P-POSTP[1,0]").text = "L"
session.findById("wnd[0]/usr/tabsTS_ITOV/tabpTCMA/ssubSUBPAGE:SAPLCSDI:0152/tblSAPLCSDITCMAT/ctxtRC29P-IDNRK[2,0]").text = COL2
session.findById("wnd[0]/usr/tabsTS_ITOV/tabpTCMA/ssubSUBPAGE:SAPLCSDI:0152/tblSAPLCSDITCMAT/txtRC29P-MENGE[5,0]").text = COL3
session.findById("wnd[0]/usr/tabsTS_ITOV/tabpTCMA/ssubSUBPAGE:SAPLCSDI:0152/tblSAPLCSDITCMAT/txtRC29P-MENGE[5,0]").setFocus
session.findById("wnd[0]/usr/tabsTS_ITOV/tabpTCMA/ssubSUBPAGE:SAPLCSDI:0152/tblSAPLCSDITCMAT/txtRC29P-MENGE[5,0]").caretPosition = 5
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[0]/btn[11]").press
next
msgbox "Keszen vagyunk" -
Fferi50
Topikgazda
válasz
Attilav4
#44730
üzenetére
Szia!
Az A6373 cella képlete:=ELTOLÁS($A$1;MARADÉK(SOR()-1;6372);MARADÉK(OSZLOP()-1;7)+INT((SOR()-1)/6372)*7;1;1)
Ezt húzd el jobbra 7 oszlopra, majd lefelé. Arról fogod megismerni, hogy végigért a számítás, hogy minden sorba és oszlopba 0 fog kerülni, valahol a 850-860 ezer sor között.
Javaslom, hogy ne egyszerre húzd végig, hanem szakaszosan.
Ha ezután tovább szeretnél dolgozni az adatokkal, akkor kijelölöd az egész képletes részt, majd másolod és irányított beillesztés (ugyanide) értéket.
Ekkor megszűnik a "képletfüggőség".
Üdv. -
Attilav4
csendes tag
Sziasztok,
segítséget szeretnék kérni excel témakörben.
Van egy óriási méretű excel táblám. 938 oszlop és minden oszlopban 6372 sor. (A1-AJI6372)
Amit szeretnék, hogy az első 7 oszlop utolsó sorai alá (A6372-G6372) alá kerüljön a következő 7 oszlop (azaz A6373-G6373-nál folytatódjon), azok alá a következő 7 oszlop és így tovább.
Nem tudom ez lehetséges-e, vagy ez kivitelezhetetlen, és egyesével kell egymás alá másolgatnom 7 oszloponként (nem tudom fontos-e, de Excel 2019-em van)
Segítséget előre is köszönöm.
-
jackal79
aktív tag
-
KBaj
kezdő
válasz
Fferi50
#44726
üzenetére
Szia!
Köszönöm a gyors választ.
Is merem a felhozott javítási módokat, meg is akartam próbálni, de amikor behívtam úgy láttam működik. No akkor -mondom TESZT-. Elkezdtem próbálgatni a korábban felépített funkciókat, de belebukott, mert az Excel összekavarodott és azt mondta: újraindulok. Na elég -mondom- elég. Folytatom egy korábbi, még működő példány újbóli felépítését - nem lesz egyszerű.
Üdvözlet. -
-
KBaj
kezdő
Help! Help! Help!
Sziasztok! Könyörgöm segítsen Valaki!
Excel VBA-ban az Application.EnableEvents=False / True utasításba belegabajodtam. Azóta nem működik a számolás, nem számolja ki a képleteket. Végigfut a vba kódon, de nem számol. Ha a táblán ráállok egy képletre F2 után Enterre kiírja az eredményt, nulla. Pedig nem nulla az eredmény. A képlet egyszerű: két cella összeadása. Még agép ki-be kapcsolása sem segít.
Köszönöm a segítséget! -
Delila_1
veterán
válasz
jackal79
#44702
üzenetére
Jelöld ki az adataidat, de csak a jelenleg adatokat tartalmazó cellákat, tehát
A1:L123-ig. Beszúrás menü, Táblázat, jelöld be a Fejléceket tartalmazó táblázat opciót. Az adatokat nem tartalmazó teljes sorokat (124:1000) töröld.
MOST vidd be az érvényesítéseket, akár névvel hivatkozva a tartományokra, ahogy FFeri javasolta.
Több nagy előnye van ennek a módszernek. Új sor felvitelekor a fölötte lévő érvényesítéseket, formázásokat, képleteket örökli az új sor, nem terheli a fájlt a túlzott képletezés, formázás. Jelenleg oszloponként bő 8-szoros a képletek, érvényesítések száma (1000/123).
Bármelyik sorban átírsz egy képletet, a teljes oszlopra igaz lesz.
Ha kimutatást készítesz a táblázatból, nem kell átírnod a tartományt a megnövelt sorszámra, csak egy frissítést adsz a kimutatásra. -
dssport
tag
válasz
Fferi50
#44722
üzenetére
A feltöltött minta az sajnos vagy szerencsére nagyon messze áll a tényleges táblázattól.
Ott csak 1 ellenőrző oszlop van, egy sokkal összetettebb képlettel, ami több értéket is ellenőriz/figyelembe vesz. Az irány jó lesz, így már meg tudom csinálni! Köszönöm szépen a segítséget!
-
Fferi50
Topikgazda
válasz
jackal79
#44719
üzenetére
Szia!
A névkezelőben elnevezed az egyes listákat tartalmazó érvényesítési tartományt és ezt a nevet írod be az érvényesítésnél.
Látatlanban igazából nem tudok többet mondani a problémára.
Talán meg kellene próbálni, hogy először csak egy oszlopnál legyen érvényesítés, úgy menteni - megnyitni. Aztán folytatni egyenként a további oszlopokkal. Esetleg egy új munkafüzetet csinálni, mert lehet, hogy "korrumpálódott" a fájl és ezért csinálja ezt.
Milyen Excel verziót használsz?
Ha minden kötél szakad (akkor még lehet ott pótkötél
), privátban meg lehetne próbálni, hogy valaki közülünk ránéz az eredeti fájlodra.
Üdv. -
dssport
tag
válasz
Fferi50
#44718
üzenetére
Értem. Jó ötlet! A csavar annyi a sztoriban, hogy az eredeti táblázatban az ellenőrzést végző/másik lapra hivatkozó cella a táblázat közepén van mondjuk ,,D" oszlopban...
A;B;C;E;F stb... körülötte mind rendezendő úgy, hogy a feltétel ami szerint rendezek pedig a táblázat legvégén van mondjuk ,,W" oszlopban. Lehet az lenne a legegyszerűbb, ha átrendezném a táblát, ,,D" oszlop tartalmát átraknám mondjuk ,,Y" oszlopba, előtte ,,X" oszlop üres, ott megszakad a táblázat és nem rendezi.Úgy rögzíteném a paneleket, hogy ,,D" oszlop helyére oda tudjam vízszintesen ,,görgetni" az ,,Y" oszlopot, így bár kényelmetlen de azért használható marad és az adatokat is látom 1szerre, 1 képernyőm.
-
jackal79
aktív tag
válasz
Fferi50
#44707
üzenetére
Szia!
"Meg van osztva a fájl és úgy használják, akár egyidőben is vagy külön-külön, egyszerre csak egy személy." - egyszerre csak egy személy tudja szerkeszteni
"Van-e lapvédelem a munkalapon?" - nincs
"Talán szerencsésebb lenne a listát tartalmazó tartományt elnevezni és a névvel megadni az érvényesítésnél." - sorry, de ezt nem értem pontosan. Jelenleg úgy néz ki, hogy egy külön fülön van oszloponként meghatározva a lista.
Legördülő listát már több táblázatban is alkalmaztam és ezt leszámítva eddig működött. Nem értem, hogy mi lehet a gond!
Köszi!
Üdv -
Fferi50
Topikgazda
válasz
dssport
#44717
üzenetére
Szia!
No, egy kis félreértés valóban történt. De akkor talán a megoldás is meglesz:
A rendezésnél az alap munkalapon csak az A:E oszlopot kell kijelölnöd és rendezned, hogy a képletek ne változzanak (hiszen az ellenőrzést mindig az adott sorra kell elvégezni)! És persze mindkét táblát rendezni kell.
Üdv. -
dssport
tag
válasz
Fferi50
#44716
üzenetére
ÁÁÁÁ értem a félreértés okát.
visszafelé persze működik. Amikor ,,visszajavítod".
de itt a kiindulási alap nem a -rossz végződésű lapokon van. Azok csak példák a hibára.Próbáld a sima ,,alap" és ,,adat" lapokon megfordítani a sorrendet A oszlop szerint csökkenőre, tehát úgy, hogy a narancs legyen az első a listán. Egyből nem lesz jó.
-
dssport
tag
válasz
Fferi50
#44714
üzenetére
Az egész táblázat ki van jelölve mindkét lapon

A2<>'adat-rossz'!A10,('alap-rossz'!C10+'alap-rossz'!D10)<>'adat-rossz'!E10) <<<< csak az A2 frissült, mert nincs előtte 'munkalap neve'!
itt ennek kellene lennie az újrarendezés után, hogy jól működjön a táblám:
A2<>'adat-rossz'!A2,('alap-rossz'!C2+'alap-rossz'!D2)<>'adat-rossz'!E2) <<<< csak az A2 frissült, mert nincs előtte 'munkalap neve' -
Fferi50
Topikgazda
-
dssport
tag
válasz
Fferi50
#44712
üzenetére
Megnéztem újra a problémát és összedobtam egy gyors mintát is.... Most úgy látom, hogy nem is a rögzítés a problémám...
Ha a sorrendet fel akarom cserélni "alap" és "adat" lapon egyaránt A, oszlopban található számok szerint csökkenőre, akkor a számítás hibás lesz, mert pl az alapF2 értékét továbbra is adatF10-ről veszi.....
-
Fferi50
Topikgazda
válasz
dssport
#44711
üzenetére
Szia!
Ha jól gondolom, akkor nem a sorokat, hanem az oszlopokat kell rögzítened és így húzható lefelé a képlet. ($A3=$B3+$C3)
De ha mégsem ez lenne a kérdés, akkor tegyél fel egy kisebb mintát és megkuksizzuk.
"a táblázat gyakran újra lesz rendezve bizonyos feltételek szerint, soronként."
Ez alatt mit értesz? A rendezés oszlopra vagy sorra vonatkozik?
Üdv. -
dssport
tag
Sziasztok!
Bocs a láma kérdésért de nem vagyok toppon a programmal kapcsolatban:
Excelben adott egy táblázat ami mondjuk 20 oszlopból és 500 sorból áll.
A táblázat soronként dolgozik képletekkel pl A3=A1+A2; B3=B1+B2 (nyilván több és bonyolultabb ezt csak a példa kedvéért írtam) + vannak más munkalapról szedett értékek is, szintén soronként.
Az a problémám, hogy ezeket a cellákat rögzítenem kellene, mert a táblázat gyakran újra lesz rendezve bizonyos feltételek szerint, soronként.
Legegyszerűbb módon ugye ezt $ jellel tudnám megtenni (A$3=A$1+A$2; stb...), így viszont a képleteket nem tudom ,,lehúzni".Tudtok erre valami gyors és egyszerű megoldást ajánlani úgy, hogy az excel makró része nekem kínai?
-
marec1122
senior tag
Elnézést kérek választ kaptam a kérdésemre [link] ebben a videóban.
-
marec1122
senior tag
Sziasztok!
Kaptam némi "információ cseppet" azzal kapcsolatban, hogy az fkeres függvény mechanizmusa könnyebben megvalósítható power query-vel. Tudnátok tippet adni mire gondolhatott a szerző?
-
Fferi50
Topikgazda
válasz
jackal79
#44706
üzenetére
Szia!
"Több személy is használja a fájlt"
Meg van osztva a fájl és úgy használják, akár egyidőben is vagy külön-külön, egyszerre csak egy személy.
Van-e lapvédelem a munkalapon?
Talán szerencsésebb lenne a listát tartalmazó tartományt elnevezni és a névvel megadni az érvényesítésnél.
Üdv. -
jackal79
aktív tag
válasz
Fferi50
#44704
üzenetére
Szia!
Van-e makró a munkafüzetben? - NINCS
Milyen módon csináltad meg a legördülő listás választást? Adatérvényesítéssel?
1. kijelöltem az oszlopot
2. Adateszközök/Érvényesítés
Azt szeretném elérni, hogy azokban az oszlopokban, ahol legördülő lista van csak azok az adatok kerüljenek be, amiket meghatározok. kimutatásoknál (szűrés) lenne fontos, mert ugyanazt az adatot többféleképpen is be lehet írni, így a kimutatás nem lesz pontos. Ha viszont a legördülő listát használjuk az előbb említett problémát ki tudom küszöbölni.
Több személy is használja a file-t.
Köszi! -
jackal79
aktív tag
Sziasztok!
Van egy elég nagy táblázat, amiben 12 oszlopot úgy csináltam meg, hogy legördülő listából lehessen csak az opciókat kiválasztani és 5 oszlop szabadon szerkeszthető. A lista jelenleg 123 sorból áll, ami folyamatosan bővül.
Az a problémám, hogy 1000 sorig megcsináltam a 12 oszlopokat legördülő listásra, ami szépen működik is addig még be nem zárom a file-t. Újraindítás után a legördülő listák eltűnnek, néha 1-2 cellánál a legördülő lista ikonja megmarad, de nem használható.
Van ötlet, hogy mi lehet a gond?
Köszi! -
Louro
őstag
válasz
Fferi50
#44689
üzenetére
Amúgy nagyon brutál különbség jött ki a két megoldás között.
40000 sorral:
A For Each ciklussal 10 másodperc alatt iterált végig.
Ha a tartományba "beíratom" a képletet, majd felülírom az értékével a cella tartalmát, akkor 0,1-0,2 másodperc.Pedig azt hittem, hogy ha képletet írok be, akkor a vége felé belassul a sok képlet miatt. Tudom, kikapcsolhattam volna az automata kalkulációt és a végén vissza. Vagy cellánként beiratom. Bár úgy látom, hogy ha a tartományba íratom be a képletet, akkor egyszerre írja be a program.
Új hozzászólás Aktív témák
- Bomba ár! Fujitsu LifeBook U729x - i5-8G I 8GB I 256SSD I 12,5" FHD Touch I HDMI I W11 I Gari!
- RTX 5080-as GAMER laptopok + dokkolók + licencek
- Telefon felvásárlás!! Samsung Galaxy A12/Samsung Galaxy A22/Samsung Galaxy A32/Samsung Galaxy A52
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Bomba Ár! Lenovo ThinkPad E14 G2 AMD - Ryzen 5 I 8GB I 256SSD I 14" FHD I HDMI I W11 I Gari
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest
.



).
A képletfüggőség megszüntetése is jó ötlet. Köszönöm

