Hirdetés
- gban: Ingyen kellene, de tegnapra
- talmida: Változások 2. rész
- GoodSpeed: Mutasd magad topic!
- MasterDeeJay: RAM gondolatok: Mennyi a minimum? DDR3 is jó?
- aquark: Zsebszámológépek
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- GoodSpeed: Daikin FTXF35E / RXF35F Sensira 3,3 kW Inverteres klíma - a Sztori
-
LOGOUT
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
-
TheSaint
aktív tag
válasz
Fferi50
#52503
üzenetére
Ezek stimmelnek.
Így néz ki a teljes kód, egy adatbázislekérés van a táblázatban. Még sose futottam bele ilyen megmagyarázhatatlan hibába:Private Sub Workbook_Open()' Adatkapcsolatok frissítéseThisWorkbook.RefreshAll' Azonnal elindítjuk az időzítőt, amely a háttérben futStartTimerEnd SubSub StartTimer()' Időzítő beállítása 15 másodpercreApplication.OnTime Now + TimeValue("00:00:15"), "ThisWorkbook.ProcessAfterDelay"End SubSub ProcessAfterDelay()' Ellenőrizze, hogy a munkafüzet meg van-e nyitvaIf ThisWorkbook.Name = "e.xlsm" Then' Változók deklarálásaDim ws1 As Worksheet ' "Munka1" lapDim ws3 As Worksheet ' "Munka3" lapDim filterRange As RangeDim filterValues() As VariantDim filterValue As VariantDim bodyText As StringDim emailTable As ObjectDim CDO_Mail As ObjectDim CDO_Config As Object' CDO konfiguráció beállításaSet CDO_Mail = CreateObject("CDO.Message")Set CDO_Config = CreateObject("CDO.Configuration")CDO_Config.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2CDO_Config.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "192.168.."CDO_Config.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25CDO_Config.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1CDO_Config.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = ""CDO_Config.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = ""CDO_Config.Fields.UpdateSet CDO_Mail.Configuration = CDO_Config' Munkalapok beállításaSet ws1 = ThisWorkbook.Sheets("Munka1")Set ws3 = ThisWorkbook.Sheets("Munka3")ws1.AutoFilterMode = False' Szűrési tartomány beállítása a "Munka1" lapon (A-M oszlop)Set filterRange = ws1.Range("A3:M" & ws1.Cells(ws1.Rows.Count, "K").End(xlUp).Row)' Kiválasztott nevek definiálásafilterValues = Array("X", "Y")' E-mail címek táblázatának inicializálása a "Munka3" laponSet emailTable = CreateEmailTable(ws3)' Minden egyedi értékhez készítünk egy külön e-mailtFor Each filterValue In filterValues' Szűrés a K oszlop alapján a "Munka1" laponfilterRange.AutoFilter Field:=11, Criteria1:=filterValue' Csak folytatjuk, ha vannak szűrt sorokIf Application.WorksheetFunction.Subtotal(103, filterRange.Columns(1)) > 1 Then' E-mail tartalma összeállításabodyText = "" & filterValue & " m:" & vbCrLf & vbCrLfbodyText = bodyText & "" & vbCrLf & vbCrLf' HTML formátumban konvertált táblázat hozzáadása az üzenethezbodyText = bodyText & RangetoHTML(filterRange.SpecialCells(xlCellTypeVisible))' E-mail cím meghatározása a filterValue alapján a "Munka3" laponDim emailCim As StringemailCim = GetEmailFromTable(emailTable, filterValue)' Csak folytatjuk, ha sikerült e-mail címet meghatározniIf emailCim <> "" Then' E-mail küldése CDO objektummalWith CDO_Mail.Subject = "D".From = "@.hu".To = emailCim.cc = "@.hu".HTMLBody = bodyText ' HTML formátumú tartalom hozzáadása az üzenethez.SendEnd WithEnd IfEnd If' Szűrés törlésews1.AutoFilterMode = FalseNext filterValue' CDO objektumok bezárásaSet CDO_Mail = NothingSet CDO_Config = Nothing' Időzítő újraindítása 1 percreApplication.OnTime Now + TimeValue("00:01:00"), "ThisWorkbook.SaveAndCloseWorkbook"End IfEnd SubSub SaveAndCloseWorkbook()' Táblázat mentése és bezárásaThisWorkbook.SaveThisWorkbook.CloseEnd SubFunction RangetoHTML(rng As Range)' Függvény a táblázat HTML formátumban történő konvertálásáhozDim fso As ObjectDim ts As ObjectDim TempFile As StringDim TempWB As WorkbookTempFile = Environ$("temp") & "\" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"' Táblázat exportálása HTML fájlbarng.CopySet TempWB = Workbooks.Add(1)With TempWB.Sheets(1).Cells(1).PasteSpecial Paste:=8.Cells(1).PasteSpecial xlPasteValues, , False, False.Cells(1).PasteSpecial xlPasteFormats, , False, False.Cells(1).SelectApplication.CutCopyMode = FalseOn Error Resume Next.DrawingObjects.Visible = True.DrawingObjects.DeleteOn Error GoTo 0End With' HTML fájlba mentésWith TempWB.PublishObjects.Add( _SourceType:=xlSourceRange, _Filename:=TempFile, _Sheet:=TempWB.Sheets(1).Name, _Source:=TempWB.Sheets(1).UsedRange.Address, _HtmlType:=xlHtmlStatic).Publish (True)End With' HTML tartalom olvasásaSet fso = CreateObject("Scripting.FileSystemObject")Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)RangetoHTML = ts.ReadAllts.CloseRangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _"align=left x:publishsource=")' Táblázat törlése és ideiglenes munkafüzet bezárásaTempWB.Close SaveChanges:=FalseKill TempFileSet ts = NothingSet fso = NothingSet TempWB = NothingEnd FunctionFunction CreateEmailTable(ws As Worksheet) As Object' E-mail címek táblázatának létrehozása és feltöltéseDim emailTable As ObjectSet emailTable = CreateObject("Scripting.Dictionary")Dim i As LongDim lastRow As LonglastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).RowFor i = 1 To lastRowDim nev As StringDim email As Stringnev = ws.Cells(i, 2).Valueemail = ws.Cells(i, 3).ValueemailTable(nev) = emailNext iSet CreateEmailTable = emailTableEnd FunctionFunction GetEmailFromTable(emailTable As Object, key As Variant) As String' E-mail cím lekérdezése a táblázatból a megadott kulcs alapjánOn Error Resume NextGetEmailFromTable = emailTable(key)On Error GoTo 0End Function
Új hozzászólás Aktív témák
- gban: Ingyen kellene, de tegnapra
- Milyen billentyűzetet vegyek?
- Gumi és felni topik
- Sweet.tv - internetes TV
- Még a saját szövetségeseivel szemben is fegyverként használná az AI-t az USA
- Milyen belső merevlemezt vegyek?
- Home server / házi szerver építése
- Pedzegeti az új Xbox irányát a Microsoft
- Projektor topic
- Automata kávégépek
- További aktív témák...
- PC Game Pass előfizetés
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - 15% AKCIÓ
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Game Pass Ultimate előfizetések 1 - 36 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN! AKCIÓ!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 32/64GB RAM RTX 5060 Ti 8GB GAMER PC termékbeszámítással
- AKCIÓ! szinte RAM áron adom! MSI Vector GP78 HX13V i7-13700HX RTX4080 32GB DDR5 1TB QHD240 1 év gari
- Lenovo T480S i5 8350U, 16GB RAM, 256GB SSD, jó akku, számla, 6 hó gar
- Xiaomi Redmi 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy S24 Ultra 12/256 GB Titanium Gray 6 hónap Garancia Beszámítás Házhozszállítás
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
