- Brogyi: CTEK akkumulátor töltő és másolatai
- gban: Ingyen kellene, de tegnapra
- Geri Bátyó: Agglegénykonyha 14 – Kések, késélezés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- MasterDeeJay: RAM gondolatok: Mennyi a minimum? DDR3 is jó?
- Rabbitf_24: A nagy életmódváltás.
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- D@reeo: Pi-hole és a Telekom Sagemcom F@st 5670 DNS beállítása
- MasterDeeJay: Comet lake (10gen) és DDR3 - mert ilyet is lehet!
- Luck Dragon: Asszociációs játék. :)
-
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
andreas49
#49005
üzenetére
Szia,
Itt egy makrós változat, amely a KIJELÖLT oszlopon végzi el az átalakítást és mellé írja be a kapott értékeket. Mivel nem írtad hogy mi történjen ha a formátum nem követi az "abc (def) [ghi]" formátumot ezért ahogy nekem logikusnak tűnt írtam meg a kódot. A kommentek alapján próbáld meg módosítani.

Sub Szetszed()
Dim cella As Range
Dim adatsor As Range
Dim pos1 As Long, pos2 As Long, pos3 As Long
Dim text1 As String, text2 As String, text3 As String
'a kijelölt és adatokat tartalmazó tartományt használjuk csak
Set adatsor = Application.Intersect(Selection, ActiveSheet.UsedRange)
'végig megyünk a cellákon
For Each cella In adatsor
text1 = ""
text2 = ""
text3 = ""
'keressük a szövegben a zárójelet
pos1 = InStr(1, cella, "(")
'ha van zárójel akkor a csonkoljuk a szöveget a talált pozícióig
If pos1 > 0 Then
'ha van zárójel akkor a csonkoljuk a szöveget a talált pozícióig
text1 = Trim(Left(cella, pos1 - 1))
'keressük a szögletes árójelet
pos2 = InStr(pos1, cella, "[")
If pos2 > 0 Then
'ha van szögletes, akkor kivesszük a szöveget a zárójel utáni pozíciótól kezdve
text2 = Replace(Trim(Mid(cella, pos1 + 1, pos2 - pos1 - 1)), ")", "")
text3 = Replace(Trim(Mid(cella, pos2 + 1, Len(cella) - pos2)), "]", "")
Else
'nincs szögletes zárójel, de sima volt
pos2 = InStr(pos1, cella, ")")
text2 = Trim(Mid(cella, pos1 + 1, pos2 - pos1 - 1))
text3 = Trim(Mid(cella, pos2 + 1, Len(cella) - pos2))
End If
Else
'nem volt zárójel tartsuk meg az eredeti szöveget
text1 = cella
End If
'eredeti cella melletti oszlopokba írjuk az eredményt
cella.Offset(, 1) = text1
cella.Offset(, 2) = text2
cella.Offset(, 3) = text3
Next cella
End Subüdv
Új hozzászólás Aktív témák
- Suzuki topik
- PlayStation 5
- A cégvezetők látják az AI költségeit, csak azt nem hogyan lesz ebből haszon
- Gyúrósok ide!
- Fejhallgató erősítő és DAC topik
- Milyen billentyűzetet vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Apple iPhone 17 Pro Max – fennsík
- Motorola Edge 60 Fusion - nem csak a forma időtálló
- AMD GPU-k jövője - amit tudni vélünk
- További aktív témák...
- Apple iPhone 17 Pro Max 256GB Deep Blue használt, karcmentes 100% akku (52 ciklus) Apple garan
- BESZÁMÍTÁS! MSI MAG B365M i5 9600KF 16GB DDR4 512GB SSD RTX 2060 6GB Kolink Stronghold Seasonic 550W
- Dell Precision 7750,17.3" FHD,i7-10875H,32GB DDR4,256GB SSD,RTX 3000 6GB VGA,WIN11
- HIBÁTLAN iPhone 14 Pro 256GB Deep Purple -1 ÉV GARANCIA - Kártyafüggetlen, 100% Akkumulátor
- BESZÁMÍTÁS! 64GB Patriot Viper 3600Mhz DDR4 memória garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

Fferi50