-
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
-
félisten
válasz bozsozso #9002 üzenetére
"Egyszerű" cellaformázással (a legjobb tudomásom szerint) nem lehet, vagy felveszel egy segédoszlopot és abba beírod pl ezt =A1/1000 & "e Ft" vagy ez esetben elegánsabb és célszerűbb is egy makrót írni, ami figyeli, hogy ha az adott oszlopban/tartományban módosul egy cella tartalma, akkor automatikusan végigszalad az adott oszlopon/tartományon és elvégzi a szükséges formázást.
Természetesen a képlet amit feljebb írtam egy "nyers valami", ha szükséges(és általában az), akkor a kerekítésekről gondoskodni kell.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
m.zmrzlina
senior tag
válasz bozsozso #9004 üzenetére
Egyéni formátumkód létrehozásával meg lehet oldani.
Cellák formázása>Szám>Egyéni
Itt kiválasztod akármelyiket és átírod erre:
#-" e"
(a kettős kereszt után kötőjel van és ebben van a lényeg csak itt nem nagyon látszik) 1db kötőjel 1000-rel osztja a beírt számot. Ha milliókkal vagy milliárdokkal számolsz akkor többszörözni lehet a kötőjelet és persze utána "m" vagy "mrd"
Ezzel tudsz számolni is.
[ Szerkesztve ]
-
félisten
válasz bozsozso #9004 üzenetére
Basszuskulcs... Emlékeztem egy nagyon egyszerű megoldásra, de ez valamiért nem akart működni, #,
Szóval egy kereszt és egy sima vessző és ez nem műxik, de megvilágosodtam, ez viszont pöpecül műxik, egyszerű cellaformázás és számolhatsz is vele utána# "e Ft"
Hát ez tényleg szívás volt, egy vesszőt lecseréltem szóközre...
m.zmrzlina
Nálam úgy ahogy leírtad (kötőjellel) nem működik...[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Delila_1
Topikgazda
válasz bozsozso #9011 üzenetére
Vigyázat! A számolás a megjelenítési formátumtól függetlenül a teljes számmal számol, nemcsak a látható részével. Előfordulhat, hogy az így formázott számok összege látszólag hamis eredményt ad.
Pl. a
364665 és
155723 összege
520388A látványuk
365 és
156, az összegük
520, ami látszólag hamis érték.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
félisten
válasz bozsozso #9485 üzenetére
=SZUMHA(A1:A4;"#";B1:B4)
Csillagot nem használhatsz, mert az ún. asterix karakter (helyettesítő karakter, mint akár a kérdőjel)
karczt
Az a baj, hogy pl a scroll lock esetén amit leírsz, annak úgy is kell működni.
Alfanumerikus ill. numerikus padon beírva a számot, akkor ugyanaz a helyzet?[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
-
félisten
válasz bozsozso #9584 üzenetére
Az alábbi kód szabályos KEREKÍTÉS-t végez először (5 tizedtől felfelé illetve az alatt lefelé), továbbá most úgy írtam, hogy a kerekítést követően a 2-re végződő számokat 5-re , míg 7-re végződőket 9-re módosítja. Próbáld ki, remélem így megfelel.
Function FSCD_Round5_9(xCell As Range) As Single
Dim xNumber As Single
Dim xStr As String, xChar As String
Dim MyFxs As WorksheetFunction
Set MyFxs = Application.WorksheetFunction
xNumber = xCell
xStr = MyFxs.Round(xNumber, 0)
xNumber = xStr
xChar = Right(xStr, 1)
Select Case xChar
Case "0"
xNumber = xNumber - 1
Case "1"
xNumber = xNumber - 2
Case "2"
xNumber = xNumber + 3
Case "3"
xNumber = xNumber + 2
Case "4"
xNumber = xNumber + 1
Case "5"
Case "6"
xNumber = xNumber - 1
Case "7"
xNumber = xNumber + 2
Case "8"
xNumber = xNumber + 1
Case "9"
End Select
Set MyFxs = Nothing
FSCD_Round5_9 = xNumber
End Function[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
perfag
aktív tag
válasz bozsozso #9593 üzenetére
Előkészület: C2:igen, C3:nem - kijelölöd a cellákat amelyekre adatérvényesítést akarsz
Adatok menü, Adateszközök csoport, Érvényesítés parancs
A párbeszédablakban: Megengedve lenyíló: Lista - Forrásnak kijelölöd a C2:C3-at Ok
Ha akarod cifrázni próbáld ki a másik két fület is, beírsz valamiket és figyelszAz ok végrehajtása után a cellákon lenyíló jel jelenik meg. Lenyitod, kiválasztod. De beírhatsz is, ha elvéted akkor háborog. A háborgó üzenetedet a harmadik fülön magad megadhatod.
Lehet, hogy megint elütöttem valamit? Én radam kérdésére válaszolok éppen.
[ Szerkesztve ]
-
félisten
válasz bozsozso #9591 üzenetére
Megnyitod a munkafüzeted, amiben ezt a "furcsa" kerekítést használni szeretnéd, ALT+F11/Insert menü/Module és a megjelenő ablakba bemásolod az általam adott kódot. Mentés másként és makróbarát dokumentumként kell menteni immár.
Az a kód egy függvény, ugyanazok a szabályok érvényesek rá, mint pl a SZUM függvényre, azaz, egy adott cellán állva azt kell beírni, hogy pl =FSCD_Round5_9(A1)
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz bozsozso #9599 üzenetére
"nem tudom valamit biztosan el balfékeskedtem..."
Tuti... (ennyire balfax kódot azért én sem teszek be, referenciák Delila_1, perfrag, fehérmancs, stb)[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz bozsozso #9681 üzenetére
A termékek megnevezése, az fix helyen van az összes CSV fájlokban, vagy változó, hogy hol helyezkedik el? pl itt mindig az első helyen van a termék neve
kapa;2000;fém
lapát;2500;műanyagMindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz bozsozso #9681 üzenetére
No mindegy, majd kipróbálod, aztán ha valamit módosítani kell, akkor módosítva lesz...
Private Sub CommandButton1_Click()
'elválasztó-karakter a CSV fájlokon belül
Const MYDELIMITER = ";"
'hol találhatóak a CSV fájlok
Const MYPATH = "D:\fire\csvs_path\"
'melyik munkalapra legyenek bemásolva az adatok
Dim DestWB As Worksheet
Set DestWB = Worksheets("Munka2")
'a megadott munkalap melyik cellájától kerüljenek be az adatok
Dim DestRange As Range
Set DestRange = DestWB.Range("A1")
Dim MyStr As String
Dim MyStrs() As String
'meg kell adni, milyen terméket keressünk a CSV fájlok-ban és OK gomb
'Cancel gombbal megszakítható a művelet
UserChange = InputBox("Mit keressünk? (kis- és nagybetű nem számít...)", "Keresés...")
If Len(UserChange) > 0 Then
Application.ScreenUpdating = False
'kiválasszuk a megadott munkalapot
DestWB.Select
'töröljük annak teljes tartalmát
DestWB.UsedRange.Clear
DestRange.Select
MyRowCount = 0
MyFname = Dir(MYPATH & "*.csv")
Do While Len(MyFname) > 0
MyFnum = FreeFile
Open MYPATH & MyFname For Input As MyFnum
While Not EOF(MyFnum)
Line Input #MyFnum, MyStr
MyStrs = Split(MyStr, MYDELIMITER)
'vizsgáljuk, hogy a CSV fájl adott sorában, utolsó eleme után van-e még elválasztókarakter avagy sem
If Right(MyStr, 1) = MYDELIMITER Then
MyCount = UBound(MyStrs())
Else: MyCount = UBound(MyStrs()) + 1
End If
'a MyStrs(0) indexével adjuk meg, hogy a CSV fájlon belül, hányadik elem a termék neve
'első->0, második->1, harmadik->2 stb stb
If UCase(MyStrs(0)) = UCase(UserChange) Then
For i = 0 To MyCount - 1
ActiveCell.Offset(MyRowCount, i).Value = MyStrs(i)
Next i
MyRowCount = MyRowCount + 1
End If
Wend
Close MyFnum
MyFname = Dir()
Loop
Application.ScreenUpdating = True
'ha nem találtunk egyetlen megadott nevű terméket sem, arról értesítést adunk
If MyRowCount = 0 Then MsgBox "A megadott termék nem található az átvizsgált CSV fájlokban.", vbInformation
End If
Set DestWB = Nothing
Set DestRange = Nothing
End SubMindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz bozsozso #9698 üzenetére
2 lehetőség van ekkor
1. Nincs 5. elem (MyStrs(4))
2. Nem egyforma formátumúak a CSV-kPuhatold ki melyik, és módosítom, kivitelezhető így és úgy is...
(Ma nem vagyok 100%-os, mivel (és ez lehet infó rólam pár emberkének), de Józsi vagyok és a barátokkal egy kicsit(tényleg kicsit) felöntünk a garatra...Holnap jelentkezem...
UI: Delila_1 tényleg egy "kis" zseni, bele sem merek gondolni, ha összehozott volna minket a sors az életben, milyen hiperkocka gyerkőceink lettek volna...
(Bocsi delila_1, remélem poénnak fogod fel, mert annak szántam)[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz bozsozso #9706 üzenetére
Sajnos ez ahátránya, ha kockák (de jó értelemben véve) a barátaid, mert a kávét alig tdtuk meginni, a "sofőr kockának" jelenése akadt, mudzáj volt eljönni, na majd holnap...
(Aki ilyen CSv-ket gyárt, az menjen el inkább répát eggyelni...)Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz bozsozso #9708 üzenetére
Rövid életű volt a mai este...Ez van...No, akkor minden CSV-nek az első 4 sora lényegtelen? ( ha igen akkor módosítom)
UI: Kösz a névnapi jókívánságot!
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz bozsozso #9710 üzenetére
Akkor ezek lennének a feladatok?
1. Minden CSV első 4 sorának kihagyása
2. Terméknevek alapján létrehozni külön-külön munkalapokat, és abba pakolni a szükséges adatokatEhhez szükségem lenne egy CSV fájlra(ha publikus el is küldheted, ha nem, akkor meg készíts egy CSV kamu adatokkal, illetve erről
"Tehát új munkalap létrehozás majd pl.:a C1 cellába a terméknév utánna pedig pl. az A2-től a cellákban a telephelyek(ami fájlnév utolsó 3 karaktere) és mondjuk a B2 cellától lefelé a mennyiségek."
egy képet tegyél be...Delila_1
Köszönöm, éltetett. Igaz kicsit rövidre sikeredett, de legalább olyan ismerősökkel tudtam pár szót váltani, akikkel évek óta nem találkoztunk...[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
-
félisten
válasz bozsozso #9716 üzenetére
Bocs a megkésett anyagért, de hétköznapokon el vagyok rendesen foglalva.
Ez a kód az összes CSV fájlt feldolgozza illetve AutoFilter-rel látja el. Ebből a táblázatból pedig kényelmesen legyárthatsz kimutatást, abban meg azt és úgy összesíthetsz, ahogy csak szeretnéd.
(Azért tettem be ide PH!-ra, mert hátha mások is találnak benne hasznos dolgokat)Private Sub CommandButton1_Click()
'elválasztó-karakter a CSV fájlokon belül
Const MYDELIMITER = ";"
'hol találhatóak a CSV fájlok
Const MYPATH = "D:\fire\csvs_path\"
'melyik munkalapra legyenek bemásolva az adatok
'(A munkalapnak LÉTEZNIE KELL!)
Dim DestWS As Worksheet
Set DestWS = Worksheets("Munka2")
'a megadott munkalap melyik cellájától kerüljenek be az adatok
Dim DestRange As Range
Set DestRange = DestWS.Range("A1")
Dim MyStr As String
Dim MyStrs() As String
Dim MyFileIndex As Integer
Dim MyRowCount As Integer
Dim MyCount As Integer
Application.ScreenUpdating = False
DestWS.Select
DestWS.UsedRange.Clear
DestRange.Select
MyRowCount = 0
MyFileIndex = 0
MyFname = Dir(MYPATH & "*.csv")
Do While Len(MyFname) > 0
MyFnum = FreeFile
Open MYPATH & MyFname For Input As MyFnum
Line Input #MyFnum, MyStr
Line Input #MyFnum, MyStr
Line Input #MyFnum, MyStr
If MyFileIndex = 0 Then
ActiveCell.Offset(MyRowCount, 0).Value = "TelephelyKód"
MyFileIndex = 1
MyStrs = Split(MyStr, MYDELIMITER)
If Right(MyStr, 1) = MYDELIMITER Then
MyCount = UBound(MyStrs())
Else: MyCount = UBound(MyStrs()) + 1
End If
For i = 0 To MyCount - 1
ActiveCell.Offset(MyRowCount, i + 1).Value = MyStrs(i)
Next i
MyRowCount = MyRowCount + 1
End If
Line Input #MyFnum, MyStr
Line Input #MyFnum, MyStr
While Not EOF(MyFnum)
Line Input #MyFnum, MyStr
xstr = Mid(MyFname, InStr(1, MyFname, ".", vbTextCompare) - 3, 3)
ActiveCell.Offset(MyRowCount, 0).Value = xstr
MyStrs = Split(MyStr, MYDELIMITER)
For i = 0 To MyCount - 1
ActiveCell.Offset(MyRowCount, i + 1).Value = Trim(MyStrs(i))
Next i
MyRowCount = MyRowCount + 1
Wend
Close MyFnum
MyFname = Dir()
Loop
With ActiveSheet
.Range(DestRange.Address & ":" & Chr(DestRange.Column + MyCount + 64) & DestRange.Row).AutoFilter
.Columns.AutoFit
End With
Application.ScreenUpdating = True
If MyRowCount = 0 Then MsgBox "A megadott termék nem található az átvizsgált CSV fájlokban.", vbInformation
Set DestWS = Nothing
Set DestRange = Nothing
End SubMindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
bugizozi
őstag
válasz bozsozso #9806 üzenetére
Helló!
Sub valami()
ucsoB = Cells(Rows.Count, "B").End(xlUp).Row
Sheets("Munka1").Range("B1:B" & ucsoB).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets("Munka1").Range("G1"), Unique:=True
ucsoG = Cells(Rows.Count, "G").End(xlUp).Row
Sheets("Munka1").Range("G1:G" & ucsoG).Select
Selection.Copy
Sheets("Munka2").Select
Range("B4").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("Munka1").Select
Sheets("Munka1").Range("G1:G" & ucsoG).ClearContents
Sheets("Munka2").Select
ucsoB2 = Cells(Rows.Count, "B").End(xlUp).Row
Range("B5:B" & ucsoB2).Select
Selection.Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
For i = 5 To ucsoB2
Sheets("Munka2").Range("C" & i).Select
ActiveCell.FormulaR1C1 = "=SUMIF(Munka1!R2C2:R" & ucsoB & "C2,RC[-1],Munka1!R2C3:R" & ucsoB & "C3)"
Next i
End SubA kódot lefuttatva a Munka1 lapon lévő adatokból:
Ezt kreálja a Munka2 lapra:
Remélem jól értettem és rendben műxik
VCP7-DCV, CCNA ||| Ami működik, ahhoz nem szabad hozzányúlni!
-
Delila_1
Topikgazda
válasz bozsozso #9806 üzenetére
Nálam nem a kívánt eredmény jött ki Bugizozi makrójával. Egy kicsit módosítottam rajta, és megjegyzéseket tettem bele.
Sub Összegzés()
Dim usorA As Long, usorG As Long, usor2A As Long
Sheets("Munka1").Select
usorA = Range("A1").End(xlDown).Row 'Alsó sor a Munka1 lapon
'Irányított szűrés egyedi ('A' oszlop) értékekre a G1-be
Range("A1:A" & usorA).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Range("G1"), Unique:=True
'Alsó sor a G oszlopban
usorG = Range("G1").End(xlDown).Row
'Első üres sor a Munka2 lap A oszlopában
usor2A = Sheets("Munka2").Range("A5000").End(xlUp).Row + 1
'Munka1 G oszlopának másolása a Munka2 A oszlopába
Range("G2:G" & usorG).Copy Sheets("Munka2").Range("A" & usor2A)
Sheets("Munka2").Select
'Szumha képlet a Munka2!B-be
Range("B2:B" & Range("A5000").End(xlUp).Row) = _
"=SUMIF(Munka1!A:A,Munka2!A2,Munka1!B:B)"
Cells(2, 1).Select
'Munka1!G törlése
Sheets("Munka1").Columns(7).Delete
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz bozsozso #9825 üzenetére
Igazad van, elfelejtettem, hogy a képletek beírásához nem jelöltem ki a B oszlop tartományát. Bemásolom a teljes makrót.
Sub Összegzés()
Dim usorA As Long, usorG As Long, usor2A As Long
Sheets("Munka1").Select
usorA = Range("A1").End(xlDown).Row 'Alsó sor a Munka1 lapon
'Irányított szűrés egyedi ('A' oszlop) értékekre a G1-be
Range("A1:A" & usorA).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Range("G1"), Unique:=True
'Alsó sor a G oszlopban
usorG = Range("G1").End(xlDown).Row
'Első üres sor a Munka2 lap A oszlopában
usor2A = Sheets("Munka2").Range("A5000").End(xlUp).Row + 1
'Munka1 G oszlopának másolása a Munka2 A oszlopába
Range("G2:G" & usorG).Copy Sheets("Munka2").Range("A" & usor2A)
Sheets("Munka2").Select
'Szumha képlet a Munka2!B-be
Range("B2:B" & Range("A5000").End(xlUp).Row).Select
Selection = "=SUMIF(Munka1!A:A,Munka2!A2,Munka1!B:B)"
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
Cells(2, 1).Select
'Munka1!G törlése
Sheets("Munka1").Columns(7).Delete
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz bozsozso #9838 üzenetére
Sheets.Add.Name = Sheets("Munka1").Range("B1")
Az I és K oszlophoz tegyél már be egy képet, hogy lássuk, mit szeretnél csinálni.
Ma én már leteszem a lantot, de biztosan lesz, aki segít.[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz bozsozso #9901 üzenetére
Ez az új a Munka2 lapon a B oszlopba írja a Munka1 H oszlopát, és a C-be az I-t.
Sub Összegzés()
Dim usorA As Long, usorT As Long, usor2A As Long
Sheets("Munka1").Select
usorA = Range("A1").End(xlDown).Row 'Alsó sor a Munka1 lapon
'Irányított szűrés egyedi ('A' oszlop) értékekre a T1-be
Range("A1:A" & usorA).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Range("T1"), Unique:=True
'Alsó sor a T oszlopban
usorT = Range("T1").End(xlDown).Row
'Első üres sor a Munka2 lap A oszlopában
usor2A = Sheets("Munka2").Range("A5000").End(xlUp).Row + 1
'Munka1 T oszlopának másolása a Munka2 A oszlopába
Range("T2:T" & usorT).Copy Sheets("Munka2").Range("A" & usor2A)
Sheets("Munka2").Select 'Szumha képlet a Munka2!B-be
usorA = Range("A1000").End(xlUp).Row
Range("B2:B" & usorA).Select
Selection = "=SUMIF(Munka1!A:A,Munka2!A2,Munka1!B:B)"
Range("C2:C" & usorA) = "=VLOOKUP(A2:A" & usorA & ",Munka1!A:I,8,0)"
Range("D2:D" & usorA) = "=VLOOKUP(A2:A" & usorA & ",Munka1!A:I,9,0)"
Range("A:D").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Cells(2, 1).Select
'Munka1!T oszlop törlése
Sheets("Munka1").Columns(20).Delete
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz bozsozso #9903 üzenetére
Mást is módosítottam.
Az újban nem a G, hanem a T oszlopba gyűjtettem ki az irányított szűrővel az A oszlop egyedi értékeit, mert látom, hogy a G oszlop foglalt.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
perfag
aktív tag
válasz bozsozso #9924 üzenetére
Miért ne működne? Ha jól emlékszem az Excel 95-ről Excel 97-re átállásnál volt egy nagyon jelentős váltás a VBA objektum modelljében, azóta olyan nagy dolgok nem történtek, az egyik verzióban megírt makró fut a másikban is. Majdnem azt mondtam miért nincs kéznél egy portable Excel 2003-od, de mióta áttértem Win7-re nekem sincs
-
Delila_1
Topikgazda
válasz bozsozso #9924 üzenetére
A 2007 Mentés másként menüpontjában van egy ilyen almenü: 97-2003 verziójú munkafüzet.
Felteszem, hogy a 2010-esben is van. Ebben a formátumban mentsd el, akkor jó lesz.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
perfag
aktív tag
válasz bozsozso #9930 üzenetére
Hmm, nem értem. "Szöveg formátumot szeretnék számmá alakítani makróval." A makróban akarsz vele számolni, vagy vissza akarod írni az eredményt egy cellába?
Makróban a Val () függvénnyel lehet szöveget számmá alakítani.
b = Val(Range("A1"))
Elvileg. Mert a szövegben tizedes pontot kell használni, nem tizedes vesszőt. Meg lehet kerülni egy vesszőfigyelő makróval, ami kicseréli pontra az elválasztót. A VBA Súgó szerint viszont CDbl függvényt kell az internacionalistáknak használniuk. -
Delila_1
Topikgazda
válasz bozsozso #9930 üzenetére
Sub szám()
Range("B1") = 1
Range("B1").Copy
Range("A1:A" & Range("A1").End(xlDown).Row).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply
Range("B1") = ""
Application.CutCopyMode = False
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz bozsozso #9940 üzenetére
Fogalmam sincs. Mostanában jártam én is így. Az eredeti, szöveg formátumú számok tizedes elválasztója pont volt, azokat makróval kicseréltettem vesszőre, ezután jött volna az irányított beillesztés. Ez már nem jött össze.
Addig írtam meg, hogy egy változóba bevettem az 1-et, kijelöltem a nem összefüggő területeket, és egy üzenetet küldtem, hogy illessze be irányítottan, szorzásként.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Új hozzászólás Aktív témák
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- Canva Pro előfizetés - 1 éves
- Game Pass Ultimate előfizetések 1 - 25 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN!
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Eredeti Windows, telepítéssel! Digital Doctor Számítógép Szerviz