- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- aquark: Jó platformer játékokat keresek!
- gban: Ingyen kellene, de tegnapra
- sh4d0w: Árnyékos sarok
- Elektromos rásegítésű kerékpárok
- skoda12: Webshopos átverések
- GoodSpeed: iPadOS 26 A Liquid Glass varázsa
- sellerbuyer: Nem veszélytelen a RAM duplázás de vajon megéri?
-
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
válasz
KaliJoe #53475 üzenetére
Szia,
Az én megoldásom azon alapszik, hogy van egy táblázat amely tartalmaz pár adatot ami alapján meg lehet találni, hogy melyik formátumot kell használni.
Mutatom.
Jobb oldalt van a táblázat, amiben a telefonszám első pár karaktere van megadva (lehet dzsóker karaktert - kérdőjel most csak - is használni). Aztán van hossz is, hogy az altípusokat meg lehessen különböztetni (biztosra mentem és tartományt lehet megadni).
Majd jön a kívánt számformátum, itt követni kell az Excel speciális számformátum szabályait. Meg lehet adni, hogy milyen háttérszíne legyen a cellának (három szám 0-255 között, vesszővel felsorolva a vörös-zöld-kék alapszínekhez). A komment pedig segít eligazodni a káoszban.A táblázatban fontos a sorrend. Ha több lehetőség is van akkor is az első találatot fogja használni a makró.
Ezek után a makró:
Option Explicit
Dim arrFormats
Sub FormatNumbers()
Dim s As Range
Dim r As Variant
Dim szinek As Variant
'megadott formátumokat memóriába töltjük
'ha más a tábla neve akkor a tFormats helyére a helyes kerüljön
arrFormats = ActiveSheet.ListObjects("tFormats").DataBodyRange.Value
Set s = Intersect(Selection, ActiveSheet.UsedRange)
If Not s Is Nothing Then
'kijelölt adatokon végigmegyünk
For Each s In Selection
r = FindFormat(s.Value)
If IsArray(r) Then
'a cél cella formázását levesszük
s.ClearFormats
'beállítjuk a formátumot
s.NumberFormat = r(1)
'ha van színezünk
If r(2) <> "" Then
szinek = Split(r(2), ",")
If UBound(szinek) = 2 Then s.Interior.Color = RGB(szinek(0), szinek(1), szinek(2))
End If
End If
Next s
End If
End Sub
Function FindFormat(p As String) As Variant
Dim i As Long
Dim pFormat(1 To 2) 'formátum és színkód
Dim pKezdo As String
Dim pHossz As Long
pHossz = Len(p)
FindFormat = ""
If pHossz = 0 Then Exit Function
'végigmegyünk a létező formátumokon
For i = 1 To UBound(arrFormats)
pKezdo = ""
'hossz alapján keresünk egyezést
If arrFormats(i, 2) >= pHossz And arrFormats(i, 3) <= pHossz Then
pKezdo = arrFormats(i, 1)
'kezdõ karakterek alapján keresünk egyezést
If Left(p, Len(pKezdo)) Like pKezdo Then
'ha van egyezés akkor elmentjük és kilépünk a ciklusból
pFormat(1) = arrFormats(i, 4)
pFormat(2) = arrFormats(i, 5)
FindFormat = pFormat
Exit For
End If
End If
Next i
End Function
Csak a kijelölt cellák formátumát változtatja meg! Vagyis előbb jelöljük ki a cellákat/oszlopokat és utána futassuk (Alt+F8-at nyomva vagy egy gombot kitéve).
Új hozzászólás Aktív témák
Hirdetés
- Vírusirtó, Antivirus, VPN kulcsok
- AKCIÓ! Jogtiszta Windows - Office & Vírusirtó licencek- Azonnal - Számlával - Garanciával - Nint.hu
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most kedvező áron!
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- MS SQL Server 2016, 2017, 2019
- GeForce RTX 3060Ti (OEM HP)
- BESZÁMÍTÁS! ASUS B550 Vision D B550 chipset alaplap garanciával hibátlan működéssel
- BESZÁMÍTÁS! ASUS B760M i7 13700K 32GB DDR4 512GB SSD RX 6800XT 16GB Phanteks Eclipse P400 Glacier
- Xiaomi Redmi Note 13 Pro 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- Részletfizetés. ASUS TUF Gaming F16 FX608JMR-QT021
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest