- Max
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Aliexpress tapasztalatok
- Linux kezdőknek
- Mesterséges intelligencia topik
- Sweet.tv - internetes TV
- Az Apple szerint ejteni kell az USA trösztellenes perét
- Mikrotik routerek
- Milyen program, ami...?
- A tüntetések ellenére is bővítheti német gyárát a Tesla
-
IT café
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
-
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. -
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.
[ Szerkesztve ]
-
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.
[ Szerkesztve ]
-
lappy
őstag
válasz DeFranco #44754 üzenetére
https://excelmacromastery.com/excel-vba-array/
amíg nem érkezik használható kód addig ezt nézd meg
tömbbe beolvasod az A étékeit majd egyesével ki kell szedni és bírni
de valószínű hogy meg kell nézni hogy mekkora lehet, legyen a tömbödBámulatos hol tart már a tudomány!
-
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. -
Mutt
aktív 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
[ Szerkesztve ]
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
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!!
-
Norbika1493
csendes újonc
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.
-
Delila_1
Topikgazda
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.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz Norbika1493 #44764 üzenetére
-
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
őstag
válasz Norbika1493 #44767 üzenetére
Szia!
Makrórögzítést próbáltad?
Üdv. -
Mutt
aktív tag
válasz fausto #44768 üzenetére
Szia,
Excel 2010-től van Power Query, amiben az Unpivot (oszlopok elemi értékre bontása) opciót kell használnod.
Az első formátumnál csak az ID-oszlopot kell kijelölnöd majd a Többi oszlop értékre bontását.
A második formátumnál az összes oszlopot jelöld ki majd Oszlopok értékre bontása.üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Fferi50
őstag
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. -
Norbika1493
csendes újonc
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
-
Delila_1
Topikgazda
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.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
lappy
őstag
válasz Norbika1493 #44776 üzenetére
Szumha függvényt nézd meg inkább.
Bámulatos hol tart már a tudomány!
-
Bobrooney
senior tag
válasz Norbika1493 #44776 üzenetére
-
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) -
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.
-
zsolti_20
senior tag
Próbáltam körül nézni találtam is valamit.
Sub TestCOMPort
Const ForWriting = 2, TriStateFalse = 0
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("COM1:", ForWriting, False, TriStateFalse)
' Write data to the port
f.Write Chr(26)
f.Write Chr(32)
f.Write Chr(27)
f.Close
End 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. -
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!
[ Szerkesztve ]
-
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. -
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?
-
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 Integer
Dim Start_Y As Integer
Start_X = Sheets("Teszt1").Range("C17")
Start_Y = Sheets("Teszt1").Range("D17")
Sheets("Teszt2").Cells(Start_X, 3) = Start_Y
End Sub
-
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. -
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.
Új hozzászólás Aktív témák
- Steam kulcsok - UTALÁS/REVOLUT
- World of Warcraft Shadowlands Collectors edition EU EN
- AKCIÓ! - STEAM kulcsok / Punch Club, Oddworld: Soulstorm, Children of Morta, stb. - 2024.05.16.
- Warhammer Online - Age of Reckoning (DE) Collectors Box (Figurával!)
- Windows 10/11 Home/Pro , Office OEM/Retail kulcsok
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs