-
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
-
bteebi
veterán
Sziasztok!
Egy (nekem
) meglehetősen komplex problémám van. Innen-onnan összeszedtem egy kódot, aminek az lenne a feladata, hogy egy (vagy akár több) Excel file kiválasztása után a képleteket jelenítse meg a számolások helyett (működik), széthúzza a cellákat úgy, hogy minden látszódjon és megjelenítse a sor- és oszlopazonosítókat (ez is megy), és elmentse más néven a filet, mondjuk origi.xls helyett origi_mod.xls-ként. A file mentés része nem megy (nem úgy nevezi át, ahogy szeretném.). Ezután még az egész file-t elküldi a nyomtatóra. Ez is viszonylag jól működik, de nem tökéletes: ha xlDefault-nak adom meg a .Orientation-t, akkor hibaüzenettel (400-as hibakód) kilép, ha xlLandscape-nek, akkor lefut. Viszont nem feltétlenül Landscape kellene, mert lennének majd olyan file-ok, amiknél van Landscape/Portrait lap is. Mi lehet a gond?A kód:
Sub ellenorzes()
Dim ablak As FileDialog
Dim fajlnev As String
Set ablak = Application.FileDialog(msoFileDialogOpen)
Dim FileChosen As Integer
FileChosen = ablak.Show
ablak.Title = "Válaszd ki a file-t"
ablak.InitialFileName = "C:\"
ablak.InitialView = msoFileDialogViewList
ablak.Filters.Clear
ablak.Filters.Add "Excel 2003 worksheet", "*.xls"
ablak.Filters.Add "Excel 2010 worksheet", "*.xlsx"
ablak.Filters.Add "Excel makró", "*.xlsm"
ablak.FilterIndex = 1
If FileChosen = -1 Then
fajlnev = ablak.SelectedItems(1)
Workbooks.Open (fajlnev)
Else: Exit Sub
End If
Dim lap%
For lap% = 1 To Worksheets.Count
Sheets(lap%).Activate
ActiveWindow.DisplayFormulas = True
ActiveSheet.Columns("A:Z").EntireColumn.AutoFit
With ActiveSheet.PageSetup
.PrintHeadings = True
.PaperSize = xlPaperA4
.Orientation = xlLandscape
End With
Next
ActiveWorkbook.SaveAs FileName:=ActiveWorkbook.Name & "_mod"
If MsgBox("Kinyomtatja az összes munkalapot?", vbInformation + vbYesNo, "Munkalapok kinyomtatása") = vbYes Then
ActiveWorkbook.PrintOut
Else: Exit Sub
End If
End SubTovábbi problémák, észrevételek:
1. Első futáskor nem alkalmazza a szűrőket (.xls, .xlsx, kiindulási mappa). Másodjára már igen, még akkor is, ha csak elindítom a makrót, de nem választok ki file-t, tehát kilépek.
2. A file megnyitása párbeszédpanelnél hogy lehetne a Sajátgépet, vagy azt a mappát kiválasztani, amelyikben az adott file van (amiből a makró fut)?
3. Save as-nél probléma: a "_mod"-dal kiegészítve nem pont úgy írja át, ahogy szeretném: a filenév végéhez írja a "_mod"-ot, a kiterjesztés után. Ezt meg lehetne kerülni a kiterjesztést jelölő pont előtti/utáni részre való szűréssel. Ezt viszont egyrészt én nem tudnom megírni, ráadásul ha a filenévben is van pont, akkor a "legjobboldalibb" pont előtti/utáni részre kellene szűrni.
4. Nekem úgy lenne logikus, ha az "If FileChosen = 1" lenne, de úgy nem csinál semmit, csak a -1-re. A kód, ami alapján csináltam, így volt:
If FileChosen <> -1 Then
Else
fajlnev = ablak.SelectedItems(1)
Workbooks.Open (fajlnev)5. Ha meg van nyitva a módosítani kívánt file (pl. az előző makrófutás után nyitva maradt), és azt nem írom felül, akkor hibaüzenetet ad. (A kódot az ActiveWorkbook.SaveAs sor nélkül futtattam, mivel az nem működött.)
6. Hogy lehetne a "400" hibaüzenet okát kiíratni? Ilyet találtam, hogy
On Error GoTo Errorcatch
and at the end of the code put
exit sub
Errorcatch:
MsgBox Err.Description
De ezt sehogy se tudtam működésre bírni. Eleve ha Exit Sub-ot írtam a kód legvégére, akkor Compile Error van (End Sub-ot kér).
7. Hogy lehetne azt megoldani, hogy a file mentésénél is legyen egy párbeszédpanel, aminek a default mappája vagy egy általam megadott hely lenne (pl. C:\mod\), vagy pedig a) a makrót tartalmazó file útja, esetleg b) a módosítani kívánt file útja.
8. Hogy lehetne mindezt megcsinálni több file-lal egyszerre? Több file-t is ki lehet jelölni, de a makró csak egy file-on fut le.Bocsánat, kicsit hosszúra sikeredett
. Egyelőre itt tartok. Természetesen tovább próbálkozom majd a hibák kijavításával. Minden javaslatot, javítást nagyon köszönök! 
Új hozzászólás Aktív témák
- Borderlands 4
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- exHWSW - Értünk mindenhez IS
- balojazz: Szódakészítés üzembiztosan és olcsón! Figyelem, csak hardcore szódázóknak!
- EA Sports WRC '23
- Philips LCD és LED TV-k
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Milyen monitort vegyek?
- Eredeti játékok OFF topik
- Távol-keleti webshopok OFF topikja (játékok, kuponok, stb.)
- További aktív témák...
- MS SQL Server 2016, 2017, 2019
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Game Pass Ultimate előfizetések 1 - 36 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN! AKCIÓ!
- The Elder Scrolls Online Imperial Collector s Edition
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- HIBÁTLAN iPhone 13 Mini 256GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS4673
- ASUS Vivobook Pro 3K OLED 120Hz Notebook! Intel Ultra 7 155H / RTX 4050 / 16GB DDR5! BeszámítOK
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32/64GB RAM RTX 3050 6GB GAMER PC termékbeszámítással
- Bomba ár! HP Elite Dragonfly i7-8G I 16GB I 512SSD I 13,3" FHD Touch I Cam I W11 I Garancia!
- Telefon felváráslás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
) meglehetősen komplex problémám van. Innen-onnan összeszedtem egy kódot, aminek az lenne a feladata, hogy egy (vagy akár több) Excel file kiválasztása után a képleteket jelenítse meg a számolások helyett (működik), széthúzza a cellákat úgy, hogy minden látszódjon és megjelenítse a sor- és oszlopazonosítókat (ez is megy), és elmentse más néven a filet, mondjuk origi.xls helyett origi_mod.xls-ként. A file mentés része nem megy (nem úgy nevezi át, ahogy szeretném.). Ezután még az egész file-t elküldi a nyomtatóra. Ez is viszonylag jól működik, de nem tökéletes: ha xlDefault-nak adom meg a .Orientation-t, akkor hibaüzenettel (400-as hibakód) kilép, ha xlLandscape-nek, akkor lefut. Viszont nem feltétlenül Landscape kellene, mert lennének majd olyan file-ok, amiknél van Landscape/Portrait lap is. Mi lehet a gond?
. Egyelőre itt tartok. Természetesen tovább próbálkozom majd a hibák kijavításával. Minden javaslatot, javítást nagyon köszönök! 
Fferi50