Hirdetés
- Fire/SOUL/CD: INGYENES Clone és Backup-Restore alkalmazások tesztje [2024]
- Lalikiraly: Kinek milyen setupja van?
- hcl: Máté tíz pró
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Mr Dini: Mindent a StreamSharkról!
- sziku69: Fűzzük össze a szavakat :)
- SzDavid99: Van 20 perced? Akkor tanulj meg koreait olvasni!
- Luck Dragon: Asszociációs játék. :)
- Cseppino: Windows 11 25H2 frissítés – Újdonságok, AI-funkciók és rejtett beállítások.
- sziku69: Szólánc.
Hirdetés
(használd a CYBSEC25PH kuponkódot további 20 ezer ft kedvezményért!)
-
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
81lendo$ #19190 üzenetére
Hello,
Pár hasznosabb XlPasteType értékek:
1. xlPasteAll - mindent fog másolni, tehát képletek, számformátumok, egyéb cella formátumok, keretek, kommentek
2. xlPasteValuesAndNumberFormats - a cellákat értékként fogja másolni számformátummal együtt
3. xlPasteValues - a cellákat értékként másolja, minden mást kihagy
4. xlPasteFormulas - képleteket másol, minden mást kihagy
5. xlPasteFormats - formátum másolás, se értéket se képletet nem másolüdv.
-
Mutt
senior tag
válasz
81lendo$ #19166 üzenetére
Szia,
A makró és a VBA ugyanaz, esetleg ha megosztod a rögzített makrót, akkor tudunk rajta csiszolni.
- az osztály névből egy új munkafüzetet készít, hasonló névvel
Új füzetet a Workbooks.Add paranccsal tudsz nyitni, mentéskor tudod megadni a nevet neki.
Ha lapról lenne szó, akkor Worksheets.Add a parancs, és a Worksheet.Name = Cstr(Range("C3")) műxik.- az egész táblázatot bemásolja oda
Adat másolása a Copy Destination:=<cél> paranccsal megy. Ha formátumot is kell másolni, akkor pedig a PasteSpecial használandó.
A táblázatot pedig egyben ki tudod jelölteni, ha benne állsz a CurrentRegion-al.- és tölődjön az első oldalról a már kész osztály.
Törléshez pedig a Delete parancs kell.Itt egy minimalista megoldás:
Sub CopyClass()
Dim wb As Workbook
Dim fajlnev As String
If Range("C3") <> "" Then
'megjegyezzük hogy milyen névvel kell menteni, egy kicsit tisztítunk rajta
fajlnev = CStr(Trim(Range("C3")))
'másoljuk a táblázatot E5-től kezdve
Range("E5").CurrentRegion.Copy
'nyitunk egy fájlt
Set wb = Workbooks.Add
'első fülére első cellájába berakjuk formázva képletek nélkül
wb.Sheets(1).Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
'mentjük a fájlt
wb.SaveAs fajlnev
'bezárjuk a fájl
wb.Close
'töröljük az eredeti táblázatot
Range("E5").CurrentRegion.Delete xlShiftUp
'töröljük az osztály nevét
Range("C3").ClearContents
End If
End Subüdv.
-
Mutt
senior tag
válasz
81lendo$ #19113 üzenetére
Hello,
Itt megtalálod a módosított változatot. Nem csak a formátum másolás, de a munkalapra helyezett ActiveX vezérlőt változat is benne van.
A formátum másolása pedig általánosságban így oldható meg:
Range(masolando).Copy
Range(cel).PasteSpecial Paste:=<beillesztéstípusa>A beillesztés típusáról itt súgóban vagy itt lehet olvasni.
Tipikus példák:
xlPasteAll - minden formátumot másol (függvény, szám formátum, cella formátum, keret, komment stb).
xlPasteValuesAndNumberFormats - értéket és számformátumot másol, de mást nem
xlPasteValues - értékként fogja másolni a cella tartalmát, de mást nem hoz átüdv.
-
Mutt
senior tag
válasz
81lendo$ #19077 üzenetére
Szia,
...El tudnád küldeni, a kódját, az "ExportList" gombnak?
Nincs jelszavazva, Alt+F11-el te is megtudod nézni alaposan, a kód részlet pedig ez:Private Sub bExportList_Click()
Dim i As Integer
Dim vHits As Integer
Dim arryHits()
Dim wsCel As Workbook
'találatok száma
vHits = 0
'végigmegyünk a lista elemein
For i = 0 To lbList.ListCount - 1
'amely ki van jelölve azt egy találati tömbbe tesszük
If lbList.Selected(i) Then
'találatok számát növeljük
vHits = vHits + 1
'a találati tömböt átméretezzük hogy fogadja az új elemet
ReDim Preserve arryHits(1 To vHits)
'betöltjük az új elemet
arryHits(vHits) = lbList.List(i)
End If
Next i
If vHits Then
'új fájl létrehozása
Set wsCel = Workbooks.Add
wsCel.Sheets(1).Range("A1") = "Munkalap neve"
For i = 1 To vHits
'kért adatok kiiratása
wsCel.Sheets(1).Cells(i + 1, "A") = arryHits(i)
wsCel.Sheets(1).Cells(i + 1, "B") = ThisWorkbook.Sheets(arryHits(i)).Range("E2")
wsCel.Sheets(1).Cells(i + 1, "C") = ThisWorkbook.Sheets(arryHits(i)).Range("K27")
wsCel.Sheets(1).Cells(i + 1, "D") = ThisWorkbook.Sheets(arryHits(i)).Range("K28")
Next i
End If
'form bezárása
Unload Me
End Sub...- Ilyenkor amikor konkrét cellát viszel át egy másik fájlba, akkor fomátuma is átmegy. (pl.: pénznem [Forint], [Euro])?
A sima Copy nem viszi át VBA-ban, így nekem sem fogja a formázást másolni, de természetesen meg lehet csinálni (PasteSpecial).
...- Ugye én nem formon, hanem Munkalapon csináltam, de elvileg ott is működik ez a megoldás?
Ha ActiveX vezérlőket használsz a lapon, akkor műkődhet. A gond azonban, hogy ezek a vezérlők egymástől függetlenül fognak létezni, ezért globális változók kellenek az adatok cseréjéhez.üdv.
Új hozzászólás Aktív témák
- 365 NAPRA RÉSZLETRE BANKMNETES KAMATMENTES , GAMER PC ,LAPTOPOK , GAMER SZÉKEK , GAMER MONITOROK
- Olcsó Notebook! Dell Latitude E7280! I5 7300U / 8GB DDR4 / 256GB SSD!
- 8 GB GeForce RTX 3070 - garanciával
- LG 34GN850P-B - 34" Ívelt Nano IPS - 3440x1440 - 160Hz 1ms - G-Sync - FreeSync - HDR 400
- Xiaomi Redmi Pad Pro 256GB, Újszerű, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest