Hirdetés
- Poco M7 - lépésben Siófok felé
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Telekom mobilszolgáltatások
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Milyen hagyományos (nem okos-) telefont vegyek?
- Amazfit Active 2 NFC - jó kör
- Yettel topik
- Google Pixel 7a - venni vagy nem venni?
- Fotók, videók mobillal
-
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
-
Lasersailing
senior tag
válasz
JagdPanther
#40957
üzenetére
Szia,
Én (amikor már 100%-ban biztos vagyok abban, hogy a makró megbízhatóan működik), akkor az alábbiak segítségével szoktam felgyorsítani a makró futtatását:
Excel képletek frissítésének kikapcsolása:Application.Calculation = xlManual
majd később visszakapcsolása:Application.Calculation = xlCalculationAutomatic(Értelemszerűen amíg ki van kapcsolva, addig nem kalkulálja újra a képleteket)
Ill. ha sokáig dolgozik magában, azaz mindegy a képernyő tartalma:
Application.ScreenUpdating = False
Majd visszakapcsolni:Application.ScreenUpdating = TrueItt persze azért kell figyelni, mert ha közben megáll a makró, akkor kijelzőn nem fogsz látni semmit, szóval ezt csak akkor, ha nagyon sokáig fut a makró (nagyon sokat gyorsít rajta) és már tutira nem fog lefagyni...
-
Fferi50
Topikgazda
válasz
JagdPanther
#40957
üzenetére
Szia!
Mivel nincsenek számítások benne, igazából majdnem mindegy hány sor van... persze minél több a sor, annál tovább tart a beszúrás és a törlés, de nem észrevehető pár százas nagyságrendben szerintem.
Viszont egyszerűsíthető a dolog, ha az 5. sortól kezdve táblázattá alakítod az egészet (kijelölöd, beszúrás - táblázat fejléccel), mivel a táblázatba beszúrás automatikusan felveszi a táblázat szabályait (formázás, validáció), tehát azzal nem kell foglalkozni. Elég csak az új értékeket beírni.
Gyorsít még a dolgon, ha a Select utasításokat elhagyod, a cellákra a címükkel közvetlenül tudsz hivatkozni.
Pl.Sheets("Bevitel").Range("H6").Value = Date(igen, a makrórögzítő a selectet is rögzíti meg a sorgördítést is... ezeket szépen ki kell gyomlálni.)
Üdv.
-
Delila_1
veterán
válasz
JagdPanther
#40957
üzenetére
Nem lassít majd a sok sor, mert mindig a 6. sorba viszed be az új adatokat.
Azért egy kicsit egyszerűsítettem a makrókon.Sub Ma()
Sheets("Bevitel").Select
Rows(6).EntireRow.Insert Shift:=xlDown
Range("B6") = Date
Range("E6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Adat!$F$2:$F$8"
Range("F6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Adat!$L$2:$L$3"
Range("C7:I7").Copy
Range("C6:I6").PasteSpecial xlPasteFormats
Range("J7").Copy
Range("J6").PasteSpecial Paste:=xlPasteAll
Range("C6").Select
End SubSub Megse()
Rows(6).Delete Shift:=xlUp
End SubSub Hibakiadva()
Cells(6, "H") = Date
End SubSub Hibaelvegezve()
Cells(6, "I") = Date
End Sub -
Pakliman
tag
válasz
JagdPanther
#40873
üzenetére
A 6 helyett:
For row_number = 2 To Worksheets("Lista1").Cells(Worksheets("Lista1").Cells.Rows.Count, 1).End(xlUp).Row -
Fferi50
Topikgazda
válasz
JagdPanther
#40870
üzenetére
Szia!
Ahhoz, hogy tudd használni az Outlook változóit a makróban, a Referenciák közé fel kell venni az Outlook referencia könyvtárát - pl. Microsoft Outlook 16.0 Object Library - a Tools - References menüpontban.
Utána deklarálhatod az olApp változót mint Outlook.Application.
Egyébként csak Object -ként deklarálva működik.
(Ez utóbbi esetben viszont nem hozza fel automatikusan az Outlook objektumait.)
A referenciát makróból is hozzá lehet adni a projekthez, mielőtt elindítanád a meghívást.Üdv.
-
Pakliman
tag
válasz
JagdPanther
#40870
üzenetére
Szia!
Ennek így működnie kell:
Public Sub SendEmail()
Dim olApp As Object
Dim olMail As Object
Dim row_number As Long
Set olApp = CreateObject("Outlook.Application")
On Error Resume Next
For row_number = 2 To 6
Set olMail = olApp.CreateItem(0)
With olMail
.to = Worksheets("Lista1").Cells(row_number, 1)
.Subject = Worksheets("Lista1").Cells(row_number, 2)
.Body = Worksheets("Lista1").Cells(row_number, 3)
.send
End With
Next row_number
On Error GoTo 0
Set olMail = Nothing
Set olApp = Nothing
End SubJavítottam...
-
Pakliman
tag
válasz
JagdPanther
#36601
üzenetére
Az
NRow = 4helyett meg kellene határoznod a jelenlegi utolsó sort:Pl.:
NRow = SummarySheet.Cells.Find(What:="*", _
After:=SummarySheet.Cells.Range("A1"), _
SearchDirection:=xlPrevious, _
LookIn:=xlValues, _
SearchOrder:=xlByRows).RowA másolandónál:
Meghatározod a másolandó munkalap utolsó sorát, aztán:WorkBk.Worksheets(1).Range("A6:V" & LastRow).Copy(Biztos, hogy "A6"?)SummarySheet.Cells(NRow + 1, 1).PasteSpecial Paste:=xlPasteValues(ha csak az érték kell) -
Pakliman
tag
válasz
JagdPanther
#36601
üzenetére
Közben átnéztem a kódodat, az alábbi már tárgytalan...

[Ebben] a hozzászólásban van az utolsó használt sor ill. oszlop meghatározására használt makróm, próbáld ki.
NEM azonos a "SpecialCells()" metódussal! -
Fferi50
Topikgazda
válasz
JagdPanther
#35828
üzenetére
Szia!
Ha csak a minimum/maximum érdekel, akkor használd a Solver bővítményt.
Ha magára a sorozatra is kíváncsi vagy:
Trendet, extrapolálást tud az Excel a Solver nélkül is mutatni, de ahhoz kell az alap sorozat, amit képlet alapján számíthatsz. Ehhez manuálisan tudod létrehozni az adatsort, pl.
Első sorba beírod a változó adataidat a kívánt léptékkel.
A második sorba beírod képletként =az eredménycella. Ezt végig is húzhatod a soron.
Ezután a változó értékeket szép sorban behelyettesíted a táblázatodba. A második sor adott cellájában megkapott eredményt átalakítod értékké, hogy ne változzon, amikor a következő értéket adod a változónak. Ezt ismétled, amíg végig nem érsz a tartományon.
Ha elég egyértelmű az összefüggés, akkor elég lehet az első 8-10 tételt így kiszámolnod.
Ezután ezt ráteszed egy diagramra, ahol már tudsz extrapolálni.Üdv.
-
Delila_1
veterán
válasz
JagdPanther
#35625
üzenetére
Örülök, hogy sikerült, szívesen.

-
Delila_1
veterán
válasz
JagdPanther
#35622
üzenetére
Töröld a laphoz rendelt makrót, a modulban lévőt írd át.
Sub Masol()
Dim sor As Long
sor = Selection.Row
With Sheets("Számla")
.Range("B12") = Cells(sor, "E")
.Range("B28") = Cells(sor, "F")
.Range("H12") = Cells(sor, "J")
.Range("D10") = Cells(sor, "N")
End With
End SubA füzetben a Makrók menüben (Alt + F8), a Masol makrót kiválasztva az Egyebek almenüben bill. kombinációt rendelhetsz hozzá.
-
Delila_1
veterán
válasz
JagdPanther
#35619
üzenetére
Az Ebay laphoz rendeltem egy makrót.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Masol Target.Row
Cancel = True
End SubModulba jön a másik.
Sub Masol(sor)
With Sheets("Számla")
.Range("B12") = Cells(sor, "E")
.Range("B28") = Cells(sor, "F")
.Range("H12") = Cells(sor, "J")
.Range("D10") = Cells(sor, "N")
End With
End SubAz Ebay lapon egy sor valamelyik celláján jobb klikk, indul az eseményvezérelt makró, majd indítja a másolást.
Rendelheted más eseményhez is. -
Delila_1
veterán
válasz
JagdPanther
#31684
üzenetére
Bocsi az elírásért!
-
Fferi50
Topikgazda
válasz
JagdPanther
#31680
üzenetére
Szia!
Private SUB Sortores()
A SUB kulcsszó hiányzik a makró elejéről.
Üdv.
-
Delila_1
veterán
válasz
JagdPanther
#31680
üzenetére
Töröld ki az első makrót.
-
Delila_1
veterán
válasz
JagdPanther
#31678
üzenetére
Private Sortores()
Cells(Selection.Row, 4) = Cells(Selection.Row, 4) & Chr(10)
Cells(Selection.Row, 5) = Cells(Selection.Row, 5) & Chr(10)
Cells(Selection.Row, 10) = Cells(Selection.Row, 10) & Chr(10)
End SubBeviszed ezt egy modulba (lásd Téma összefoglaló).
A füzetben Alt+F8-ra megjelennek a makróid. Kiválasztod a Sortores nevűt, Egyebek gomb. Ott megadhatod a bill. kombinációt. -
edari
őstag
válasz
JagdPanther
#31675
üzenetére
Ja, az kimaradt hogy makró kéne rá. Bocsi.
-
edari
őstag
válasz
JagdPanther
#31673
üzenetére
Kattints bele vagy állj rá a cellára, nyomj egy f2-t, menj a sor végére, és ott nyomj alt+entert.
-
Delila_1
veterán
válasz
JagdPanther
#12098
üzenetére
Szívesen.

-
Delila_1
veterán
válasz
JagdPanther
#12096
üzenetére
D1-be írtam a keresendő értéket, a számok az A oszlopban vannak.
A képlet
=HOL.VAN(D1;A:A;1)+1 -
perfag
aktív tag
válasz
JagdPanther
#12094
üzenetére
Nem túl bonyolult, én mégsem értem. 50 érték az többes szám, "szeretném kiírni egy külön cellába annak a cellának a sorszámát, aminek az értéke nagyobb mint egy megadott érték." ez meg itt egyes szám. Most akkor mi van? (Mi lenne, szőke vagyok
)
Új hozzászólás Aktív témák
- Játékkulcsok ! : PC Steam, EA App, Ubisoft, Windows és egyéb játékok : (12.13.)
- MEGA AKCIÓ! - Jogtiszta Windows - Office & Vírusirtó licencek- Azonnal - Számlával - Garanciával
- MS SQL Server 2016, 2017, 2019
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- iPhone 13 128GB 92% (1év Garancia)
- GYÖNYÖRŰ iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS4076
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9700X 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 13 Mini 128GB Pink-1 ÉV GARANCIA -Kártyafüggetlen, MS3823, 100% Akkumulátor
- GYÖNYÖRŰ iPhone 13 Pro 256GB Sierra Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3360
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: ATW Internet Kft.
Város: Budapest


)
Fferi50

