- sziku69: Fűzzük össze a szavakat :)
- sellerbuyer: Egy teljesen új platformot kapunk! Új korszak kezdődik?
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- sellerbuyer: Milyen laptopot vegyek? Segítek: semmilyet!
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- intecpc: Hogyan készítsük fel a számítógépünket a Windows 11-re? – Lépésről lépésre
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- aquark: Jó platformer játékokat keresek!
- Geri Bátyó: Agglegénykonyha 5 – Edények és konyhai eszközök
Új hozzászólás Aktív témák
-
Zalanius
tag
Szerintem elég egy If, ha a pénteket vesszük bázisnak, és jól értelmeztem az eddigieket, azaz február 9-15. között kell március 1-jét kihozni. Ha az az egy If nincs, akkor is csak péntekenként ugrana +1 hetet. Excel-VBA-ban valahogy így:
Dim fri%, add%, d1 As Date, d2 As Date
fri = Weekday(Now, vbFriday)
add = 14
If fri <> 1 Then add = add + 8 - fri
d1 = Now
d2 = DateAdd("d", add, d1)
MsgBox d2 -
Zalanius
tag
1-2 ötlet:
1. mintha nem volna a config hozzárendelve cdoMail objectedhez. Valami ilyesmit hiányolok:Set cdoMail.Configuration = cdoConf
Amúgy és a továbblépéshez:
- attachment nélkül megy?
- próbáld ki a .Update beillesztését is még a config blokkjának a végén
- ugye próba esetén már nem maradnak kommentben az autentikációs sorokVégül pedig: mit mond az Err? Lehetne mondjuk egy Goto címkés blokk az onerrornál, amiben érdemes megnézni, hogy mi az Err.Description
-
Zalanius
tag
válasz
Rellind #3073 üzenetére
1000+1 ok lehet, ennyi infóból nem lehet megmondani, hol csúszik el a dolog szemantikailag. Azokból, hogy "form" és "feladat", arra tippelnék, hogy valami gombklikk vagy hasonló eseményre várnád, hogy egy adott kódrészlet meginduljon, de innentől bizonytalan, hogy mi is történik. Breakpointokkal, lépésenkénti debuggal kellene kezdeni.
-
Zalanius
tag
Ehhez nem kell makró, elég egy ^p Replace. Szemléletesebben itt.
-
Zalanius
tag
Excelben, VBA-val akarod ezt megoldani? Vagy valamilyen dotnetes nyelven inkább?
Ha előbbi, akkor nem igazán látom, mi akasztott meg, ha már a feladat lényege elkészült. A 2-es ponthoz segíthet például ez:
Option Base 1
Function GetFileNames(directoryPath As String) As String()
Dim namepathlist() As String
Dim fshelper As Object
Dim targetdir As Object
Dim filecnt%, i%
On Error Resume Next
Set fshelper = CreateObject("Scripting.FileSystemObject")
Set targetdir = fshelper.GetFolder(directoryPath)
filecnt = targetdir.Files.Count
If filecnt > 0 Then
ReDim namepathlist(filecnt, 2)
i = 1
For Each f In targetdir.Files
namepathlist(i, 1) = f.Name
namepathlist(i, 2) = f.path
i = i + 1
Next
End If
On Error GoTo 0
GetFileNames = namepathlist
End FunctionPersze nem biztos, hogy érdemes külön függvényt írni csak ezért, és akár a Dir() függvényre is rá lehet nézni, aztán amelyik egyszerűbb, azzal menni tovább.
Ami meg a 3. pontot illeti, ezt nem így csinálnám, de ennek csak praktikus okai vannak. Mielőtt az egész 50-es iteráció elindul, azelőtt kellene beolvasni változókba az összes előírt fájlnevet és jelszót, ezután jöhet a könyvtár aktuális tartalma, lásd fent, és végül egy olyan iteráció, ami az aktuális listán megy végig, és ha talál az adott példányhoz jelszót, akkor elvégzi a már kész lépéseket.
-
Zalanius
tag
válasz
Bobrooney #3050 üzenetére
Ez félig bugnak tűnik, de található rá magyarázat. A szürke popup kivételével sikerült is reprodukálnom. A cellához tartozó link nem egy egyedi string érték, hanem egy collection. Két cella egyesítésekor az első cella linkje marad csak meg, a többié elveszik, eddig rendben. Ha ezután módosítod a grafikus nézetben a linket, akkor a háttérben egy .Add() függvényt használhat az Excel. Ez csak tipp, de eléggé gyanús. Mi történik ezután: az egyesített cella első részcellájában KETTŐ link lesz, az (1) indexen a régi, a (2) indexen az új. A többi részcellában eddig semmi nem volt, ezért oda az (1) indexen az új kerül.
Tegyük fel, hogy az A oszlopban vannak a linkes cellák, némelyik egyesített. Ekkor egy teljeskörű teszthez például bevethető ez, most 4 sort feltételezve:
Dim rowcount%
rowcount = 4
For i = 1 To rowcount
If Range("A1").Offset(i - 1, 0).Hyperlinks.Count > 0 Then
For j = 1 To Range("A1").Offset(i - 1, 0).Hyperlinks.Count
MsgBox Range("A1").Offset(i - 1, 0).Hyperlinks(j).Address, vbOKOnly, _
Range("A1").Offset(i - 1, 0).AddressLocal & ", index: " & j & _
", full count: " & Range("A1").Offset(i - 1, 0).Hyperlinks.Count
Next
End If
NextHa a problémádat jól leírja a fenti, és VBA-ban kell feldolgoznod a linkeket, akkor a Count tulajdonságot kell indexként használni, és így mindig a legutoljára beállított linket olvassa a kód.
Persze van egy olyan olvasata is ennek az enyhén bugos helyzetnek, hogy formailag szép dolog az egyesített cella, de amint a tábla célja nem a külsőségekről szól, hanem valamilyen automatizált feldolgozásról, ott részemről csak felesleges nyűg.
-
Zalanius
tag
válasz
Bobrooney #3045 üzenetére
Ez elég furcsa, efféle url encodingot automatikusan nem kellene kapnod, kipróbáltam saját fájlban is, simán benne hagyta a szóközöket. Van egyébként olyan beépített függvény Encodeurl néven, ami ilyen átalakításokat csinál, de a fordított irányról nem tudok (2013-assal bezárólag). Kerülő úton lehet megpróbálni, mondjuk cserékkel, lásd például itt.
-
Zalanius
tag
válasz
Bobrooney #3042 üzenetére
Kipróbáltam két oszloppal, 10 ezer sorban, de nehezítésképpen úgy, hogy az első 5000-ben csak X volt mindenhol, és az egyik gyümölcsnél később is csak X volt. Nem is igazán mérhető a futásidő, fél másodpercnél is kevesebb. Tehát vagy rengeteg oszlopod lehet, vagy sok százezer sor, vagy még egyéb tényezők. De a 10 perc mindenképpen túlzás.
Tudom h nem kértél konkrétumot, de csak bemásolok ide egy rövidke scriptet, egyszerű megközelítésben, valami támpontot adhat azért.
Option Base 1
Sub t()
Dim gimilc()
Dim vannemX()
Dim n%, i%
Dim g As String
n = 1
ReDim Preserve gimilc(n)
ReDim Preserve vannemX(n)
gimilc(1) = Cells(2, 1).Value
vannemX(1) = False
If Cells(2, 2).Value <> "X" Then
vannemX(1) = True
End If
For i = 3 To 10000
g = Cells(i, 1).Value
Dim gindex%
gindex = -1
For j = 1 To n
If gimilc(j) = g Then
gindex = j
Exit For
End If
Next
If gindex = -1 Then
n = n + 1
ReDim Preserve gimilc(n)
ReDim Preserve vannemX(n)
gimilc(n) = g
vannemX(n) = False
If Cells(i, 2).Value <> "X" Then vannemX(n) = True
Else
If vannemX(gindex) = False Then
If Cells(i, 2).Value <> "X" Then vannemX(gindex) = True
End If
End If
Next
End Sub -
Zalanius
tag
Valami ilyesmire lesz akkor szükség. Ez most C#, a szélesség, fájlnév stb. átírandó, de a lényeg ugyanaz.
wp.Range.Text = "line1";
wp.Range.Paragraphs.Add();
Shape shape = wd.Shapes.AddShape(1, 0, 0, 200, 100);
shape.Fill.UserPicture(@"C:\kep.png");
InlineShape inlineShape = shape.ConvertToInlineShape();
inlineShape.Range.Cut();
wp.Range.Paste();
wp.Range.Paragraphs.Add();
wp = wd.Content.Paragraphs.Add();
wp.Range.Text = "Line2";Lehet még variálni ezeket a range meg paragraph dolgokat, hozzáfűzéssel új object helyett stb. biztos van sokkal elegánsabb út is, ha valaki rászánja az időt. Ami ezeknél fontosabb, hogy ha ezután elmentjük a doksit, egy rakás referencia marad még lógva, azokat a COM dolgokat is illik eltakarítani. Tippek bővebben itt.
-
Zalanius
tag
Az első tipp látatlanban is, hogy ugyanannak a range objectnek a szövegét íratod át a második alkalommal is. Ha a beírandó részek különállóak, akkor például meg lehetne ismételni a Paragrahps.Add() hívást.
wp = wd.Content.Paragraphs.Add
wp.Range.Text = "This text will be d"
...
wp = wd.Content.Paragraphs.Add
wp.Range.Text = "Foo" & Chr(10) & Chr(11) -
Zalanius
tag
Nem tudom teljesen reprodukálni az alaphelyzetet, de van itt egy egyszerű megoldás. Új standard modulba beírtam ezt:
Sub FormatZoleehDates()
For Each c In ActiveSheet.UsedRange.Cells
c.NumberFormat = "m/d/yyyy"
Next
End SubNyilván a numberformatot lehet még alakítani. Kipróbálás: beírtam pár dátumot egy tartományba, átkapcsoltam custom -> general beállításra a formatot, utána kijelöltem, és ráküldtem a fentit.
Új hozzászólás Aktív témák
Hirdetés
- sziku69: Fűzzük össze a szavakat :)
- Windows 11
- Apple HomeKit smart home / okos otthon
- Eredeti játékok OFF topik
- pfSense - Avagy az okosított házirouter
- A Temu diktál Magyarországon, a hazai e-kereskedők fulladoznak
- Android szakmai topik
- Otthoni hálózat és internet megosztás
- Melyik tápegységet vegyem?
- Háztartási gépek
- További aktív témák...
- OMEN 17-ck2778ng 17.3" QHD IPS i7-13700HX RTX 4080 32GB 1TB NVMe gar
- iPhone 15 Pro Max 256 GB fekete USA AppleCare+
- Samsung Galaxy S24 Ultra 256GB, Kártyafüggetlen, 1 Év Garanciával
- Eladó Hibás Ayaneo Next Lite 512GB-os kézikonzol!
- P1 Gen3 15.6" FHD IPS i7-10850H Quadro T2000 32GB 1TB NVMe ujjlolv IR kam gar
- Surface Laptop 7 Business edition - Intel Core ultra 5 236V energiahatékonyabb az intelnél! -olvass
- Samsung Galaxy A32 128GB Kártyafüggetlen 1 év Garanciával
- AKCIÓ! Asus ROG STRIX Z490-G Gaming WiFi alaplap garanciával hibátlan működéssel
- AZONNALI SZÁLLÍTÁS Eredeti Microsoft Office 2019 Professional Plus
- Alkatrészt cserélnél vagy bővítenél? Nálunk van, ami kell! Enterprise alkatrészek ITT
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest