- Androidos tablet topic
- VR topik (Oculus Rift, stb.)
- Már az 1,4 nm-es eljárására koncentrál a TSMC
- Hogy is néznek ki a gépeink?
- Milyen billentyűzetet vegyek?
- Nvidia GPU-k jövője - amit tudni vélünk
- Milyen HASZNÁLT notebookot vegyek?
- Fejhallgató erősítő és DAC topik
- Mindent kiváltana az UB-Mesh protokollal a Huawei
- A 3D V-Cache és a rengeteg memória lehet az új PlayStation fő fejlesztési iránya
-
PROHARDVER!
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Delila_1
veterán
válasz
Mittu88 #32184 üzenetére
Mivel Feri csak estére ígérte a választ, megpróbálom helyettesíteni.
A Téma összefoglalóban elolvashatod a personal füzet létrehozásának a módját. Ebbe másold be a már működő makró(i)dat.
Itt meglátod, hogyan tehetsz ki ikont a makró(k) indításához a gyorselérési eszköztárra.
-
Fferi50
Topikgazda
válasz
Mittu88 #32182 üzenetére
Szia!
Nem tudom, hogy az Office újratelepítés segíthet-e. Erre mondják, hogy próba-szerencse. De az általad linkelt problémát sem oldották meg....
Valószínűleg a gép memóriája "zavarodik meg" időnként, ezért írja a típushibát. A parancsgombok is okozhatják - milyen típusúak? ActiveX vagy Munkalap vezérlők?Helyette inkább javasolnám a Ribbonra feltenni saját menüként - ha szeretnéd, tudok benne segíteni - a Custom UI programmal lehet megoldani.
Üdv.
Ui: csak estefelé leszek elérhető újra.
-
Fferi50
Topikgazda
válasz
Mittu88 #32179 üzenetére
Szia!
Sajnos csak tippelgetek (mint anno a rabbi a juhoknál
).
Milyen tartalma van annak a fájlnak, amiből megnyitod a másikat? Nem lehet, hogy nagy munkalap aktív éppen benne?
(Nekem volt olyan problémám régebben, hogy diagram makrós beszúrásánál nem adta hozzá a címet meg még egy-két dolgot makró futáskor, ha lépésenként futtattam, akkor viszont nem jött elő a hiba... Hosszú idő után az derült ki, hogy egy nagyon sok adatot tartalmazó munkalap után próbáltam beszúrni a diagramot és ez vitte "tévútra" a folyamatos futású makrót - valami miatt az aktív munkalapról akart adatot rakni a diagramba beszúráskor. Amint egy kis adattartalmú munkalap volt aktív, ez a probléma megszűnt.!)Nem tudom, hogy munkafüzet nyitáskor ilyen okozhat-e problémát.
Talán meg kellene próbálni egy teljesen üres, csak a makrókat (+ egy munkalap) tartalmazó munkafüzettel futtatni.Üdv.
-
Fferi50
Topikgazda
válasz
Mittu88 #32176 üzenetére
Szia!
Nem oka a hibának szerintem, de felesleges az Err változót definiálnod, mivel az rendszer függvény, ami az ErrObjectet adja vissza - alapértelmezett tulajdonsága a Number.
Talán az lehet a probléma, hogy sok időbe telik megtalálnia a fájlt a hálózaton, esetleg érdemes lenne megpróbálni, hogy előtte arra a könyvtárra ugrassz a makróban a chdir paranccsal.
A Type Mismatch hibát a wb változódra írja ki?
Üdv.
-
Delila_1
veterán
válasz
Mittu88 #32137 üzenetére
Az az 1 sor, amit írtam, bármelyik lapról indítva a makrót, bármelyik másik lapra beteszi az oldaltörést.
Ha az aktív lapon akarsz oldaltörést létrehozni, az
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Range("A22")
sorral is megteheted.
Akár ciklust is szervezhetsz köré, ami x soronként szúr be oldaltörést.
Sub Oldaltores()
Dim x As Long
For x = 53 To 300 Step 53
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Range("A" & x)
Next
End Sub -
Fferi50
Topikgazda
válasz
Mittu88 #32128 üzenetére
Szia!
Thisworkbook.Worksheets("mlapnév").HpageBreak.Add "Adott cella" helyett
Thisworkbook.Worksheets("mlapnév").HpageBreakS.Add "Adott cella"
Az "Adott cella" egy Range objektum pl. worksheets("mlapnev").Range("A56") legyen.
A másik verzió pedig azért hibás, mert a Location objektum, ezért set és = formában kell értéket adni neki.
Set Thisworkbook.worksheets("mlapnév").HpageBreak(1).Location = "Adott cella"
Továbbá csak akkor működik, ha oldaltörés nézetben vagy.
Üdv.
-
lenkei83
tag
válasz
Mittu88 #32125 üzenetére
Kb annyi a lényege, hogy nincs oldaltörésed. Magyarul ha nyomtatsz egyet, akkor egyetlen egy oldalad lesz kinyomtatva vagyis az oldaltörésed ugyanaz mint az első oldalhoz kapcsolódó nyomtatási terület nagysága.
Van a linken minta kód is, teljesen jól mutatja hogy mi a gond.
Vélhetően Nálad így néz ki az oldaltörés, na ezt nem tudja értelmezni a kódod:
Üdv
P. -
Mittu88
senior tag
-
Fferi50
Topikgazda
-
Mittu88
senior tag
válasz
Mittu88 #30654 üzenetére
Sikerült!
Az Application.OnTime Now, "nyitas" parancsot a workbook.open eseménybe tettem, ezután hívtam meg az eljárást.
Így most annyi a gond "csak", hogy ha nincs ott az On Error Resume Next parancs az eljáráson belül, aWorkbooks(fajlnev2).Saved = True
Workbooks(fajlnev2).Closeparancsokra Subscript out of range hibát dob. Szerintem valamitől az X fájl (FinoMin.xlsm) bezáródik, így ezek a parancsok nem tudnak lefutni. Mindegy, bent hagytam, bár nem értem a dolgot.
-
Fferi50
Topikgazda
válasz
Mittu88 #30642 üzenetére
Szia!
Úgy gondolom, a nyitas makró tartalmát az ujverzio.xlsm Workbook_open eseményébe kellene beletenned, így az a fájl megnyitásakor lefutna.
(Melyik excel verzióról van szó?)
De akkor sem tartom igazán szerencsésnek ezt a megoldást, mert a füzeteken keresztül-kasul ugráló makrók tudnak ám problémát csinálni.
Én egy külön fájlba tenném ezt a verzió kezelést, ami megnézné, hogy van-e új verzió, ha igen, végrehajtja a kimásolásokat és utána akár be is zárhatja magát.Üdv.
-
Delila_1
veterán
-
Delila_1
veterán
válasz
Mittu88 #28305 üzenetére
Az On Error Resume Next hibát generál, ha nem tudja megnyitni a következő sorban a fájlodat.
A megnyitási hiba kódja az 1004. Mikor bejön ez a hibakód, felteszi a kérdést
valasz = MsgBox("Újrahívás", vbYesNo + vbExclamation, "Új próbálkozás")
Igen válasz esetén kilép a Sub-ból, Nem-nél az Ujra címkéhez ugrik, ahol megszüntetjük a hibakódot az
On Error GoTo 0 sorral, másképp hibát jelez akkor is, ha most már meg tudja nyitni a fájlt.
Ez a lenullázó sor tulajdonképpen a 2. próbálkozástól érdekes, első esetben 0 a hibakód. -
bumlet
csendes tag
válasz
Mittu88 #28307 üzenetére
https://drive.google.com/file/d/0B7b59Ad833pDVTNadWVwcF9tNTg/view?usp=sharing
Azt szeretném hogy a Kp munkalapon jelenítse meg az összes kp-s számlát, a bank munkalapon pedig a bankos számlákat. A feltöltött táblában van egy pár adat de ettől sokkal többel kell dolgoznom.
-
-
Delila_1
veterán
válasz
Mittu88 #28245 üzenetére
Ez a makró akkor fut hibára, ha az inputboxban olyan számot kap, ami nem szerepel az A oszlopban.
Nyilván át tudod alakítani a saját célodra.Sub hiba()
Dim lel, szam As Integer
Innen:
On Error GoTo 0
szam = Application.InputBox("Kérem az egész számot", "Szám bekérése", , , , , , 1)
lel = Application.Match(szam, Columns(1), 0)
If VarType(lel) = vbError Then
MsgBox "Újra!", vbExclamation
GoTo Innen
End If
MsgBox "A makró többi része"
End Sub -
-
-
-
Fferi50
Topikgazda
válasz
Mittu88 #27961 üzenetére
Szia!
Az alábbi makró elvileg átmásolja, amit szeretnél.
Sub masolo()
Dim ws1 As Worksheet, wb1 As Workbook, usor1 As Integer, usor2 As Integer, fnev As String
fnev = "xxxxxxx"
Set ws1 = Workbooks(1).Worksheets(1) ' ahonnan másolunk
usor1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row 'az A oszlop utolsó nem üres cellájának a sora
Set wb1 = Workbooks(2).Open(Filename:=fnev) 'megnyitjuk a másik fájlt
usor2 = wb1.Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Row + 1 ' megkeressük a worksheets(2) A oszlopának első üres cellájának sorát
ws1.Range("A1:L" & usor1).Copy Destination:=wb1.Worksheets(2).Cells(usor2, 1) ' a worksheets(1) megfelelő tartományát átmásoljuk a worksheets(2) A oszlopának végére
Workbooks(2).Save
Workbooks(2).Close
End SubÜdv.
-
Fferi50
Topikgazda
válasz
Mittu88 #27961 üzenetére
Szia!
Kicsit nézegettem még a makródat. Ha jól gondolom, az a feladat, hogy a Workbooks(1).Worksheets(1) munkalapjának az adatait szeretnéd a Workbooks(2).Worksheets(2) munkalapjának végére átmásolni.
Az utolsó teleírt sort így találhatod meg egyszerűen, nem kell hozzá ciklus:
usor=Cells(rows.count,1).End(xlUp).RowTartomány kijelölés többféle módon lehet: Pl:
Range("A" & i) => az A oszlop i-edik cellája
Range("A1" & ":L" & i) =>az A1:Li terület.
Cells(i,j) => az j oszlop i-edik sora (i és j szám)
és még számtalan változata van.A makródat még kicsit szabom.
Üdv.
-
Fferi50
Topikgazda
válasz
Mittu88 #27959 üzenetére
Szia!
Valóban abban a sorban van egy hiba:
Vagy Range(Range("A1"),Cells(i,12)), vagy Range(Cells(1,1),Cells(i,12))Másrészt viszont nem értem a két ciklust. Szerintem ezzel csak a legutolsó cellát fogod tudni átmásolni.
Még nézem a makródat, mert más gondot is látok benne.
Üdv.
-
Fferi50
Topikgazda
válasz
Mittu88 #24442 üzenetére
Szia!
A hibautan cimke szerintem felesleges.
On Error GoTo hibavan
For sorszam = 2 To osszsorszam
Sheets(masodikadatbazis).Select
raktarszam = Cells(sorszam, 2).Value
munkalapnev = Application.WorksheetFunction.VLookup(raktarszam, Sheets("Raktárak").Range("$M$2:$N$90"), 2, False)
raktarszam = munkalapnev
...
Next
hibavan:
sorszam = sorszam + 1
resume nextNem világos, hogy a munkalapnev változód milyen típusúnak van deklarálva. Ha variant akkor nem okoz futási idejű hibát, viszont az értéke hibaérték lesz és azt kell megvizsgálni
if not iserror(munkalapnev) then raktarszam=munkalapnevViszont megoldható másképp is, ha a munkalapnev nem variant tipusu:
On Error Resume Next
For sorszam = 2 To osszsorszam
Sheets(masodikadatbazis).Select
raktarszam = Cells(sorszam, 2).Value
munkalapnev = Application.WorksheetFunction.VLookup(raktarszam, Sheets("Raktárak").Range("$M$2:$N$90"), 2, False)
if err= 0 then raktarszam = munkalapnev else sorszam=sorszam+1
...
NextÜdv.
-
wolfman
veterán
válasz
Mittu88 #24079 üzenetére
Nem. Úgy van hogy írom a táblázatot és valami bill kombó megnyomhatok a nagy sebességemben vagy nem tudom, de néha így adja be. Klikkelek és alatta még 5 cellát kijelöl. Nagyon zavaró tud lenni.
Ha ki akarok egy cellát jelölni, akkor klikk és feljebb kell 4-el húzni az egeret. -
-
-
littleNorbi
aktív tag
válasz
Mittu88 #23837 üzenetére
Értelek, csak sajnos egy kész listát kaptam kézhez, ami ilyen módon lett betáplálva...
Gondoltam hogy van valami egyszerűbb megoldás is rá, mint hogy külön külön függvényt írni rá. Pl osztja szét az oszlopot úgy, hogy az első oszlopba kerüljenek azok a karakterek amik számok, és ha bármilyen más karakter található az oszlopban, ami nem szám onnantól azokat dobja át a másik oszlopba, mert ha mindenhol csak "/" jellel lenne elválasztva, akkor már meg is oldódott volna a problémám... -
Delila_1
veterán
válasz
Mittu88 #23626 üzenetére
2007-től így tehetsz ki ikont.
-
m.zmrzlina
senior tag
válasz
Mittu88 #23558 üzenetére
Az volt a probléma, hogy volt egy kezdőérték, lefutott a teljes kód aminek során megváltozott és ennek a kódnak egy részét szeretném újra futtatni.
Namármost: a kezdeti értéket nem adhatom meg a részkód futtatásánál mert ha már egyszer lefutott a teljes kód akkor már nem megyek semmire azzal az értékkel. Ha viszont itt adok értéket neki akkor meg a teljes kód futtatásánál kavar be.
De mindegy is Fferi50 tippje alapján fogok boldogulni a problémával.
Köszi mindenkinek aki segített.
-
kutga
félisten
válasz
Mittu88 #23520 üzenetére
Igen, egy munkalap egy partner. Makrókhoz nem nagyon konyítok sajna.
MOD
Wyll
Igen, így néz ki. Az elrejtés még jó is lenne, ha nem lenne belőlük egy csomó, kézzel, egyenként irtó sokáig tart, és mivel gyakran változik, gyakran meg is kell csinálni. Erre keresnék valami automatizmust. -
Fferi50
Topikgazda
válasz
Mittu88 #23467 üzenetére
Szia!
A Public deklaráció nem azt jelenti, hogy globálisan van generálva a változó. Az osztálymodulokban (Thisworkbook, Munkalapok kódmoduljai, stb) deklarált Public változók is elérhetőek mindenhonnan, csak az általam korábban már mutatott módon. (Ha elkezded írni bárhol máshol pl. Thisworkbook. a pont után láthatod a többi tulajdonság között a Public módon deklarált változókat is.)
A Global deklaráció csak standard (nem osztály) modulban használható.
A Public deklaráció standard modul esetén szintén nem kér teljes nevet, mert ott megtalálja.Üdv.
-
Delila_1
veterán
válasz
Mittu88 #23464 üzenetére
Próbáld ki Munka1-ről indítva a lentieket.
A change eseményt a Munka1 laphoz vidd be, a másikat modulba.Private Sub Worksheet_Change(ByVal Target As Range)
MásikMakró Target.Row, Target.Column, Target.Value
End Sub
Sub MásikMakró(sor, oszlop, nev)
Munka2.Cells(sor, oszlop) = nev
End SubVáltozók értékét így is átadhatod másik makrónak. Arra ügyelj, hogy a fogadó makróban ugyanaz legyen a változók sorrendje, mint az indítóban. Látod, nem kell azonosaknak lenniük a neveknek, ám a Change makróban felvehetsz 3 változót az átadáshoz – de minek?
-
Mittu88
senior tag
válasz
Mittu88 #23458 üzenetére
Hátha érdekel másokat is:
Ha a cella képletet tartalmaz ( = jellel kezdődik), enterre a sorrend: Calculate -> Change -> Selectionchange.
Ha csak beírunk valamit, NINCS Calculate.
Ha van érvényesítés és rossz értéket írunk be, annyiszor lefut a Change esemény, ahányszor módosítani akartuk a cella értékét. -
-
Fferi50
Topikgazda
válasz
Mittu88 #23446 üzenetére
Szia!
Akkor produkálja ezt a hibát szerintem, ha a selection_change úgy következett be, hogy nem volt előtte egyik cellában sem változás (pl. egy celláról simán tab-bal ment tovább valaki, vagy csak belekattintott valahonnan).
Próbáld ezt a selection_change -nél, mielőtt a cells(sor,1) utasításra mennél:
if sor=0 then msgbox "Nem volt változás" :exit subTermészetesen a then után azt írsz be, amit szeretnél, hogy végrehajtódjon. Pl. adhatsz értéket a sor változónak.
Üdv.
-
m.zmrzlina
senior tag
válasz
Mittu88 #23432 üzenetére
Kijelölt cella értékének változóba írása:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$I$6" Then 'ide jön, hogy melyik celláról van szó
ertek1 = Target.Value
End If
End SubMódosított cellaérték változóba írása:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$I$6" Then 'ide jön, hogy melyik celláról van szó
ertek2 = Target.Value
End If
End Sub -
slashing
senior tag
válasz
Mittu88 #23397 üzenetére
a legegyszerűbb ha úgy mondom mint amikor keresel valamilyen fájlt a számítógépen és azt írod hogy:
*kutya*.* így megkeresel minden olyan fájlt amiben a kutya szó szerepel bármilyen kiterjesztéssel, ez is kvázi egy regex kifejezés...
szóval ilyen kifejezéssek leírhatod hogy mit szeretnél kerestetni karaktereket számokat azoknak a hosszát stb...
Mindent az ég egy adta világon le lehet írni velük de mocskos bonyolult tud lenni, szerencsére nem sok közöm volt eddig hozzá.
-
slashing
senior tag
válasz
Mittu88 #23345 üzenetére
erről én is tudnék mesélni, mikor megnyitja a munkafüzetet előjön automatikusan egy msgbox kiírja hogy mit nem szabad, a cellán érvényesítés van és kiírja hogy mit nem szabad más színnel van jelölve és még akkor is az ellenkezőjét csinálja mikor meg letiltom akár még a rákattintást is akkor meg reklamál hogy de miéééért, mert hülye vagy azért és nem fogja fel....
az abszolút hozzá nem értőnél már csak az rosszabb aki azt hiszi hogy ért hozzá, mert majd ők megoldják de még egy ha függvényt sem tud megcsinálni
minden szerénység nélkül mondom hogy nálunk 5 asszisztens munkáját fél év alatt automatizálni tudnám és még csak makró sem kéne hozzá, pedig én se vagyok egy nagy mágus de félelmetes a hozzá nem értés. A színezésen kívül talán még a szum függvény amit értenek...
-
Mittu88
senior tag
válasz
Mittu88 #23337 üzenetére
Ma pl. lecsesztek, hogy a szerveren amit anno csináltam fájlt, simán le tudta törölni az egyik felhasználó. Megnéztem és az egész fájlt törölte. Erre mondtam, hogy nem azt mondtátok, hogy ne törölhesse, hanem hogy ne törölhessen bele.
Ezt én (remélem helyesen) úgy értelmeztem, hogy ha meg van nyitva a fájl, ne tudjon munkalapot vagy cella tartalmat törölni.
Pár évnyi adatot töröltek, de van róla biztonsági mentés. -
m.zmrzlina
senior tag
válasz
Mittu88 #23314 üzenetére
Nekem azt sikerült kiötleni (na jó innen loptam :-) hogy hozzáadsz a munkafüzetedhez egy lapot amin csak egy információ van a felhasználónak, hogy "Nincs engedélyezve a makró. Zárd be a munkafüzetet és nyisd meg újra miután engedélyezted a makrókat!". A fálj bezárásakor ezen a lapon kívül minden munkalapot elrejtesz és mentesz. Ha valaki engedélyezett makróval vagy letiltott makróval de biztonságos helyről nyitja meg a fájlt akkor a Worbook.Open esemény során az összes munkalap rejtése megszűnik csak az üzenetet tartalmazóé marad meg ergó tud dolgozni a user. Ha viszont nincsen engedélyezve a makró akkor megnyílik a fájl de csak egy lap látható amin az üzenet van (hiszen úgy mentetted el a fájlt hogy az összes többi rejtett).
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sh As Worksheet
For Each sh In Worksheets
sh.Visible = xlSheetVisible
Next
For Each sh In Worksheets
If sh.Name <> "figyelem" Then sh.Visible = xlSheetVeryHidden
Next
Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.DisplayAlerts = True
End Sub
Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In Worksheets
sh.Visible = xlSheetVisible
Next
For Each sh In Worksheets
If sh.Name <> "figyelem" Then
sh.Visible = xlSheetVisible
Else
sh.Visible = xlSheetVeryHidden
End If
Next
End SubJa és nem Insert>New>Module-ba másolod a makrót hanem a Thisworkbook>Worksheet-ba
-
Delila_1
veterán
válasz
Mittu88 #22250 üzenetére
Jelöld ki a tartományt, és indítsd a makrót.
Sub Konyveloi()
Dim cella As Object
For Each cella In Selection
If cella.NumberFormat = "_(* #,##0.00_);_(* (#,##0.00);_(* ""-""??_);_(@_)" Then _
cella.NumberFormat = "General"
Next
Range("A1:F17").Select
Columns("A:A").EntireColumn.AutoFit
End Sub -
slashing
senior tag
válasz
Mittu88 #21917 üzenetére
Nem használhatok összeg sort mivel folyamatosan bővülő táblázat, még ideiglenesen sem lehet majd bekapcsolni rajta az összeg sort. De nem számít annyira nem fontos dolog csak ha van egyszerű megoldás akkor belerakom.... ellenkező esetben meg ennyit kibír mindenki akinek dolgoznia kell majd vele...
Új hozzászólás Aktív témák
Hirdetés
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- PC Game Pass előfizetés
- ROBUX ÁRON ALUL - VÁSÁROLJ ROBLOX ROBUXOT MÉG MA, ELKÉPESZTŐ KEDVEZMÉNNYEL (Bármilyen platformra)
- Vírusirtó, Antivirus, VPN kulcsok
- GYÖNYÖRŰ iPhone 11 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3263, 100% Akkumulátor
- Motorola Moto G86 8/256 Cosmic Sky 1 év gari
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Új Lenovo 14 Ideapad 5 FHD IPS i5-1235U 4.4Ghz 10mag 16GB 512GB SSD Intel Iris XE Win11 Garancia
- Gamer PC-Számítógép! Csere-Beszámítás! I7 6700 / Rog RX580 8GB / 32GB DDR4 / 500GB SSD
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest