- Redmi Note 10S - egy a sok közül
- Google Pixel topik
- Fotók, videók mobillal
- Magisk
- Google Pixel 8 Pro - mestersége(s) az intelligencia
- Samsung Galaxy S23 Ultra - non plus ultra
- Felkészült a Redmi 15C
- MIUI / HyperOS topik
- iPhone topik
- Vékonyabb lett, jobb kamerát kapott, de az akku maradt a régi: itt a Fold7
Új hozzászólás Aktív témák
-
válasz
lasarus1988 #1270 üzenetére
hogyan törölhetem egy könyvjelző tartalmát word-ben makróból
Sehogy, pontosabban úgy, hogy magát a könyvjelzőt törlöd, majd azonnal létrehozod"hogyan választhatom ki a fejlécben szereplő könyvjelzőt? Csak ott nem működik"
Sehogy, számos bookmark függvény/szolgáltatás nem elérhető/használható, ha a könyvjelző az előfej vagy előláb-ban van(Nem biztos, hogy tudok még írni, mert megint kezd behalni a PH (legalábbis nálam))
-
válasz
lasarus1988 #1268 üzenetére
Igen, jól látod, valóban úgy működik a kód és sajnos abban is igazad van, hogy ez a módszer nem megfelelő a többi CSV esetén.
Azonban azt fontos tudni, hogy az általad küldött CSV fájlok azok nem valódi CSV fájlok, csak CSV kiterjesztésű fájlok, amúgy sima text fileok is lehetnének.A CSV-nek meg van az alap felépítése, ami nagyon egyszerű, épp ezért könnyű feldolgozni is őket. A 3 CSV fájl már ismétlődő struktúrákat tartalmaz, nyílván ilyen esetben megtévesztő, ha CSV fájlra hivatkozik valaki...
-
válasz
lasarus1988 #1266 üzenetére
Na remek, mire gépközelbe jutottam, már írtál egy megoldást, gratula.
De ha már én is megírtam, akkor beteszem a kódot, más megközelítésben készült, talán vannak olyan megoldások benne, ami mások számára is hasznos lehet.
("Alakítsd át" sima SUB-bá, mert ez most egy parancsgombhoz van rendelve)Private Sub CommandButton1_Click()
Const NumberOfRowInCSV As Integer = 9
Dim MyCSVFilename As String
Dim x() As String
Dim temp As String
MyBookmarks = Array("MeasureTime", "Engineer", "ProjectNumber", "Temperature", _
"Huminidity", "Manufacturer", "Type", "SerialNumber", "Sample")
On Error Resume Next
MyCSVFilename = ""
With Application.FileDialog(FileDialogType:=msoFileDialogFilePicker)
.AllowMultiSelect = False
.Title = "Kérem válasszon egy CSV fájlt..."
.Filters.Clear
.Filters.Add Description:="CSV fájlok (*.csv)", Extensions:="*.csv"
.Show
MyCSVFilename = .SelectedItems(1)
End With
If MyCSVFilename = "" Then Exit Sub
Word.ActiveDocument.Select
fnum = FreeFile()
Open MyCSVFilename For Input As fnum
For I = 0 To NumberOfRowInCSV - 1
Line Input #fnum, temp
x = Split(temp, ";")
Word.Selection.Bookmarks(MyBookmarks(I)).Range = x(1)
Next I
Close #fnum
End Sub -
lasarus1988
tag
válasz
lasarus1988 #1265 üzenetére
Azt hiszem sikerült megoldani.
Sub haliho()
Dim xlApp As Excel.Application
Dim xlWb As Excel.Workbook
Dim LastRow As Integer
Dim I As Integer
Set xlApp = CreateObject("Excel.Application")
Set xlWb = xlApp.Workbooks.Open("C:\Eredmények\22-november-2010_1_Init_TestData.csv")
xlApp.Visible = True
LastRow = xlWb.Worksheets(1).Range("A65535").End(xlUp).Row
For I = 1 To LastRow
Word.Application.ActiveDocument.Select
Select Case xlWb.Worksheets(1).Cells(I, 1).Value
Case "Mérés időpontja"
Word.Selection.Bookmarks("MeasureTime").Range = xlWb.Worksheets(1).Cells(I, 2).Value
Case "Mérőszemély"
Word.Selection.Bookmarks("Engineer").Range = xlWb.Worksheets(1).Cells(I, 2).Value
Case "Ügyiratszám"
Word.Selection.Bookmarks("ProjectNumber").Range = xlWb.Worksheets(1).Cells(I, 2).Value
Case "Hőmérséklet"
Word.Selection.Bookmarks("Temperature").Range = xlWb.Worksheets(1).Cells(I, 2).Value
Case "Páratartalom"
Word.Selection.Bookmarks("Huminidity").Range = xlWb.Worksheets(1).Cells(I, 2).Value
Case "Gyártó"
Word.Selection.Bookmarks("Manufacturer").Range = xlWb.Worksheets(1).Cells(I, 2).Value
Case "Típus"
Word.Selection.Bookmarks("Type").Range = xlWb.Worksheets(1).Cells(I, 2).Value
Case "Gyáriszám"
Word.Selection.Bookmarks("SerialNumber").Range = xlWb.Worksheets(1).Cells(I, 2).Value
Case "Minta száma"
Word.Selection.Bookmarks("Sample").Range = xlWb.Worksheets(1).Cells(I, 2).Value
End Select
Next I
xlWb.Close
Set xlWb = Nothing
xlApp.Quit
Set xlApp = Nothing
End SubÍgy most tökéletesen működik, igaz a csv-ben nem pontosvessző a szeparátor hanem vessző. Ez nem akkora gond mert csak a hőmérsékletnél illetve a páratartalomnál használtam vesszőt, de majd kicserélem pontra.
-
válasz
lasarus1988 #1263 üzenetére
Oksa, akkor megpróbáljuk mellőzni az Excel-t, vesszővel válasz el a számokban a tizedesjegyeket és a CSV-ben pontosvesszővel válasszuk el az értékeket, azonban még egy kérdésem lenne, nevezetesen, hogy a CSV struktúráját meg lehet változtatni, úgy értem azokat Te állítod elő?
Mert ebben a formájában nem egy "szabványos" CSV, normál esetben így kellene, hogy az adatok szerepeljenek benne(arról nem is beszélve, hogy így könnyebb feldolgozni)
Nem is csodálom, hogy a jelenlegi CSV struktúrában nem működött a makró...Mérés ideje;Mérést végezte;Ügyiratszám;Hőmérséklet;Páratartalom;Gyártó;Típus;Gyáriszám;Minta száma
2010.11.22. 16:07:12;Gipsz Jakab;12345;23,1;45,1;valami;valami;QWERTZ123456;1
2010.11.22. 16:07:12;Gipsz Jakab;12345;23,1;45,1;valami;valami;QWERTZ123456;1
2010.11.22. 16:07:12;Gipsz Jakab;12345;23,1;45,1;valami;valami;QWERTZ123456;1
2010.11.22. 16:07:12;Gipsz Jakab;12345;23,1;45,1;valami;valami;QWERTZ123456;1Szóval ahogy látszik, az első sor a fejléc, (ami amúgy nem kötelező), aztán jönnek az adatok. Ilyen formátumra van lehetőség átalakítani?
(Bocs, ha látszólag ezek felesleges kérdésnek tűnnek, de hidd el, hogy a jó (és adott esetben egyszerű) kód alapját képezi...) -
válasz
lasarus1988 #1260 üzenetére
Sajnos csak 18.30-19.00 közt érek haza, de utána megnézem, addig is pár megjegyzést engedj meg, így "ránézésre"...
1. A Hőmérséklet esetén ponttal, míg Páratartalom esetén meg vesszővel vannak elválasztva a tizedesjegyek. Most akkor melyik?
2. Ez a kód ún. "old school code", azaz nálam biztosan el sem fog jutni a nálad problémás részig(W7 x64 és Office x64-et használok), mert pl a Dim ExcelApp As Excel.Application deklarációnál is már le fog akadni, de szinte biztos, hogy a Application.GetOpenFilename-re is hibát fog dobni, pl nincs ilyen metódus. Természetesen orvosolhatóak ezek a problémák...
3. InputData = Application.Windows(1).Sheets(1).Range("A1").Value
Cikluson belül ez az érték nem fog változni, akkor pedig a Case ágak közül is mindig ugyanazon fog végigfutni.4. Cells(I, 2)
Hogy kerültek az excelben egymás alá az adatok? Mert ugye ahogy a I ciklusváltozót növekszik úgy B1-től B10 cellákból szedi az adatot, ugye az meg egymás alatt van...5. Így ránézésre szerintem le lehet egyszerüsíteni a kódot, pl kivonjuk az "egyenletből" az Excel-t, simán a CSV fájlt fogjuk feldolgozni Word-ből, macro segítségével
6. Korábban írtad, hogy van x CSV fájl. Ebben a kódban ez nem jön ki, azaz 1 word doksit nyitsz meg és 2 darab CSV-t Excel-el.
Ha korábban jól értettem, akkor nem az lenne a feladat, hogy van 1 darab kész word doksid és ebbe az 1 word doksiba kellene több CSV fájlból könyvjelzőket beszúrni?
Vagy esetleg 1 adott word doksihoz csak 1 adott CSV tartozik?
Ha ez utóbbi akkor írd le, hogy milyen a párosítás pl
ubul.doc -> ubul.csv
geza.doc -> jeno.csv
stb stb -
válasz
lasarus1988 #1258 üzenetére
Most nem vagyok otthon, de ha beírod(vagy elküldesz a mailemre) egy ilyen CSV-t(nem kell, hogy az eredeti adatok legyenek benn, csak a felépítésében legyen azonos), akkor majd ránézek, ha hazaértem.
-
válasz
lasarus1988 #1256 üzenetére
Így már logikus, gondolom nem 1-2 darab csv fájlról van szó, bár bevallom azt nem tudom, hogy makróval hogy lehetne megadott könyvjelzőkhöz bepozicionálni...
-
válasz
lasarus1988 #1253 üzenetére
Nem értem a logikádat, mármint hogy minek word-be írsz makrót, miért nem Excelben, ha úgyis ott akarod megnyitni a CSV-ket?
Új hozzászólás Aktív témák
Hirdetés
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Formula-1
- Otthoni hálózat és internet megosztás
- Nyaralás topik
- EAFC 25
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Futás, futópályák
- Mibe tegyem a megtakarításaimat?
- Simbin topic (GTR, Race07, GTR Evolution, RaceRoom Racing Experience, stb.)
- További aktív témák...
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - NYÁRI AKCIÓ!
- ROBUX ÁRON ALUL - VÁSÁROLJ ROBLOX ROBUXOT MÉG MA, ELKÉPESZTŐ KEDVEZMÉNNYEL (Bármilyen platformra)
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- ÁRGARANCIA!Épített KomPhone Ryzen 5 4500 16/32/64GB RAM RX 6500 XT 4GB GAMER PC termékbeszámítással
- Azonnali készpénzes Apple Macbook Air felvásárlás személyesen / csomagküldéssel korrekt áron
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- Lenovo ThinkPad T14 3 Gen 16/256GB SSD, Újszerű, 1 Év Garanciával
- LG 77G4 - 77" OLED evo - 4K 144Hz 0.1ms - MLA - 3000 Nits - NVIDIA G-Sync - AMD FreeSync - HDMI 2.1
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest