- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- iPhone topik
- Samsung Galaxy S25 - végre van kicsi!
- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
- Huawei Mate 10 Pro - mestersége az intelligencia
- Google Pixel topik
- Okosóra és okoskiegészítő topik
- Szuperkijelzővel készül a Huawei Mate 80 RS
- Telekom mobilszolgáltatások
- Samsung Galaxy Z Fold4 - egyre megy, honnan nézed
-
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
-
Mutt
senior tag
Szia,
...munkafüzet online térben közös használattal lesz feltöltve...
ez a részt mit jelent? Sharepoint/OneDrive vagy a shared folder?A weben (Sharepoint/OneDrive) a VBA nem műkődik, helyette van az Office Script (csak olyan munkahelyi licensz esetén ahol ezt az admin engedélyezte). Office Scriptben nincs lehetőség aktuális felhasználó beazonosítására, amit ki lehet próbálni hogy felugró ablakban bekérni a felhasználót és azzal tovább menni.
Ha shared folderben van a fájl, akkor műkődik a VBA, de nagy az esély ilyenkor az adatvesztésre/hibás fájlra.
Alternatív lehetőségek:
1) Esetleg amit lehetne tenni, hogy mindenkinek külön fájlja van és Power Query-vel egyesíteni lehet őket.
2) Microsoft Forms használata (ha van licensz).
3) Harmadik opció ha mindegyik felhasználó tud emailt küldeni, akkor küldhetnek egy emailt (pl. elég ha a tárgyba beleteszik honnan dolgoznak, a többi jön a feladóból és email dátumából). Ezt lehet Power Query-vel vagy azonnal Power Automate-el összesíteni egy fájlba (utóbbi megint licensztől függ).üdv
-
Fferi50
Topikgazda
Szia!
Elviekben:
Az Application.Username visszaadja annak a felhasználónak a Windows nevét, aki éppen használja a munkafüzetet. Az első sorban levő neveket ehhez kell hasonlítani úgy, hogy a cella értékéből elhagyod az utolsó 6 karaktert. Így megkapod azt az oszlopot, amit felszabadíthatsz.
Alapesetben a munkalapnak zároltnak kell lennie, hogy a korlátozások érvényesülhessenek. Viszont a zárolást közös használat esetén úgy emlékszem nem lehet feloldani csak kizárólagos megnyitással.
Úgy gondolom mégis inkább a szerkeszthető terület megadása lesz a megoldás, amit előre definiálhatsz és hozzárendelhetsz a Windows userhez. Ezt utána az Excel maga ellenőrzi, a munkalap azon területeit, amelyeket szerkeszteni lehet, a hozzárendelésnél fel kell szabadítani, majd az egész munkalapot zárolni.
Üdv. -
Mutt
senior tag
Szia,
Neked kell sorba rendezni a dátumokat, erre van több megoldás is. A QuickSort elég gyors nagyobb adatsoron is.
Én még annyit kavartam, hogy ha előfordulnának ismétlődő szabad dátumok, akkor azt egy collection-el előbb kiszűrtem.
Private Sub FillDates2()
Dim ws As Worksheet
Dim cell As Range
Dim greenColor As Long
greenColor = RGB(0, 204, 102)
Set ws = ThisWorkbook.Sheets("2025")
Dim datumokColl As New Collection 'collection esetén csak egyedi értékek maradnak meg
Dim datumokArr() 'majd ebbe a tömbbe másoljuk át a kapott értékeket
Dim c As Long
On Error Resume Next 'collection leáll ha duplikáció van, így átugorjuk ezt
For Each cell In ws.UsedRange
If cell.Interior.Color = greenColor And IsDate(cell.Value) Then
datumokColl.Add cell.Value, CStr(cell.Value)
End If
Next cell
On Error GoTo 0
'ha van szabad dátum akkor lehet tovább menni
If datumokColl.Count > 0 Then
'a szabad dátumokat egy tömbbe kell másolni, létrehozzuk a megfelelõ méretû tömböt
ReDim datumokArr(1 To datumokColl.Count)
'átmásoljuk a collection tartalmát a tömbbe
For c = 1 To datumokColl.Count
datumokArr(c) = datumokColl(c)
Next c
'növekvõ sorba rendezzük a dátumokat
Call QuickSort(datumokArr, 1, datumokColl.Count)
'comboxhoz adjuk a dátumokat
For c = 1 To UBound(datumokArr)
Me.ErkezesiDatum.AddItem Format(datumokArr(c), "yyyy.mm.dd")
Me.TavozasiDatum.AddItem Format(datumokArr(c), "yyyy.mm.dd")
Next c
End If
End Sub
'https://stackoverflow.com/questions/152319/vba-array-sort-function
Public Sub QuickSort(vArray As Variant, inLow As Long, inHi As Long)
Dim pivot As Variant
Dim tmpSwap As Variant
Dim tmpLow As Long
Dim tmpHi As Long
tmpLow = inLow
tmpHi = inHi
pivot = vArray((inLow + inHi) \ 2)
While (tmpLow <= tmpHi)
While (vArray(tmpLow) < pivot And tmpLow < inHi)
tmpLow = tmpLow + 1
Wend
While (pivot < vArray(tmpHi) And tmpHi > inLow)
tmpHi = tmpHi - 1
Wend
If (tmpLow <= tmpHi) Then
tmpSwap = vArray(tmpLow)
vArray(tmpLow) = vArray(tmpHi)
vArray(tmpHi) = tmpSwap
tmpLow = tmpLow + 1
tmpHi = tmpHi - 1
End If
Wend
If (inLow < tmpHi) Then QuickSort vArray, inLow, tmpHi
If (tmpLow < inHi) Then QuickSort vArray, tmpLow, inHi
End Subüdv
Új hozzászólás Aktív témák
Hirdetés
- Filmgyűjtés
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Autós topik
- Fujifilm X
- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- Fizetős szoftverek ingyen vagy kedvezményesen
- Cyberpunk 2077
- Autós topik látogatók beszélgetős, offolós topikja
- Anime filmek és sorozatok
- Milyen billentyűzetet vegyek?
- További aktív témák...
- Assassin's Creed Shadows Collector's Edition PC
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most kedvező áron!
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- 27%-OS ÁFÁS SZÁMLA I Jogtiszta Microsoft digitális és fizikai termékek I DIGITALKEYZ.COM
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- HIBÁTLAN iPhone 13 Pro 256GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3020, 91% Akkumulátor
- Azonnali készpénzes Microsoft XBOX Series S és Series X felvásárlás személyesen/csomagküldéssel
- GYÖNYÖRŰ iPhone 13 mini 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3043, 94% Akkumulátor
- Apple Air Pad 5.generácio / 32GB / Wi-fi / 12Hó garancia
- Apple iPhone 14 Plus 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: FOTC
Város: Budapest