- Bambanő háza tája
- Asszociációs játék. :)
- Pendrive-ról bootolható "belakott" debian linux live Ventoy pendrive-on
- Szólánc.
- Fűzzük össze a szavakat :)
- Miért ne vegyél gagyi kínai LED izzósort...
- Az én érdekes, öszvér videokártyám...….
- Samsung LE40A536T1F LCD TV képhiba
- Digitális Állampolgárság Program
- leslieke
-
LOGOUT.hu
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 = True
Itt 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[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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
[ Szerkesztve ]
-
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.
[ Szerkesztve ]
-
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...
[ Szerkesztve ]
-
Pakliman
tag
válasz JagdPanther #36601 üzenetére
Az
NRow = 4
helyett 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)[ Szerkesztve ]
-
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![ Szerkesztve ]
-
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.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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á.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
veterán
válasz JagdPanther #31684 üzenetére
Bocsi az elírásért!
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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)+1Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap
- Játékkulcsok a legjobb áron: Steam
- Karácsonyi akció: ESET termékek hivatalos forgalmazója / NOD32 / Internet Security / stb.
- Indiana Jones and the Great Circle - Digital Premium Edition - beváltás: 2025.1.30 - RTX 40XX
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest