- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Telekom mobilszolgáltatások
- Bivalyerős lett a Poco F6 és F6 Pro
- Hivatalos képen a Samsung hajlíthatók
- Xiaomi 14 Ultra - Leica hercegnő
- iPhone topik
- Honor 90 - modellalkat
- Nemzetközi bemutatókra készül az Oppo
- Apple iPhone 13 Pro Max - őnagysága
- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
Hirdetés
-
Ismét láthatjuk hogy fest az Enotria: The Last Song
gp A korábbi halasztások után szeptember közepén elviekben végre megkapjuk a teljes kiadást.
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
-
Hivatalos képen a Samsung hajlíthatók
ma Csak épp nem hivatalos forrásból érkeztek. Merre vagy, Z Fold Ultra?
-
Mobilarena
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Fferi50
őstag
válasz rigo99 #25857 üzenetére
Szia!
A10 cella képlete: =INDIREKT("E" &INT( (SOR()-10)/4)+1)
A11 cella képlete: =INDIREKT("F" &INT( (SOR()-10)/4)+1)
A12 cella képlete: =INDIREKT("G" &INT( (SOR()-10)/4)+1)
A13 cella képlete: =""Ezt a négy képletet másold végig az A oszlopon (4-gyel osztható cellaszámmal).
Üdv.
-
Fferi50
őstag
válasz Agostino #25886 üzenetére
Szia!
A Type mismatch hiba akkor következik be, ha egy változót nem a neki megfelelő értékkel szeretnél feltölteni.
Akkor tudnál közelebb jutni a probléma megoldáshoz, ha a hiba jelentkezésekor a debug gombra kattintasz. Ekkor megjelenik a VBA nézet és sárgával az a sor, amelyiken a hiba jelentkezik.Ezt a képet feltehetnéd. Az immediate ablakban (ha nem látsz ilyet, akkor a felső menüsorban view immediate) pedig meg lehet tudni, hogy melyik cella okozta a problémát. Ha beírod az ablakba: ? cella.address és nyomsz egy entert, kiírja a cella címét, ? cella.value enter kiírja a cella aktuális értékét, cella.select enter az adott cellára ugrik.
Utána átmész az excel ablakba és meg is nézheted a cella tartalmát.(Gondolom erről a makróról van szó:
For Each cella In Selection.Cells
If InStr(1, cella.Value, "!") <> 0 Then
cella.Value = "*" & cella.Value & "*"
End If
Next)Üdv.
-
Fferi50
őstag
válasz TrollBalint #25865 üzenetére
Szia!
"Múltkorában azt mondtad, hogy egy felhasználói függvény nem módosíthatja a cella tartalmát" Ez így nem pontos - hiszen ahová beírod a képletet, annak a cellának a tartalmát módosítja (hiszen ezért írod be). A pontos fogalmazás az, hogy másik cella tartalmát nem módosíthatja.
"Amit te írtál makró az mégis tudja" Nem tudom, melyik makróra gondoltál (a munkanaposra valószínűleg).
Két különböző dolog van a VBA -ban: A függvény (function) és az eljárás (sub). A függvény meghívható a munkalapról is (ha betartjuk az ide vonatkozó szabályokat, mint pl. a fenti is), az eljárás viszont nem.Az as Date a végén azt jelenti, hogy a függvény visszatérési értéke dátum típusú lesz.
Az eljárások képesek módosítani más cellák - adott esetben másik munkafüzetben levő cellák - adatait és jellemzőit is.
Ennél persze "kicsit" bonyolultabbak a szabályok, az egyik lényeges viszont ez.
Ha másik állományból kell importálni adatokat, ahhoz is lehet akár függvény, akár eljárás a makró típusa (a nézet menü makró listájában csak az eljárások (sub) láthatók, azok közül is csak olyanok, melyek paraméter nélkül hívhatók).
Ha a problémát vázolod, akkor biztosan akad itt segítő kéz - több is akár.
Üdv.
-
Fferi50
őstag
válasz azopi74 #25864 üzenetére
Szia!
Ez egy kissé bonyolultabb lett és hasonlít nagyon a tiedre:
HA(ÜRES(INDIREKT(VÁLASZT(MARADÉK(SOR()-10;4)+1; "E";"F";"G";"H") &INT( (SOR()-10)/4)+1));"";INDIREKT(VÁLASZT(MARADÉK(SOR()-10;4)+1; "E";"F";"G";"H") &INT( (SOR()-10)/4)+1))
A cella tartalom vizsgálat azért kell, hogy ne 0 kerüljön az üres cella értékeként a cél cellába.
Üdv.
-
Fferi50
őstag
válasz Fferi50 #25908 üzenetére
Kiegészítés:
Igaz, akkor az esetleges hibás értékek nem fogják kiakasztani. De előtte megnézheted, hogy van-e benne hibás érték egy
Set vanhiba=Activesheet.UsedRange.Find(what:="#",lookin:=xlvalues,lookat:=xlpart)
if not vanhiba is nothing then
msgbox "Hibát találtam a " & vanhiba.address & " cellában",vbinformation
exit sub
endifprogramrészlettel.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz Chesterfield #25955 üzenetére
Szia!
Nézd meg légyszives a feltételes formázás beállításait.
Üdv.
-
Fferi50
őstag
válasz azopi74 #25992 üzenetére
Szia!
Nincs annak más baja, csak annyi, hogy az ArrayCol() tömb vízszintes, ezért ha a tömbképletet függőlegesen írod be, akkor csak az első elem kerül be minden sorban a cellába.
Ha egy sorban jelölöd ki a kimeneti cellákat, akkor szépen kiírja az eredményt.
De más baja is van. Ha nem oszlopban helyezkednek el a bemeneti cellák, hanem pl.sorban, vagy téglalapban, máris bukik a dolog hibával, mert csak a sorok számát nézed meg a tömb dimenzionálásánál.Ha oszlopban szeretnéd az eredményt kiíratni, akkor ezt az értékadást kell a végén alkalmaznod:
IntColor2 = Application.Transpose(ArrayCol())Üdv.
-
Fferi50
őstag
válasz slashing #26063 üzenetére
Szia!
Sokmindenben egyetértek veled (s bár ez a topic a problémamegoldásról szól és nem a diskurzusról) még egy-két gondolatot megosztanék veled:
Ha a másik felet kérdezed - akkor a reakciók olyanok, mint amit leírtál: miért használunk excelt, miért így van programozva, mért ezt számol és nem mást, ráadásul a programozó azt sem tudja, mire szeretnénk használni (ez utóbbi nyilvánvalóan azért, mert maguk sem tudják, de jó ezt másra kenni).
A munkalapok "elrontását" szerintem egy módon lehet elkerülni: Nem szabad a táblát a felhasználó "kezébe" adni, hanem Userformokkal kell operálni adatbevitel céljából.
Lekérdezéses - szűrős - kimutatásos - diagramos munkafüzetet pedig csak olvasásra engedni megnyitni, csak "egy értelmes ember" kapjon módosítási lehetőségeket.Most befejezem, mert ugrik a netem.
Üdv.
-
Fferi50
őstag
válasz SzlobiG #26078 üzenetére
Szia!
"Nem kompatibilis visszafelé vagy mi?"
Bizony nem, vannak olyan eszközök a 2010-es excelben, amik nem működnek a 2007-esben. Pl. ilyen az adatérvényesítés, ha másik munkalapon levő tartományra hivatkozik. Ezt úgy lehet elkerülni, ha elnevezed a tartományt és az érvényesítésben a névvel hivatkozol rá. Így működik a korábbi verzióban is.
Üdv.
-
Fferi50
őstag
válasz cellpeti #26098 üzenetére
Szia!
A Thisworkbook kódlapon a Wokbook_Open eseményben rejtsd el a többi munkalapot:
For each sh in worksheets
if sh. name<>"Munka1" then sh.visible=xlsheethidden 'vagy xlsheetveryhidden
next
Munka1 helyére beírod a láthatónak hagyott munkalap nevét.
xlsheetveryhideen esetében nem látszik a munkalap a munkalapfül listán sem.Üdv.
-
Fferi50
őstag
Szia!
" ha az f mezőbe beírok valamit, akkor a d mezőbe beírja az aktuális dátumot, és időt."
Remélem oszlopra gondoltál...
If Not Intersect(Target, Range("F:F")) Is Nothing Then
For Each cl In Intersect(Target, Range("F:F")).Cells
Cells(cl.Row, "D").Value = Now()
Next
End IfÜdv.
(Elkerülheted a "hangulatjeleket", ha használod az alul levő programkód gombot.)
-
Fferi50
őstag
válasz cellpeti #26104 üzenetére
Szia!
Át kell menni a VBA ablakba. Alt+F11 billentyű.
Itt látod a VBA projektet (ha nem látod, akkor menüben view - Project explorer).
Abban van egy Thisworkbook nevű elem, ha rákattintasz kettőt, akkor megjelenik a kódlapja.
A bal oldali lenyílóból válaszd ki a Workbook -ot. Megjelenik egy
Private Sub Workbook_Open()
End Subkódkeret.
Ide kell bemásolnod amit írtam a korábbi hsz-ban.Üdv.
-
Fferi50
őstag
válasz Delila_1 #26155 üzenetére
Szia!
Most nekem is összejött. Szerintem az a "siker kulcsa", hogy "simán" csak a kifejezést kell beírni képletként, azaz egyenlőségjellel kezdve. Ekkor megjelenik a kifejezés eredménye a kritérium cellában. (Tehát pl. =B2=C2 - ami igaz/hamis -ként jelenik meg- és nem ="=B2=C2", ami =B2=C2 -ként jelenik meg a cellában.)
Üdv.
(Az a szép az ilyen fórumokban, hogy mindig tanul az ember valami újat és hasznosat.)
-
Fferi50
őstag
válasz bteebi #26162 üzenetére
Szia!
Az világos, hogy honnan szeretnél másolni, az viszont nem egészen, hogy hova.
Mert a "forrás" munkafüzet megnyitása után az abban levő munkalap válik aktívvá, tehát az itt
" For oszlop = 2 To 10 Step 4
'ebben a sorban valószínűleg több hiba is van:
ActiveSheet.Cells(19 + 2 * adat, oszlop) = 1000 * (Left(fajlnev.Sheets("Sheet1").Cells(36 + 2 * (adat - 1), 16), Len(fajlnev.Sheets("Sheet1").Cells(36 + 2 * (adat - 1), 16) - 1)))
ActiveSheet.Cells(19 + 2 * adat, oszlop).NumberFormat = "0"
Next oszlop"
hivatkozott Activesheet sajnos a forrás fájlodban van.Tehát ebben az esetben neked nem a forrás fájl hivatkozással van problémád, hanem a cél fájl hivatkozásával.
Ezt pedig úgy tudod megoldani, hogy az "eredeti" munkafüzeted kitöltendő munkalapját (amiből a többit megnyitod), egy változóhoz rendeled mielőtt még egy másik fájlt megnyitnál (pl.Set cellap=activesheet), mivel most még az az aktív munkalap.
Ezek után a számolás: cellap.cells(19+2*adat,oszlop) -ra kell hogy hivatkozzon és persze akkor fajlnev.sheets("Sheet1").cells helyett maradhat az Activesheet.cells."az eredeti adatok általános formátuma pl. "3.2k"" Ez azt jelenti, hogy mindig van a szám után egy betű és a formátum szöveg?
Ha igy van, akkor a használható a replace függvény is: replace(activesheet.cells(36+2*(adat-1),16),right(activesheet.cells(36+2*(adat-1),16),1),"").
Viszont a "beszúrt" programsorból úgy látom, az eredeti érték számformátum, ezért működik a közvetlen szorzás 1000-el, vagyis nem kell semmilyen levágás, átalakítás!Még valami: ahol Activesheet.Cells van, ott az Activesheet elhagyható, mert az az alapértelmezés.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz bteebi #26165 üzenetére
Szia!
Milyen hibát ír ki? Szerintem továbbra is az a baj, hogy nem szövegformátumból akarsz szöveget kivágni a left és len függvényekkel. Ez mire lenne jó?
De a fajlnev is okozhat problémát, mivel az egy szöveges (string) változó és nem objektum.
Ezért így kell használni Workbooks(fajlnev).Sheets("Sheet1"), de a szituációból kiindulva írhatod így is Activeworkbook.Sheets("Sheet1") (mivel megnyitás után ez lesz az aktív munkafüzet).A munkafüzet bezárása is hasonló: Workbooks(fajlnev).Close Savechanges:=False ez utóbbi paraméter alapján nem menti a változásokat és nem is kérdez rá, hogy szeretnéd-e menteni (nem is kell, hiszen a forrásfájlt nem változtatod).
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz bteebi #26167 üzenetére
Szia!
Egy apróság van benne. A fajlnev változód a megnyitott fájl teljes nevét tartalmazza és így nem találja meg a megnyitott fájlok között, mert ott viszont csak a rövid név szerepel.
Ezért be kell egy sort iktatni:
End If
fajlnev=activeworkbook.name ' ezt kell beszúrni
For adat = 1 To 10Szerintem így már mennie kell. (De a szövegfeldolgozást továbbra sem értem, hiszen egyszer már megbeszéltük, hogy a számot nem lehet szövegfüggvénnyel darabolni.)
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz alevan #26181 üzenetére
Szia!
A következő megoldást javaslom:
Sub fajlmasolo()
' A makró legyen a Master fileban, amit makróbarát fájlként kell a művelet elindítása előtt elmenteni!
' Így a Master.xlsm legyen a forrásfájlokkal egy mappában, ez a mappa mindegy, hogy hol van!.
Dim Filename As String, Pathname As String,xx as Double
Activesheet.Usedrange.Clear ' a munkalap tartalmát kitöröljük
'Hol vannak a fájlok
Pathname = ActiveWorkbook.Path
Filename = Dir(Pathname & "*.xlsx") 'Ha régi formátumban vannak, akkor .xls-re írd át.
xx = 1 'ez az első fájl helye - az első oszlop
'Menjen végig minden fájlon
Do While Len(Filename) > 0
'NEM KELL Megnyitni a forrást!!!
Cells(1, xx).Formula = "='[" & Filename & "]Sheet1'!B2" 'Sheet1 helyére azt a munkalapnevet kell írnod, ahol az adatok vannak a forrásfájlban.
Cells(2, xx).Formula = "='[" & Filename & "]Sheet1'!C8"
Cells(3, xx).Formula = "='[" & Filename & "]Sheet1'!B15"
' itt folytatod a kitöltést a fentiek szerint
xx = xx + 1 ' vesszük a következő oszlopba
Filename = Dir() 'a következő fájlt
Loop
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value ' a képleteket átváltjuk értékre
MsgBox "A másolásnak vége!", vbInformation
End SubMakrót az Alt+F11 után "feltűnő" VBA ablakba tudsz másolni. A menüből ki kell választanod az Insert - Module opciót. Ezután tudod a modulba bemásolni.
A forrásfájlokat utána kitörölheted - vagy az újakkal felülírhatod és ismételten lefuttatod a makrót.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
Szia!
Ebben a pár sorban van egy kis ellentmondás:
Workbooks.Open(Filename)
'Itt jön a másolgatás.
Range("B2").Select
Selection.Copy
Workbooks("Master.xlsx").Worksheets("Sheet1").Range(Cells(ActiveSheet.Usedrange.Rows.Count,1)).PasteSpecial xlPasteValues
A munkafüzet megnyitása után a megnyitott munkafüzet lesz aktív, eddig rendben.
A Select nélkül is lehet másolni: Range("B2").Copy
A bibi itt van szerintem:
Workbooks("Master.xlsx").Worksheets("Sheet1").Range(Cells(ActiveSheet.Usedrange.Rows.Count,1)).PasteSpecial xlPasteValues
mivel az ActiveSheet továbbra is az, ahonnan a másolást csinálod, azaz a megnyitott munkafüzet aktív munkalapja!
Helyette a Master fájl "Sheet1" munkalapjára kellene itt is hivatkozni. Ráadásul minden egyes file adatát ugyanabba a sorba (usedrange.rows.count) fogja beírni - azaz csak az utolsó fájl adata marad meg.
Ezen kívül a másolást lehet direktbe is csinálni:
Range("B2").Copy Destination:=Workbooks("Master.xlsx").Worksheets("Sheet1").Cells(Workbooks("Master.xlsx").Worksheets("Sheet1").UsedRange.Rows.Count + 1, 1)Természetesen a többi cella másolásánál már a UsedRange.Rows.Count kell.
Ha viszont csak az értéket szeretnéd átvenni, akkor működik ez is:
Workbooks("Master.xlsx").Worksheets("Sheet1").Cells(Workbooks("Master.xlsx").Worksheets("Sheet1").UsedRange.Rows.Count + 1, 1).Value=Range("B2").ValueÜdv.
[ Szerkesztve ]
-
Fferi50
őstag
Szia!
Ha ugyanabban a könyvtárban(mappában) van a forrásfájl, mint a célfájl, akkor elég a fájlnév a hivatkozásban, ha máshol van, akkor a teljes fájlnév kell hozzá, elérési úttal együtt.
Bezárt munkafüzetre való hivatkozás egyébként mindig a teljes fájlnevet használja (az előző pontban is, ha megnézed a beírás után, ha átlépsz egy másik cellára, a teljes fájlnevet fogod látni) a képletben.A dir függvény mindig csak a fájl elérési út nélküli nevét adja vissza. Elképzelhető, hogy ez a probléma.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
Szia!
Akkor félreértettél:
"File = Pathname & "\" & Filename & "\*.xlsx"
Workbooks(File).Worksheets("Target").Cells(1, 1)"
Itt a File változó a teljes nevet tartalmazza. Ezt nem szereti ebben a pozícióban az Excel VBA, ide elég a Filename (amiben a kiterjesztés is benne van, legalábbis 2010-ig biztosan.
Viszont most látom: A Filename & "\*.xlsx" -ben miért is van benne a backslash? , illetve így a File fogja tartalmazni a * karaktert, ami aztán végképp nem szerepelhet a fájlnévben.
Szóval úgy néz ki, több sebből vérzik az elképzelés."Mondjuk az nem működhetne, hogy Workbooks(Dir(Source_file)).Worksheets?" Szerintem túlbonyolítod a dolgot, a Source_file is teljes, path-t is tartalmazó név, ezért nem felel meg. Másrészt, ha már megnyitottad, akkor csak a rövid név müxik.
Megnyitás nélkül pedig nem kell a Workbooks, csak a teljes fájlnév szögletes zárójelben, aposztróffal kezdve a több tag lehetősége miatt, utána a munkalap neve, aposztróf bezárva felkiáltójel cellacím.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz Geryson #26206 üzenetére
Szia!
Több lehetőség is van rá.
Pl. indításkor bekéred a felhasználó nevét és jelszavát és a belépett felhasználótól függően határozod meg, hogy mit láthat és mit tehet. Viszont a felhasználókat és a hozzájuk tartozó jelszavakat és jogosultságokat neked kell nyilvántartani és kezelni.
Lehet védeni a munkalapot, illetve kijelölni felhasználótól függően módosítható területeket.
Elrejtheted az adatokat tartalmazó munkalapokat úgy, hogy csak programból lehet előhívni (visible tulajdonság xlveryhidden értéke).
A felhasználónak csak az adatbevitelre szolgáló munkalapot mutatod meg. Esetleg csinálsz egy userformot az adatbevitelre és azt egy teljesen üres/ vagy semleges munkalapon mutatod meg.Fontos, hogy legyen koncepciód, ki mit és miért tehet.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz Geryson #26212 üzenetére
Szia!
Az Excel munkafüzet és munkalap védelmét érdemes átnézned. Ebben szerintem egy olyan rész van, ami felhasználóhoz köthető, a tartományok módosítási lehetőségének felhasználóhoz kötése.
Más jogosultság kezelésről nem tudok az Excel eszközei között. A felhasználó függő "korlátozások és beállítások" ügyét, ahogy korábban is írtam, neked kell meghatároznod és leprogramoznod. Kezdve onnan, hogy megnézed, ki lépett be (ezt meg tudja mondani az excel is pl. a munkafüzet userstatus tulajdonsággal, vagy az Applicaiton.Username tulajdonsággal).
Az információ alapján mutatsz neki lehetőségeket.Üdv.
-
Fferi50
őstag
válasz Geryson #26241 üzenetére
Szia!
"Ja, hogy ezt a felhasználó szintű dolgot ezt programozni kellene?"
Néhány dolog megoldható (pl. tartományok módosítási lehetősége), tartományok védelme. De változó körülményeket csak programozás árán tudsz kezelni általában.
(pl. azt biztosan nem tudod menüből, hogy Kis Piroska csak egy munkalapot, Nagy Márton viszont kettőt lásson.)Üdv.
-
Fferi50
őstag
válasz Gandalf80 #26260 üzenetére
Szia!
1. kérdés:
"Megpróbáltam JOBB, ill. BAL szövegfüggvénnyel, de "számokká" váltak"
Mivel a dátumot számformátumban tárolja az excel, ezért ha a cella dátumformátumú, akkor nem ad helyes eredményt a szövegfüggvény manipuláció.
A dátum egész része a napot, a tört része pedig az órát jelenti. Tehát az egyik oszlopba a dátumod egész részét kell tenni - éééé.hh.nn formátumra formázva a cellát, a másik oszlopba pedig a "maradékot", idő formátumra formázva a cellát.2. kérdés:
"egy oszlopban található (adott naphoz tartozó) két nevet valamelyik keresőfüggvény kiszűrje, és beírja automatikusan"?
A kérdés az, hogy mivel van elválasztva a két név. A Szöveg.keres függvénnyel megtalálhatod az elválasztó karakter helyét, ellőtte van az egyik név (bal függvénnyel), utána van a másik név (közép függvény, vagy jobb függvény, hossz függvény kombó). A műszak helye pedig index és hol.van függvény kombóval található meg.Üdv.
-
Fferi50
őstag
Szia!
"A magyar függvényneveket meg én is utálom."
"Bár a CONCATENATE vs. ÖSSZEFŰZ esetén a magyar javára billen a mérleg "Ennél az egy "függvénynél" - és szándékos az idézőjel - aztán végképp nem indokolt mérleget billegtetni, mert helyette az & jelet kell használni, egyszerűbb és sokkal rövidebb.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
Szia!
Most aztán már végképp nem világos, mi lenne a feladat...
Ha jól értem, egy "összevissza" vezetett, lényegében egyetlen logikát tartalmazó (mármint csoporthoz rendeli a tagokat) munkalapról kellene egy rendezett táblázatot csinálni.
Ha most töltődik a táblázat, akkor eseménykezelésben nézném meg, hogy az új jövevény hova tartozik és attól függően szúrnám be a "kimutatás" táblába. De úgy látom, még naponta is figyelni kellene, ki mit csinál, amit szintén valami ilyen módon oldanék meg.
Ezt az eseményvezérelt táblát adnám oda "folyamatos kitöltésre" és a beíráskor kvázi azonnal aktualizálódna a rendezett táblád.
Egy szöveges példa:
Bejön Jocó az I csoportba 21-én: beírja, hogy Jocó - eseménykezelés - megnézem, hogy melyik csoport van fölötte - a saját táblámba beszúrnék egy sort az adott csoport végére és beírnám oda Jocót. Majd miután beírta 21-re a feladatot -eseménykezelés - beírja Jocó sorába a 21-hez a feladatot szintén.
Az eseménykezelést a Worksheet_Change eseménykezelő végezné a "zavaros" táblán történtek alapján.Üdv.
-
Fferi50
őstag
Szia!
Bocsi, lehet, hogy nem követtem elég figyelmesen a témát. Hol van a makróban, hogy átnevezi a fájlt?
Mert én csak azt látom, hogy megnyitja a fájlokat, a sheets(1)-ben kicseréli amit kell, majd visszamenti a fájlt.Ennek nem lenne szabad problémát okozni - kivéve, ha angol az op rendszered, de akkor már az eredeti névben sem lehetne szerintem ékezetes betű - , hiszen csak mentés van és nem átnevezés.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz Delila_1 #26345 üzenetére
Szia!
Akkor valami "összeférhetetlenség" van az op.rendszer és az Excel között, nálam Win7 és Excel 10 van, mindkettő magyar és szépen megnyitja a dir függvény által visszaadott "Munkaidő nyilvántartó rendszer-új-2015.....xlsm" nevű fájlt is (a szóközzel és sok-sok ponttal közben.
Azt nem tudjuk, hogy nála milyen verziók vannak ezekből?
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz tonermagus #26357 üzenetére
Szia!
Szerintem két lépésben tudod megcsinálni. Az A oszlopban vannak az adataid, A1-től.
1. lépés:egy segédoszlopban végighúzod ezt a képletet: =helyette(A1;karakter(10);";")
Ezzel a "nem látható" sortöréseket átalakítod pontosvesszővé.
2.lépés:
kijelölöd a segédoszlopot. Adatok - szövegből oszlopok - tagolt - a tagoló pontosvessző, ezt kijelölöd. Beírod, hogy melyik cellánál kezdje a kiírást. Majd OK.Az eredeti oszlopod és a segédoszlopod is "eldobhatod" utána.
Ha az első lépésben nem cserél semmit, akkor meg kell nézned, hogy milyen karakter van a sortörés "helyén".
Ezt úgy tudod meg, ha egy cellában beírod =kód(közép(A1;2,1)), ha nem 0 van az A1 cellában az első sorban, akkor kiszámolod, hányadik karakter lehet a sortörés, azt a számot írod a 2 helyére.Üdv.
-
Fferi50
őstag
válasz tonermagus #26362 üzenetére
Szia!
A másolás - beillesztés értékként lépést kihagytam a segédoszlopra.
Bocsi.
Üdv.
-
Fferi50
őstag
válasz Heno1974 #26378 üzenetére
Szia!
Esetleg megpróbálhatnád az excel adatkapcsolat varázslójával létrehozni a lekérdezést - makró rögzítéssel.
Aztán az eredményből vagy lehet tanulni, vagy nem.
Miután azt látom, hogy SAP objektumot hozol létre és azt szeretnéd programozni, akkor viszont szerintem az SAP oldal követelményeivel kell tisztában lenned és nem az excel oldallal.Üdv.
-
Fferi50
őstag
válasz layerke #26430 üzenetére
Szia!
"Próbáltam az excelben meghivatkozni egyes cellákat, de ehhez nyitva kell lennie a fájloknak vagy helyben tárolva kell lenniük, "
Ez így nem követelmény. Az excelben meg tudod hivatkozni a munkafüzet kapcsolatokat a teljes elérési út beírásával.
A formulát tartalmazza a help is, de konkrétan kipróbálhatod: Megcsinálod a hivatkozást egy megnyitott fájllal - amelyik máshol van -, majd bezárod a megnyitott fájlt. Látni fogod, hogy a hivatkozás átvált a teljes bekerülési útvonallal megadottra.
Ezen minta alapján a többi cella/fájl hivatkozást is meg tudod csinálni.
Kis ügyeskedéssel azt is össze tudod hozni, hogy egy táblázat alapján képlettel keletkezzen a hivatkozás,(Év-hó-nap) alapján indirekt függvény használatával - bár ez utóbbi pokoli lassúvá teszi a rendszert.Inkább azt javasolnám, hogy makróval helyezd el a képleteket, majd utána váltsd át a képletet értékre, hiszen az elmúlt időszak adatai gondolom nem változnak tovább, tehát amikor elkészültél, onnantól már csak a frissülő adatokhoz kell a képlet.
Üdv.
-
Fferi50
őstag
válasz layerke #26448 üzenetére
Szia!
Ilyen esetben kell az indirekt függvényt használni. Egy cellába összerakod a tényleges hivatkozást és utána azt a cellád teszed be az indirekt függvénybe.
pl: a1 cella képlete ="'\\fsl1\GMV\Napi\2013\"
b1 cella képlete ="Január\[GMVj20130101.xls]GMVjelentés'!"
c1 cella értéke $D$5F1 cella képlete =indirekt(A1&B1&C1)
Természetesen a képlet "szétszedés/összerakás" a változó szükségletnek megfelelő, lehet, hogy csak a napot kell változtatni, akkor azt teszed egy külön cellába.
Viszont nagyon súlyos korlát, hogy az indirektes képlet csak akkor működik, ha megnyitott a forrásfájl, egyébként hibát ad vissza (legalábbis 2010-es verzióban így van.
Ha viszont képlettel írod be a hivatkozást (vagy makróval!) akkor nem kell nyitva lennie egyáltalán a forrás fájlnak.
Ha makró segítség kellene, tégy fel egy mintát (két fájl kamu adatokkal) és segítünk.
Üdv.
-
Fferi50
őstag
válasz Gravity1234 #26473 üzenetére
Szia!
Ezt biztosan nem nekem szántad.
De: A kapcsos zárójeleket nem kell beütnöd, azt az excel maga teszi bele a shift+control+enter hatására.Üdv.
Új hozzászólás Aktív témák
- Nvidia GPU-k jövője - amit tudni vélünk
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Computex 2024: feltárta a Lunar Lake-et az Intel
- Microsoft Edge (a Windows Internet Explorer utódja)
- Xbox tulajok OFF topicja
- Formula-1
- Diablo IV
- Politika
- Synology NAS
- Genshin Impact (PC, PS4, Android, iOS)
- További aktív témák...
- Eladó Steam kulcsok kedvező áron!
- AKCIÓ! - STEAM kulcsok / Punch Club, Oddworld: Soulstorm, Children of Morta, stb. - 2024.05.16.
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- Megmaradt - Eredeti Humble, Choice - Steam kulcsok
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen