-
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
-
Mutt
senior tag
válasz
andreas49 #53631 üzenetére
Szia,
Az aktuális munkalapon próbálja meg átalakítani a dátumokat a kijelölt cellákban.
Sub DatumAlakit()
Dim adatok As Range, adat As Range
Dim lapnev As String
Dim honap As String, nap As String, eredmeny As String
Dim magyarHonap, angolHonap
Dim c As Long, karakter As String * 1
angolHonap = Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
magyarHonap = Array("jan#", "feb#", "már#", "ápr#", "máj#", "jún#", "jûl#", "aug#", "szept#", "okt#", "nov#", "dec#")
lapnev = Trim(ActiveSheet.Name)
Set adatok = Intersect(ActiveSheet.UsedRange, Selection)
For Each adat In adatok
nap = ""
honap = ""
eredmeny = adat
'csak akkor fusson le ha még nincs évszám
If InStr(1, adat, lapnev) = 0 Then
'karakternként végigmegyünk a cella tartalmán
For c = 1 To Len(adat)
'ha szám van akkor a nap tömbbe tesszük, ha betû a hónap tömbbe
karakter = Mid(adat, c, 1)
Select Case UCase(karakter)
Case "0" To "9", "-"
nap = nap & karakter
Case "A" To "Z"
honap = honap & karakter
End Select
Next c
End If
'angol hónap nevek magyarra cserélése
For c = 0 To UBound(angolHonap)
honap = Replace(honap, angolHonap(c), magyarHonap(c), Compare:=vbTextCompare)
Next c
'végeredmény összerakása
Dim honapok, napok
If Len(honap) > 0 And Len(nap) > 0 Then
honapok = Split(Left(honap, Len(honap) - 1), "#")
'ha van hónap akkor használjuk
If IsArray(honapok) Then
If UBound(honapok) > 0 Then
'ha több hónap van, akkor több nap is kell
napok = Split(nap, "-")
eredmeny = lapnev & ". " & Replace(honapok(0), "#", "") & ". " & napok(0) & " - " _
& Replace(honapok(1), "#", "") & ". " & napok(1)
Else
eredmeny = lapnev & ". " & Replace(honapok(0), "#", "") & ". " & nap
End If
End If
End If
'adat.Offset(, 1) = eredmeny 'teszteléshez ezt a sort aktiváld, a következõd kommenteld be
adat = eredmeny
Next adat
End Sub
Nem tudom, hogy mennyire megy a te adatsorodon. Érdemes előbb egy teszt fájlban kipróbálni.
üdv
-
Fferi50
Topikgazda
válasz
andreas49 #53631 üzenetére
Szia!
Ha jól gondolom, ezek a "dátum formák" szöveges értékek az adott cellában, mivel az Excel/VBA a dátumot/időt konkrét számértékként kezeli. A mutatott értékek pedig intervallumot jelentenek.
Honnan jön az év? Az aktuális munkalap neve tartalmazza? Vagy valahonnan máshonnan lehet kinyerni?
Egyébként akár a Keres - Cserél Excel funkció is használható lehet.
Üdv.
Új hozzászólás Aktív témák
- BestBuy ruhás topik
- Battlefield 6
- Bluetooth hangszórók
- Androidos fejegységek
- Azonnali fáradt gőzös kérdések órája
- Milyen okostelefont vegyek?
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Nem kamera gomb, kérem, AI-gomb! Kezünkben a Honor Magic8-ak
- Apple iPhone 17 Pro Max – fennsík
- További aktív témák...
- HIBÁTLAN iPhone 15 Pro 256GB Blue - 1 ÉV GARANCIA - Kártyafüggetlen ,MS3725
- 8 GB-os GeForce RTX 2060 SUPER (OEM HP) - garanciával
- ÚJ Dell Latitude 15 5550 - 15.6"FullHD IPS - Ultra 5 135U - 16GB - 512GB SSD - Win11 - 2,5+ év gari
- DEEPCOOL Függőleges GPU adapter
- Honor X6b 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő