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.
Gyorskeresés
Legfrissebb anyagok
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
- Tudástár AMD Radeon undervolt/overclock
Általános témák
LOGOUT.hu témák
- [Re:] [bacsis:] Készülődés a BRSZK-ra
- [Re:] [Lalikiraly:] Gigabyte G5 MF notebook bemutató
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [Mr Dini:] Ha szeretnéd rootolni az LG Smart TV-d, tedd meg most!
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] Helyettesíthetik-e gépek az emberi fordítókat?
- [Re:] eBay-es kütyük kis pénzért
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] [Luck Dragon:] MárkaLánc
- [Re:] [gban:] Ingyen kellene, de tegnapra
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
GAMEPOD.hu témák
Téma összefoglaló
- Utoljára frissítve: 2023-11-13 08:31:56
LOGOUT.hu
Hozzászólások
BenJoe80
senior tag
Nem tudom mennyire marad így, de úgy néz ki sikerült megoldani.
Az érvényesítési oszlop (ahol a legördülő listák vannak) szélességét beállítottam 40-re, majd elmentettem és bezártam a táblázatot. Amikor újból megnyitottam, akkor a szélességet visszaállítottam az eredeti 5-re és mentettem. A legördülő lista szélessége azonban maradt.
Még egyszer nagyon szépen köszönök minden segítséget!
Megisznak egy deci pálinkát. Miért? "Olyan savam vót, meg köllet innom egy deci pálinkát, aszittem megbolondulok." Aztán megisznak négy liter bort. Miért? "Há' semmi savam nem volt má'!"
Delila_1
Topikgazda
Szívesen.
Vannak ilyen rejtélyes dolgok Office-ékná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.
gaborlajos
csendes tag
Szia!
Ez sajnos nem oldja meg a gondomat, mert ez sok ember által használt(jelenléti ív), így automatikusnak kéne lennie. Másrészt ez a megoldás csak az alapadatokat tartalmazó oszlopot módosítja.
Köszönöm:
Fferi50
őstag
Szia!
Két dolog:
1. Az automatizmus magától nem megy, meg kell neki mondani, hogy mit csináljon - pl. eseményvezérelten, vagy gombnyomással vagy stb.
2. Amit írtam, azt nem csak egy oszlopra lehet alkalmazni, hanem tartományokra is - és makróból meg lehet hívni lásd első pont.
Tehát, ha felteszel egy mintát és leírod, hogy mikor mit csináljon, akkor könnyebben tudunk segíteni.
Üdv.
Mutt
aktív tag
Hello,
Ha csak akkor induljon a másolás, ha mindegyik másolandó cella ki van jelölve, akkor ezt próbáld ki:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const rngKijelol = "B2:B6" 'ebből a tarományból másolunk
Const wsCel = "Sheet2" 'erre a munkalapra másolunk
Dim rngMasolando As Range
Dim vSor As Long 'a cél munkalap utolsó sora
Dim arryAdatok As Variant
'megnézzük hogy ami ki van jelölve az mennyire fedi a másolandó tartományt
Set rngMasolando = Application.Intersect(Range(Target.Address), Range(rngKijelol))
'ha van fedés és az teljes, akkor mehet az utolsó sor meghatározása és az inverz másolás
If Not rngMasolando Is Nothing Then
If rngMasolando.Address = Range(rngKijelol).Address Then
vSor = Worksheets(wsCel).Range("A" & Rows.Count).End(xlUp).Row + 1
arryAdatok = rngMasolando.Value
Worksheets(wsCel).Range("A" & vSor).Resize(, rngMasolando.Rows.Count) = Application.Transpose(arryAdatok)
End If
End If
End Sub
Az elején vannak változók amiket igényszerint módosíts. Ahhoz a laphoz kell a kódot bemásolni ahonnan történik a másolás.
üdv,
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
gaborlajos
csendes tag
Fferi50
őstag
Szia!
Te egészen biztosan tudod, hogy mit szeretnél. Amit leírtál, abból viszont nem derül ki - legalábbis számomra:
Az ide másolja át részen látom a dolgozók neveit kigyűjtve. Ezen kívül mit kellene még mellé gyűjteni? Gondolom a teljesített órák számát, amit talán a mind összesen óra oszlop tartalmaz?
Miért van két név oszlop?
Gondolat: A dolgozó neve oszlopra csinálsz egy irányított szűrést, egyedi értékekre, az ide másolja át oszlopba.
Ezután a dolgozók melletti cellákban egy szumha függvénnyel összegzed a hozzá tartozó órák számát.
Legalábbis, ha ezt szeretnéd.
Légy szíves igazold vissza, jól gondolom-e a "feladatot".
Még valami: Excel verziód száma és nyelve?
Üdv.
[ Szerkesztve ]
gaborlajos
csendes tag
Szia!
Igazából semmi mást nem szeretnék, mint a többször is előfordulható dolgozók nevét, egymás alá íratni.Itt nem kell összesíteni semmit.Ez majd átkerül egy másik lapra a megfelelő helyre, az már nem gond. Azért van két oszlop mert abba is kerülnek nevek ugyan ezen elv alapján. Az Office 2015-ös, és magyar nyelvű.
Üdv:
Fferi50
őstag
Szia!
Eddig teljesen világos és egy makróval meg is oldható, hogy ha valaki uj nevet ír be, az átkerüljön a nevek oszlopába.
De! Mi garantálja, hogy mindig ugyanazt a nevet írja be és nem "bénázik"?
Én inkább csinálnék egy érvényesítő listát a nevek oszlopába és onnan választatnám ki a nevet. Így biztosan nem lenne félreütés. Persze ehhez tudnod kellene a dolgozók nevét előre. Mi a véleményed?
Üdv.
moklys1
aktív tag
Sziasztok. Egy százalékszámításban kérnék segítséget.
Példa:
=A1/100*A2 (A1= 32,86. A2-ben van megadva egy szám: 10)
Még a fenti képletben azt szeretném ha az A1 ből (32,86) kivonná a kapott eredményt (3,29)
29,57 jönne ki ha jól számol.
Sajnos ezt csak két cellában tudom megoldani és egy képletben szeretném.
alfa20
senior tag
Szia!
így próbáld meg: =SZUM(A1-(A1/100*A2))
[ Szerkesztve ]
"Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)
moklys1
aktív tag
Köszönöm jó lett
vigyori78
őstag
Sziasztok.
Volt egy régi táblázatom amiben volt külső hivatkozás (csatolás) ebből csináltam egy új táblázatot amiben már nincs külső hivatkozás,mégis feldobja az elején :
Az adatok hivatkozások-nál látom is a csatolást ezt hogyan tudom megkeresni melyik cella tartalmazza ?
Köszi.
Delila_1
Topikgazda
2007-től Adatok | Kapcsolatok | Hivatkozások.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
vigyori78
őstag
Köszi.
Az adatok hivatkozások-nál látom is a csatolást ezt hogyan tudom megkeresni melyik cella tartalmazza ?
Rákerestem az egész munkafüzetben : ([ ]) de nem talál semmit , megszakíthatom nyugodtan nem ha nem kell a hivatkozás ?
Delila_1
Topikgazda
Most nem tudom megnézni, de valószínű, hogy ebben a menüpontban módosítani tudod a csatolást. Ha igen, akkor a saját füzetedet tallózd ki itt, arra kell átirányítanod a csatolásokat.
Másik módszer, hogy szögletes zárójelet keresel a füzetedben, és egyenként törlöd a külső hivatkozásokat.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
repvez
addikt
Egy újabb egzotikus kérdésem lenne és , hogy van e rá viszonylag egyszerű megoldás amit halandók mint én is meg tudnak csinálni
Szóval azt gondoltam, hogy a google naptárban lévő bejegyséseket össze lehet e hozni valahogy egy excel táblával?
Tehát ha egy androidos telefonon vagy PC-n a naptárba beirok egy eseményt akkor az az excelben az arra a naphoz rendelt cellában megjelenjen mint szöveg amit utána már mint normális szöveg vagy adat tudok tovább feldolgozni az excelben.
Pl : Naptárban jan 9-re beirom, hogy találkozó, akkor mondjuk az B10 es cellában megjelenjen, hogy találkozó, amit utánna már bármilyen excel fügvénnyel további felhasználásra tehetem.
gaborlajos
csendes tag
Szia!
Teljesen igazad van, de mivel akár néhány száz emberről is lehet szó, ezért listát készíteni nem reális alternatíva. Bízom benne, hogy annyira azért vannak értelmesek, hogy elfogadják az Excel által felajánlott nevet a kezdőbetű beírására. Ezért aztán elég lenne a kód is.
Köszönöm, hogy ennyit foglalkozol a problémámmal.
Üdv: G.L.
lappy
őstag
Szia!
A GOOGLE segít! itt válogathatsz kedvedre
Bámulatos hol tart már a tudomány!
repvez
addikt
az lehet,de én ebből nem jövök rá, hogy is kéne nekifogni, meg amit a legtöbbet találtam az épp forditva exelből a naptárba frisit.
Meg még az sem tiszta, hogy autómatikusan leszinkronizálja magát az excel amikor megnyitásra kerül vagy minden egyes alkalommal le kéne menteni valahogy az adatokat a naptárból és ujra excelbe tenni?
Fferi50
őstag
Szia!
A munkalapod kódlapjára a következőt írd be légy szíves:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("$D$1:$E$50")) Is Nothing Then Exit Sub
Application.EnableEvents = False
vanmar = Application.Match(Target.Value, Range("$H$1:$H$" & Range("H4000").End(xlUp).Row), 0)
If IsError(vanmar) Then
If IsEmpty(Range("H1")) Then
Range("H1").Value = Target.Value
Else
Range("H4000").End(xlUp).Offset(1, 0).Value = Target.Value
End If
End If
Application.EnableEvents = True
End Sub
A kódlaphoz úgy jutsz, hogy a munkalap fülön jobb egérgombbal kattintasz. Ott kiválasztod a kód megjelenítését. Ezután a lap második felében megjelenik egy lenyiló, general felirattal. Azt átváltod worksheet feliratra. Megjelenik egy Worksheet_SelectionChange sub. Ezzel ne törődj, alá másold be a fentieket.
Amikor a D1:E50 cellák valamelyikébe beírsz egy nevet vagy bármit, a cella elhagyásakor a H oszlopban megvizsgálja, hogy van-e már olyan beírás. Ha nincs, akkor utolsónak beírja. De betű szerint egyeznie kell a beírásnak!
Természetesen a tartományokat a magad képére formálhatod (ha 4000-nél több dolgozó lehet, akkor a 4000-es számot vedd nagyobbra).
Remélem valami ilyesmire gondoltál.
Üdv.
KaliJoe
csendes tag
Sziasztok,
Ki tudja, hogyan lehet érvényes formában speciális karaktereket bevinni makróba, úgy, hogy végül képletté lehessen átadni. Valahogy így:
...
str_COszlop = "=SZÖVEG(B" & Trim(str(lng_AktuálisSor)) & ";""nnnn"")"
...
Worksheets(str_DolgozóRövidNév).Range("C" & Trim(str(lng_AktuálisSor))).Formula = str_COszlop
...
vagy
str_HOszlop = "=HA(VAGY(E" & Trim(str(lng_AktuálisSor)) & "=0;D" & Trim(str(lng_AktuálisSor)) & "=0);0;(E" & Trim(str(lng_AktuálisSor)) & "-D" & Trim(str(lng_AktuálisSor)) & ")-G" & Trim(str(lng_AktuálisSor)) & ")"
...
Worksheets(str_DolgozóRövidNév).Range("H" & Trim(str(lng_AktuálisSor))).Formula = str_HOszlop
...
Az első példa tartalmaz olyan részletet, ahol " idézőjelet kellene bevinnem. Nem tudom, az helyes-e így, mindenesetre szintaktikailag nem minősíti hibának, evvel még elindul.
A második példa nem tartalmaz speciális karaktert... mégis azonos az eredmény, futás közbeni hibára fut, miszerint "Application-defined or object-defined error"...
Szóval, ki-mit-tud képletbevitel témában?
Ui.: Csak string képletek beírásával van bajom, a számokat tartalmazó képlet hibátlanul átmegy.
Frazeológiám: Az ember nem kávéra, nem is kávéházra vágyik, az ember lelke barátra vágyik, a kávé csupán ürügy... :-) ;)
tgumis
tag
Sziasztok van olann az excelben hogy más más szeméjnek más más jogosúltságot engedéjzek?
Wyll
őstag
Sziasztok!
Elég fontos volna. Hogyan lehet VBA-ban ezt megcsinálni:
Szerintem így:
dstbook.Worksheets(1).Range("KELL").Copy
srcbook.Activate
kitoltendo.Select
ActiveSheet.PasteSpecial link:=True
Application.CutCopyMode = False
Csakhogy így nekem marhára nem cellahivatkozások jönnek létre. Pedig azt szeretnék.
[ Szerkesztve ]
Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=Wyll
Fferi50
őstag
Szia!
Néhány megjegyzés:
Az idézőjeleket kétféleképpen viheted be a szövegbe:
1. Megduplázod az idézőjelet - ahogyan Te is tetted, ez teljesen szabályos forma
2. A CHR függvénnyel CHR(34) hozzáfűzésével - ezt nem kell duplázni!
A számváltozókat nem kell átalakítani a kifejezésekben:
&Trim(str(lng_AktuálisSor))
teljesen felesleges, egyszerűen beírhatod, hogy & lng_AktuálisSor
Továbbá: VBA-ban a cella formula tulajdonság képlettel való megadásakor kizárólag angolfüggvénynevek használhatók. Tehát nem HA, hanem IF, nem VAGY hanem OR és így tovább.
Ha magyar függvényneveket szeretnél használni akkor a cella formulalocal tulajdonságát kell beállítanod.
A második példád egészen biztosan ezért ad hibát.
Viszont, ha magyar nyelvű képlettel írod be VBA-ból a kifejezéseket, akkor nem lesz hordozható az excel táblád, mert nem magyar környezetben, vagy a tiedtől eltérő beállításoknál nem tudja értelmezni majd a képletet.
Ha lenne még kérdésed, írj bátran.
Üdv.
Fferi50
őstag
Szia!
Ebben az esetben próbáld az adott cella formula tulajdonságát beállítani, azaz a képletet beírni a cellába, valahogy így:
srcbook.kitoltendo.formula="=" & dstbook.Worksheets(1).Range("KELL").Address(external:=true)
Az address tulajdonság external kapcsolója arra utasítja az excelt, hogy az adott cella teljes elérési útvonalát is tartalmazó címét adja meg - a hivatkozáshoz neked pont erre van szükséged.
Üdv.
[ Szerkesztve ]
Wyll
őstag
Hmm, jó ötlet, nem tudtam, hogy a Range-nek address property-je is van
Valószínűleg csak otthon fogom tudni kipróbálni, ezért addig is egy kérdés:
"kitoltendo" és "KELL" ugyanolyan alakú, sokcellás (1sor magas, 25 cella széles) range-ek.
A copy-paste ehhez pont jó, mert a "kitoltendo" összes celláját beállítja, de van egy olyan érzésem, hogy a kitoltendo.formula -ra ez már nem lesz így igaz, hanem egyenként kell beállítanom... Egyetértesz? Ha igen, hogy csinálnád?
Amúgy(1): az enyém vajon miért nem működik?
Amúgy(2): itt van egy csávó, aki azt állítja, hogy bármennyire is furcsa, PasteSpecial helyett simán elég volna Paste-t használnom. Nyilván kipróbáltam, de így sem ment... Szerinted (is) hülyeség? Ha igen, akkor megy neki a mínuszpont
[ Szerkesztve ]
Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=Wyll
Fferi50
őstag
Szia!
Azért mégis próbáld meg a beillesztéses verziót a következőképpen:
kitoltendo.Select
ActiveSheet.Paste link:=True
Ennek így működnie kell.
Az én verzióm ilyen esetekre akkor működik, ha a forrás cellák és a cél cellák címei megegyeznek a két munkalapon (azaz pl A1:H1 mindkét lapon).
Ha ez nem így van, akkor a következőt javaslom:
kitoltendo.cells(1,1).formula="=" & dstbook.WorkSheets(1).range("KELL").cells(1,1)address(external:=true,rowabsolute:=false,columnabsolute:=false)
kitoltendo.formula=kitoltendo.cells(1,1).formula
Ez azért jobb szerintem, mint a copy mert nem használja a vágólapot.
Üdv.
Sziasztok!
Én is beleütköztem ebbe az "Az objektum nem szúrható be." problémába. Utánanéztem, és ezt a megoldást találtam. Nekem bejött, és működik.
From other forums, I have learned that it is due to the MS Update and that a good fix is to simply delete the file MSForms.exd from any Temp subfolder in the user's profile. For instance:
C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\MSForms.exd
C:\Users\[user.name]\AppData\Local\Temp\VBE\MSForms.exd
C:\Users\[user.name]\AppData\Local\Temp\Word8.0\MSForms.exd
Of course the application (Excel, Word...) must be closed in order to delete this file.
KaliJoe
csendes tag
Szia Fferi50,
Köszönöm, ez volt a megoldás.
Frazeológiám: Az ember nem kávéra, nem is kávéházra vágyik, az ember lelke barátra vágyik, a kávé csupán ürügy... :-) ;)
Fferi50
őstag
Szia!
A Microsoftnak volt egy dec. 9-i office frissítése az ActiveX sebezhetőség megjavítása érdekében. Az "vágta haza" az aktivex használó programokat. De nagyon gyorsan feltették a megoldást.
Viszont amikor erről beszélgettünk a fórumon, akkor ez még nem volt nyilvánvaló.
Üdv.
Agostino
addikt
üdv
létezik amolyan bővített vlookup? összekötni két oszlopot nem gond, akkor viszont gondban vagyok ha az oszlopon belül például duplikált nevek is találhatók. a nev melletti következő oszlop persze tartalmaz már egy születési dátumot, tehát ezzel lehetne szűrni a duplikációból adódó gondot, csak nem tudom hogyan.
hey friend listen, i know the world is scary right now but its gonna get way worse
Delila_1
Topikgazda
Egy üres oszlopban összefűzöd a nevet és a dátumot, és ebben az oszlopban keresel. Érdemes a két adat közé szóközt, alsó kötjelet, vagy más elválasztó karaktert tenni.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
OK, csak gondoltam másnak is segítséget jelenthet, akinél felmerül ez a probléma.
Agostino
addikt
oh és true, tényleg.
hey friend listen, i know the world is scary right now but its gonna get way worse
gaborlajos
csendes tag
Szia!
Nagyon szépen köszönöm neked, kiválóan működik!
Szép az benne, ha lépésről lépésre követem még értem is. Még egyszer nagyon hálás vagyok Neked.
Üdv: G.L.
Fferi50
őstag
Szívesen!
pirit28
csendes tag
Sziasztok !
EXCEL 2003
Az alábbi vba kód változtatásában kérném hozzáértő segítségét.
Ezt neten találtam ,változtattam rajta de még nem tökéletes és nem tudom ,hogyan folytassam tovább.
A feladata az ,hogy egy kiválasztott könyvtárban levő xls file-okat mégegyszer elmentse xls-ként ,hozzáadva a file nevéhez egy ok-t.
De pl ha a választott könyvtárban xlsx kiterjesztés is van, akkor leakad, megáll.
Meg ha a választott könyvtárban van több könyvtár is akkor az almappákban levő fileokat a választott könyvtárba menti,(főkönyvtár)
és nem oda ahol eredetileg van a file.
Megoldható-e, hogy a választott könyvtárban levő file-ok ,illetve a könyvtárak könyvtáraiban levő file-ok ugyan oda mentődjenek el, ahol eredetileg vannak az jóóó lenne.
Meg az hogy miért akad le azt sajna nem tudom.
A választ előre is köszönöm, és a megoldást is.
Sub Button1_Click()
Dim MyFolder As String
Dim myfile As String
Dim folderName As String
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
If .Show = -1 Then
folderName = .SelectedItems(1)
End If
End With
myfile = Dir(folderName & "\*.xls")
Do While myfile <> ""
Workbooks.OpenText Filename:=folderName & "\" & myfile
ActiveWorkbook.SaveAs Filename:=folderName & "\" & Replace(myfile, ".xls", "ok.xls")
opened
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
myfile = Dir
Loop
End Sub
air
nagyúr
Sziasztok!
Lenne egy olyan problémám, hogy ~300 db Excel munkafüzetet kellene egyesítenem egyetlen egy darab fájlba.
Ezek között van 97-2003-as xls és 2007-es xlsx is.
Hiába kerestem a neten használható lehetőséget csak egyet találtam. Ez az Excelben a "Munkafüzetek összehasonlítása és egyesítése" parancs lenne. Azonban ez a parancs a Menüszalagról nem érhető el, csak a Gyorselérési eszköztárra rakható ki. Ott viszont folyamatosan inaktív, vagyis használhatatlan.
Nem tudom elhinni, hogy egy ilyen problémát nem lehet 2 ujjmozdulattal megcsinálni.
Előre is köszönöm a segítséget.
Tintatartó, aligátor, búzavirág, csók, gyalupad, fogpiszkáló
Fferi50
őstag
Szia!
Úgy gondolom, az elakadás amiatt van, mert direktben xls kiterjesztésre van kondicionálva:
myfile = Dir(folderName & "\*.xls")
Ha más kiterjesztés is van, akkor így kellene:
myfile = Dir(folderName & "\*.xls*")
A mentésnél pedig ezt a sort kellene kiváltanod:
ActiveWorkbook.SaveAs Filename:=folderName & "\" & Replace(myfile, ".xls", "ok.xls")
úgy gondolom erre:
ActiveWorkbook.SaveAs Filename:= Replace(ActiveWorkbook.FullName, ".xls", "ok.xls")
Itt már nem probléma, ha a kiterjesztés pl. xlsx, mert csak az xls cserélődik ki.
A FullName már tartalmazza a teljes elérési utat is, ezért nem kell a folderName hozzá.
Üdv.
Fferi50
őstag
Szia!
Egyrészt, nem tudom, hogy a Munkafüzetek összehasonlítása és egyesítése menüpont azt csinálja-e amit szeretnél. Másrészt ki lehet tenni ezt is a menüszalagra, a testreszabásnál ki kell választanod, hogy minden parancsot szeretnél látni és akkor egyéni csoportba "át tudod tolni" a menüszalagra is.
Továbbá, mit értesz azon, hogy egyesíteni kellene egyetlen darab fájlba?
Azt, hogy az összes munkafüzetben levő összes munkalapot bele kellene másolni egy db munkafüzetbe,
vagy azt, hogy a munkalapokon levő adatokat valamilyen algoritmus szerint egy db munkafüzetbe össze kellene fésülni (pl. a Munka1 munkalapon levő cellák értéke a legutolsó előfordulás szerint legyen)?
Azért nem gondolod Te sem komolyan, hogy különböző verziókban leledző többszáz munkafüzet majd csettintésre átalakul egy munkafüzetté? Meg kell azért bizony dolgozni. Szépen sorban meg kell nyitogatni őket, majd elvégezni rajtuk/velük a szükséges műveletet (átrakni az "örökös" munkafüzetbe) és utána visszazárni.
Ezt egy nem túl nagy makró megcsinálja, ha tudod, hogy mit szeretnél.
Üdv.
air
nagyúr
Igen, tudom, hogy ki lehet tenni akár a gyorselérési eszköztárra, akár a menüszalagra. Ki is tettem, de mindenhol inaktív.
Azt gondoltam, hogy a különböző verziókat homogenizálni kell, de ez a kisebbik gond.
Ezek egy webes alkalmazás riportjainak exportált listái.
Minden fájlban egyetlen egy munkalap van, és azon x, y, z db sor.
A feladat, az összes fájlból a munkalap tartalmát összemásolni folytonosan, egymás után. Semmi flikk-flakk, csak egymásutáni másolás.
Sajnos, a kézzel történő összefűzés nem megoldható. 300 fájlnál ez még egy gyakorlott Excel felhasználónak is legalább 5 óra, ha csak 1 percet számolok fájlonként.
Makróval hogyan nyitogatok meg fájlokat, és hogyan mondom meg, hogy az egyikről x, a másikról y, és így tovább, különböző darabszámú sorokat másoljon át?
[ Szerkesztve ]
Tintatartó, aligátor, búzavirág, csók, gyalupad, fogpiszkáló
Wyll
őstag
Nem lehet, hogy egyszerre kell hogy megnyitva legyen legalább 2 file, és akkor aktiválódik a gomb?
Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=Wyll
air
nagyúr
Sajnos nem.
Próbáltam úgy is, ahogy a leírás szerint van. Viszont ez a leírás Excel 2003-hoz van, és frissebbet nem is találtam.
Tintatartó, aligátor, búzavirág, csók, gyalupad, fogpiszkáló
Fferi50
őstag
Szia!
Ez a gomb szerintem csak közös használatú munkafüzeteknél aktív.
Nem egészen világos még mindig: Adott 300+ fájl egy-egy munkalappal különböző számú sorokkal.
Az adott fájlból a munkalapon levő sorokat a "Főfájl" egyetlen munkalapjának az utolsó sorai után kell bemásolni?
Mindenesetre jó lenne, ha az összes fájl egy könyvtárban lenne. Akkor lehet egy viszonylag egyszerű makrót írni az összemásolásukra.
Most más dolgom van, de ha visszajövök, segítek, de írd meg lsz. jól értettem-e a feladatot.
Üdv.
air
nagyúr
"Az adott fájlból a munkalapon levő sorokat a "Főfájl" egyetlen munkalapjának az utolsó sorai után kell bemásolni?"
Pontosan erről lenne szó.
Az egy mappába elhelyezés nem gond. A fájlok neveiben a dátum szerepel, tehát mind egyedi nevű.
Előre is köszi.
Tintatartó, aligátor, búzavirág, csók, gyalupad, fogpiszkáló
pirit28
csendes tag
Szia Fferi50 !
Csak így egyszerűen, köszönöm ! Ez így már teljesen használható....ha még azt is valahogyan meg tudnád oldani ,hogy almappákban levő file-okat is figyelembe vegye, akkor lenne a tökéletes tökéletessége .
Köszönöm !
Fferi50
őstag
Szia!
Próbáld ki a következőt:
Sub osszerako()
Dim hova As Worksheet, fajlneve As String, usor As Long, xx As Integer
Set hova = ActiveSheet
fajlneve = Dir("*.xls*")
Application.EnableEvents = False
Do While fajlneve <> ""
xx = xx + 1
usor = hova.UsedRange.Rows.Count + 1: If usor = 2 Then usor = 1
Workbooks.Open Filename:=fajlneve, ReadOnly:=True
ActiveSheet.UsedRange.Copy Destination:=hova.Cells(usor, 1)
ActiveWorkbook.Close False
fajlneve = Dir()
If xx Mod 10 = 0 Then Application.StatusBar = "Másolva: " & xx & "db fájl!"
Loop
Application.EnableEvents = True
Application.StatusBar = False
MsgBox "A másolásnak vége, kérem, mentse el a fájlt!", vbInformation, "Fájlok összemásolása"
End Sub
Remélem segít.
Üdv.
Fferi50
őstag
Szia!
Az almappák miatt kicsit bonyolultabb, de rajta vagyok.
Üdv.
KaliJoe
csendes tag
Sziasztok,
Tud valaki trükköt vagy konkrét parancsot, amivel egy VBE makróban kijelölt (pl. Bármi.Select - tel kiválasztott) és / vagy beillesztett cellamegjelöléseket le lehet venni a cellákról? Vagyis olyan mintha ki lenne jelölve, aztán ESC gombot nyomna a felhasználó...
Ötlet? Parancs? Trükk?
[ Szerkesztve ]
Frazeológiám: Az ember nem kávéra, nem is kávéházra vágyik, az ember lelke barátra vágyik, a kávé csupán ürügy... :-) ;)