Hirdetés
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- btz: Internet fejlesztés országosan!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- BerserkGuts: 9800X3D Hitvallás, Dogma megcáfolása egy RTX5080+12600K-val
- Meggyi001: Áram nélkül....méltóság nélkül.....
- Lalikiraly: Mercis kalandok - Huszonkilencedik rész
- balojazz: Szódakészítés üzembiztosan és olcsón! Figyelem, csak hardcore szódázóknak!
-
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
-
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
- Eladó jogtiszta, Windows 11/10, Office 2019/2021/2024, Fizikai és Digitális licencek, Számlával.
- Microsoft és egyéb dobozos és OEM szoftverek
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- PC Game Pass előfizetés
- MEGA AKCIÓ! - Jogtiszta Windows - Office & Autodesk & CorelDRAW - Azonnal - Számlával - Garanciával
- Lenovo 13w Yoga 2in1 Gen 2 AMD Ryzen 3 7330U 8 GB RAM 256 GB SSD Premium garancia FHD IPS TOUCH
- 27% - HEIGAOLA MiniPC - / 10.1" Érintőképernyő! Intel J4125 / 8GB RAM /128GB SSD
- AKCIÓ! ASRock A520M R5 4500 8GB DDR4 512GB SSD GTX 1050 Ti 4GB Zalman T3 Plus DeepCool 400W
- iPhone 13 128Gb 100%(1év Garancia)- ÚJ EREDETI AKKUMULÁTOR - AKCIÓ
- Samsung Galaxy A34 5GB 128GB/6GB/Számlával!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Fferi50