-
Fototrend
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
-
válasz
KaliJoe #53475 üzenetére
Kivitelezhető, csak több melóval, mivel a nemzetközi telefonszám-formátumok országonként eltérnek. Nemzetközi számoknál az országkódot ki kell szedni, telószám hosszát lekérdezni és ebből a kettőből lehet meghatározni megjelenítési formátumot.
Feltételes formázással is kivitelezhető, de amint egy újabb ország telószáma bekerül, egyből új szabály(ok) hozzáadása szükséges.Az utolsó 2 szabály a 2 Németországi formátumot érvényesíti.
1.=LET(Nemzetközi_DE;BAL(A1;2);Nemzetközi_DE_HOSSZ;HOSSZ(A1);HA(ÉS(Nemzetközi_DE="49";Nemzetközi_DE_HOSSZ=12);1))
2.=LET(Nemzetközi_DE;BAL(A1;2);Nemzetközi_DE_HOSSZ;HOSSZ(A1);HA(ÉS(Nemzetközi_DE="49";Nemzetközi_DE_HOSSZ=13);1))
-
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).
-
Fferi50
Topikgazda
válasz
KaliJoe #53475 üzenetére
Szia!
Sajnos nem erre gondoltam, a maszkok teljesen érthetőek. De
Pl. 123456789, 345678289, 21345678912
Mondd meg légy szíves, melyik maszkot használjam ezekre, mindegyikre ugyanazt vagy melyikre milyent.
Melyik számról mit tudsz megállapítani?
Mi van, ha a magyar telefonszámhoz nincs a +36?
Üdv.
Új hozzászólás Aktív témák
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Bestbuy játékok
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Okos Otthon / Smart Home
- Luck Dragon: Asszociációs játék. :)
- Milyen okostelefont vegyek?
- Samsung Galaxy S23 Ultra - non plus ultra
- Milyen TV-t vegyek?
- Kerékpárosok, bringások ide!
- Elektromos autók - motorok
- További aktív témák...
- Assassin's Creed Shadows Collector's Edition PC
- AKCIÓ! Jogtiszta Windows - Office & Vírusirtó licencek- Azonnal - Számlával - Garanciával - Nint.hu
- Árváltozás+játék!The Witcher 2 Assassins of Kings Collector's Edition
- Árváltozás + játék DVD: Fallout New Vegas Collector's Edition
- Battlefield 5 PC SteelBook és játék
- Lenovo Thinkcentre M920t Tower/ M720s / M920s SFF / i5-8-9. gen/ WIN10-11/számla, garancia
- Új Asus 16 Vivobook WUXGA IPS Nano Ryzen5 7430U 4.3Ghz 16GB 512GB SSD Radeon RX Vega7 Win11 Garancia
- Eladó 2db Nokia steel hr hibrid okos óra dobozával
- HIBÁTLAN iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3319
- 143 - Lenovo LOQ (15IRH8) - Intel Core i5-13500H, RTX 4060 (ELKELT)
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő