Hirdetés
- Milyen videókártyát?
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- AMD vs. INTEL vs. NVIDIA
- HiFi műszaki szemmel - sztereó hangrendszerek
- Hogy is néznek ki a gépeink?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Úgy állhat le a 16 GB-os GeForce RTX 5060 Ti gyártása, hogy közben nem áll le
- Milyen billentyűzetet vegyek?
- CES 2026: árad a Panther Lake az Inteltől
- Azonnali informatikai kérdések órája
-
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
-
Naptár az szerintem nincs, legfeljebb naptár kontroll - amit kitehetsz formra, vagy a munkalapra VBA-val, szükség esetén.De találtam valamit neked (ez valami beépülő modul):
Displaying Calendar Automatically
By default Pop-up Excel Calendar displays an in-cell icon button when you click a date cell. You need to click the in-cell icon button to open the calendar on which you click to select the date value.The "Display calendar automatically" option on the Settings window saves one click by displaying the calendar automatically. If you check this option, the calendar is displayed automatically along with the in-cell icon button whenever you click a date cell.
-
-
válasz
poffsoft
#15972
üzenetére
A set nélküli értékadás azért fut le (ha nincs egzaktul definiálva a változó), mert ha nem sikerül objektumként átadnia, akkor a hívás vissza tudja adni a range értékét is (mint a default Value property értéke - ami ráadásul nem a range címe, hanem a range első elemének a tartalma) és ezt egy későbbi Range hívásban (mint ahogy csináltad is) fel lehet használni. A probléma az , hogy nem biztos, hogy jó (sőt szinte biztos, hogy nem jól felhasználható) értéket ad vissza a Range a default property-n... Azt viszont nem tudja felhasználni a Range függvény, ami ezt a hibát adja vissza...
-
Miért kell Range(bevétel)? A bevétel-nek már magában is Range típusúnak kell legyen...
Hogy definiálod a bevétel változót?
Csináld inkább ezt:
Sheets("Alap").Range("G9").Copy
Dim bevétel as Range
Set bevétel = Sheets("Munka2").Range("E4")
bevétel.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=FalseVagy még egyszerűbben:
Sheets("Alap").Range("G9").Copy
Sheets("Munka2").Range("E4").Select
Selection.PasteSpecial Paste:=xlPasteValuesAmúgy nem árt leellenőrizni, hogy mi az aktív workbook, ha nem az, amire számítasz (nincsenek ilyen Worksheet-ek rajta), azon is simán elhasal - vagy mást csinál, mint amit szeretnél...
-
válasz
Bobrooney
#15628
üzenetére
ÁÁ dehogy - ha függvénmnyel szedem szét (vagy vlookup-ozok), akkor felmegy commited memory 200.000 MB környékére, de így lent marad ~30 MB-on, viszont így is folyamatosan tekeri a procit. Ami érdekes, hogy ha fut másik Office alkalmazás, akkor ugyan 100%-on pörög továbbra az Excel process, de úgy tűnik, mintha a CPU idő 1%-át kapná csak meg gyakorlatilag, a többi valami más folymatban várakozik.
Mintha a VBA hívásoknak lenne valami in-app szinkronizációja az Office Suite-on belül, és minden hívásnál megvárná, míg a többi Office alkalmazás visszaigazolja, hogy továbbmehet. -
Miért van az, hogy ha az Excel mellett nyitva van valami más Office alkalmazás, akkor az Excel makróm belassul? Konkrétan egy ~80.000 soros táblát dolgoztam fel makróval úgy, hogy Range.Copy-val másolok néhány meztőt egyik sheetről egy másikra, és egy mezőt meg feldarabolok Split-tel. Ha fut az Outlook, akkor kb 10000 sor feldolgozása után 100 sor/perc sebességre lassus, ha pedig bezárom az Outlookot, akkor végigszalad az egészen 20-30 mp alatt...

-
válasz
zannor
#15318
üzenetére
Több oszlopot használj az ellenőrzésekre, és beágyazott if-eket vagy or-okat. Ne haragudj, ha ezt most nem csinálom meg neked, igazi jó gyakorlófeladat. Sorvégeket a =right(hivatkozás, karakterszám) = "valami" formulával tudod leellenőrizni, pl:
= OR(lower(right(trim(A64), 2)) = "ev", lower(right(trim(A64), 4)) = "e.v.") -
Az az esemény (Workbook_Open) csak akkor fut le, amikor megnyitod a munkafüzetet:
- vagy kézzel lefuttatod tesztelésnél és akkor biztos azonnal inicializálva lesz
- vagy elmented, bezárod és újranyitod a doksit és akkor lefut az inicializációA 15303 nem jó, mert akkor a Workbook_Open scope-jában jön létre a WSH változó (tehát azon kívül nem látszik). Mindenféleképp a Modul-ban kell látrehozni, hogy mindenhonnan látszon - mert így globális és nem lokális változó lesz.
-
Nem, ez egyszerűen mindig elindítja a formot (függően attól hova teszed).
1) Az On Error csak a kódban lefutáskor bekövetkező hibákra reagál (ráadásul bármilyen hibára, nem csak a 0-val való osztásra).
2) Bár oda ugrasztanád hiba esetén a form.show-ra a kódot az on error-ral, de mivel előtte nincs elágazás/funkcióból kiugrás (vagy bármi más vezérlő szerkezet), így a kód garantáltan ráfut a form.show-ra, ha van hiba, ha nincs... -
Legyegyszerűbb csinálni egy olyan függvényt (Function), amibe beleteszed az egész függvényedet a munkalapon és az vizsgálja az eredményt:
Public Function Zero(eredmeny As Variant) As Variant
If IsError(eredmeny) Then
If (eredmeny = CVErr(xlErrDiv0)) Then
UserForm1.Show
End If
End If
Zero = eredmeny
End Function -
-
válasz
medvezsolt
#15242
üzenetére
A sheet lapjára kell bemásolni:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
'A figyelt oszlop száma
checkedcolumn = 3
For areaindex = 1 To Target.Areas.Count
For columnindex = 1 To Target.Areas(areaindex).Columns.Count
If Target.Areas(areaindex).Columns(columnindex).Column = checkedcolumn Then
For Each cell In Target.Areas(areaindex).Cells
If cell.Value = "x" Then
If (Cells(cell.Row, cell.Column + 1).Value = "") Then Cells(cell.Row, cell.Column + 1).Value = Date
End If
Next
End If
Next
Next
Application.EnableEvents = True
End SubCsak az üres mezőket tölti fel dátummal, a már kitöltötteket nem frissíti le.
mod: most nézem, hogy van rendes Application property az események tiltására, lemódosítottam arra... -
válasz
medvezsolt
#15242
üzenetére
=IF(<cella-x-el>="x",now(),"")
Ha az kellene, hogy azx- beíásakori dátum maradjon ott, azt makróval lehet megcsinálni... De mintha rémlene, hogy ezt már kérdezted (vagy valaki kérdezte) mostanában... -
válasz
MaciLaci68
#15235
üzenetére
Excel (VBA) - Open / Write / Close utasítások - de ahogy olvasom ez is felejtős - ez is helyettesít, meg macskakörmöl, ha valami nem tetszik neki a szövegben

-
válasz
MaciLaci68
#15227
üzenetére
Megpróbáltam most FileFormat:=xlText-tel és nekem nem macskakörmöli...
Pontosabban a te szövegedet kézzel és makróval is macskakörmöli. -
válasz
MaciLaci68
#15223
üzenetére
Mentsd el txt kiterjesztéssel...
Amúgy nekem DOS Text-két mentve SaveAs-sal (menüből) is berakja macskakörömbe. Te pontosan milyen Text módba mented, ahol nem macskakörmöl? -
válasz
pirit28
#15221
üzenetére
Szerintem a legegyszerűbben úgy tudnád megtrükközni, hogyha a napi fájl mindig ugyan azon a néven szerepelne, és az előző napi fájl pedig átneveznéd napi fájlnak:
2012 10. 09.
export aktualis.xls2012 10. 10.
move aktualis.xls backup_2012_10_09.xls
export aktualis.xls2012 10. 11.
move aktualis.xls backup_2012_10_10.xls
export aktualis.xlsígy minden nap csak az összegző fájlt kell frissítened mert a napi fájlnak mindig ugyan az a neve

-
válasz
MaciLaci68
#15217
üzenetére
Ezt használd:
FileFormat:= xlTextPrinter
Esetleg még ezt tedd hozzá (ha local codepage kell, ami a gépen van és nem US):
Local:= True -
Az aláhúzott résznél adod meg mennyinél kell nagyobb (vagy kisebb, vagy bármilyen) legyen.
Sub Macro1()
Sheet1.ChartObjects("Chart 1").Activate
Dim val()
val = ActiveChart.SeriesCollection(1).Values
Dim ix
For ix = 1 To ActiveChart.SeriesCollection(1).Points.Count
If val(ix) >= 60 Then
ActiveChart.SeriesCollection(1).Points(ix).Select
With Selection.Format.Fill
.Solid
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
End With
End If
Next
End Sub -
válasz
Wasquez
#15207
üzenetére
Úgy is megy, de Off 2010-ben (de talán már 2007-ben is) van erre feltételes formázás típus.
Amúgy feltételbe az kell, hogy <cellacím> = MAX(<régió>) - viszont ha több maximum elem is van, mind ki fogja színezni...
Ha kötelezően csak egy (az első) kell akkor lookup kell, az csak egy elemet talál meg, és kell keresni egy olyan mezőt, ami egyedi (vagy csinálni egy számláló mezőt az oszlopok !végére!):
<egyedimező-a-sorban> = vlookup(max(<régió>), <tábla-az-értékoszloptól>, <egyedi-mező-címe->,0) -
Az első if után vagy elseif-nek kell követketten vagy le kellene zárni end if-fel.
Ja és forráskódként illeszd be létszi, hogy látszanak az anotációk is.Ha jól veszem ki az első If és a kijelölt ElseIf között rész mind az első If-hez tartozik.
Próbáld meg esetleg kirakni szubrutinba.
Új hozzászólás Aktív témák
- Hardcore café
- Milyen videókártyát?
- Ingatlanos topic!
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Robotporszívók
- One mobilszolgáltatások
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Kamionok, fuvarozás, logisztika topik
- Peugeot, Citroën topik
- Parfüm topik
- További aktív témák...
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - 15% AKCIÓ
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Humble szökevények 500-2500Ft
- Akcio! Csere- Beszámítás! Xbox Series S Játékkonzol!
- BESZÁMÍTÁS! MSI ThinA15 B7VF-449XHU Gamer notebook - R7 7735HS 16GB DDR5 1TB SSD nVidia RTX 4060 8GB
- GYÖNYÖRŰ iPhone X 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3586
- Telefon felvásárlás!! Samsung Galaxy A20e/Samsung Galaxy A40/Samsung Galaxy A04s/Samsung Galaxy A03s
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RX 9060XT 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest





Fferi50

