Hirdetés
- Háremet tartana az adattárolókból a Chieftec letisztult dizájnú háza
- Zsebre vágható Keychron billentyűzet a gyakran úton lévőknek
- Formálisan, de hivatalosan bejelentette a Clearwater Forestet az Intel
- Gyorsjavítást kapott a visszavont, majd újra kiadott GeForce driver
- Ilyen olcsó sem volt még egy Apple notebook
- Háremet tartana az adattárolókból a Chieftec letisztult dizájnú háza
- Apple MacBook
- Gyorsjavítást kapott a visszavont, majd újra kiadott GeForce driver
- Hozd azt a cementet, báttya! Készül a Keychron billentyűzet!
- Ilyen olcsó sem volt még egy Apple notebook
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Az eddigi legolcsóbb, 3D V-Cache-t használó CPU-ját hozta forgalomba az AMD
- Milyen belső merevlemezt vegyek?
- Vezeték nélküli fejhallgatók
- Milyen billentyűzetet vegyek?
Új hozzászólás Aktív témák
-
Delila_1
veterán
válasz
prodrakan
#2914
üzenetére
A makrót írd át.
Sub Parosit()
Dim usor As Long, sor As Long, utvonal As String
Dim WB1 As Workbook, WB2 As Workbook, WB3 As Workbook
Dim WF As WorksheetFunction, TalalSor As Long
Dim kezd As Long, vegez As Long
Set WB1 = Workbooks("Excel1.xlsm")
Set WF = Application.WorksheetFunction
utvonal = "F:\Eadat\Excel fórumok\PH\"
kezd = Application.InputBox("Add meg a kezdő hét sorszámát", "Kezdő hét", , , , , , 1)
vegez = Application.InputBox("Add meg a záró hét sorszámát", "Záró hét", , , , , , 1)
kezd = WF.Match(kezd, Columns(2), 0)
vegez = WF.Match(vegez, Columns(2), 1)
Application.StatusBar = "Nyugi, dolgozom"
Application.ScreenUpdating = False
usor = WB1.Sheets("Munka1").Range("A" & Rows.Count).End(xlUp).Row
'Excel2-ből I oszlop az Excel1 G-be
Workbooks.Open Filename:=utvonal & "Excel2.xlsx"
Set WB2 = Workbooks("Excel2.xlsx")
WB1.Activate
For sor = kezd To vegez
If Cells(sor, "G") = "" And Cells(sor, "A") <> "" Then
TalalSor = WF.Match(Cells(sor, "A"), WB2.Sheets("Munka1").Columns(1), 0)
Cells(sor, "G") = WB2.Sheets("Munka1").Cells(TalalSor, "I")
End If
If Cells(sor, "J") = "" And Cells(sor, "A") <> "" Then
TalalSor = WF.Match(Cells(sor, "A"), WB2.Sheets("Munka1").Columns(1), 0)
Cells(sor, "J") = WB2.Sheets("Munka1").Cells(TalalSor, "J")
End If
Next
WB2.Close False
'Excel3-ból I oszlop az Excel1 K-ba
Workbooks.Open Filename:=utvonal & "Excel3.xlsx"
Set WB3 = Workbooks("Excel3.xlsx")
WB1.Activate
For sor = kezd To vegez
If Cells(sor, "K") = "" And Cells(sor, "A") <> "" Then
TalalSor = WF.Match(Cells(sor, "A"), WB3.Sheets("Munka1").Columns(1), 0)
Cells(sor, "K") = WB3.Sheets("Munka1").Cells(TalalSor, "I")
End If
Next
WB3.Close False
Application.StatusBar = False
Application.ScreenUpdating = True
End Sub -
Delila_1
veterán
válasz
prodrakan
#2912
üzenetére
Annál a módszernél, amit írtál (első üres sortól kezdje bemásolni a másik 2 fájlból az adatokat), túl sok a hibalehetőség. Most megírtam úgy, hogy az első adattól, a 4. sortól fusson végig egy For-Next ciklussal addig a sorig, ahol az A oszlopban megtalálja az utolsó adatot.
Az útvonal értékét a makró 10. sorában kell átírni, és esetlegesen új értéket adni neki a 36. sor előtt.
-
Delila_1
veterán
válasz
prodrakan
#2908
üzenetére
Feltettem az újabb verzió-t.
-
Delila_1
veterán
válasz
prodrakan
#2906
üzenetére
Beírtam a makróba, hogy amíg dolgozik, a státuszsorban megjelenik a "Nyugi, dolgozom" szöveg. Kevés adatnál nem látszik, olyan gyorsan eltűnik.
Pontosítanod kellene, melyik oszlopot akarod még figyeltetni, mit figyeljen a makró, és mit tegyen.
Sub Kikeres()
Dim UresSor As Long, WSInnen As Worksheet, WSIde As Worksheet
Dim TalalSor, usor As Long, WF As WorksheetFunction
Set WSInnen = Workbooks("Excel2.xlsx").Sheets("Munka1")
Set WSIde = Workbooks("Excel1.xlsm").Sheets("Munka1")
Set WF = Application.WorksheetFunction
WSIde.Activate
Application.StatusBar = "Nyugi, dolgozom"
Application.ScreenUpdating = False
usor = Range("G" & Rows.Count).End(xlUp).Row
Do
UresSor = Range("G" & usor).End(xlUp).Row - 1
If UresSor < 3 Then
Application.StatusBar = False
Application.ScreenUpdating = True
Exit Sub
End If
If Cells(UresSor, "A") <> "" Then
On Error Resume Next
TalalSor = WF.Match(Cells(UresSor, "A"), WSInnen.Columns(1), 0)
Cells(UresSor, "G") = WSInnen.Cells(TalalSor, "I")
On Error GoTo 0
Else: usor = UresSor - 1
End If
Loop Until Cells(UresSor, "A") <> "" And Cells(UresSor, "G") = ""
End Sub -
-
Delila_1
veterán
válasz
prodrakan
#2900
üzenetére
Próbáld ezzel:
Sub IndexFuggveny()
Dim UresSor As Long
UresSor = Range("K1").End(xlDown).Row + 1
Do
If Cells(UresSor, "A") = "" Then UresSor = UresSor + 1
Loop Until Cells(UresSor, "A") <> "" And Cells(UresSor, "K") = ""
Range("C" & UresSor & ":C5000") = "=INDEX('\\Hubudr99102dat\mf\MF3\" _
& "FEMSZERK_TERMELES\Fémszerkezet\2015.08.01_Komponens_és_szekrény_gyártás\" _
& "Tervező\2017\[Tervező_2017.xlsm]Planner'!$I$" & UresSor & ":$I$5000;HOL.VAN(A" & UresSor & "," _
& "'\\Hubudr99102dat\mf\MF3\FEMSZERK_TERMELES\Fémszerkezet\2015.08.01_Komponens_és_szekrény_gyártás\" _
& "Tervező\2017\[Tervező_2017.xlsm]Planner'!$A$" & UresSor & ":$A$5000,0))"
End SubA Range("K1").End(xlDown).Row a K1 cellán nyomott Ctrl+le művelet VBA-s megfelelője. Ez az első, üres cella fölötti sor értékét adja meg. 1-et hozzáadva megkapjuk az első üres cella sorát a K oszlopban.
Ha ez a sor az A oszlopban üres, addig növeljük a sorszámot, míg igaz nem lesz, hogy a K üres, az A nem.
Ide, ill. innen az ötezredik sorba írjuk be (nálam a C oszlopba, te majd átírod) a hosszú képletedet, egy lépésben.
Új hozzászólás Aktív témák
- Háremet tartana az adattárolókból a Chieftec letisztult dizájnú háza
- Fotók, videók mobillal
- PlayStation 3
- SUSE Linux
- One otthoni szolgáltatások (TV, internet, telefon)
- Apple MacBook
- BestBuy topik
- Gyúrósok ide!
- Samsung Galaxy Felhasználók OFF topicja
- Szívós, szép és kitartó az új OnePlus óra
- További aktív témák...
- PNY RTX 5080 16GB GDDR7 Triple Fan OC - Garis 2028.10.01. -ig - Eladó!
- appletv 4k , 32gb , hibatlan, dobozaban, csak március 14ig!!
- MSI GTX 1660 SUPER 6GB GDDR6 VENTUS XS OC Eladó!
- MacSzerez.com - iPhone 15 Pro / 128GB / Fehér Titán / Kártyafüggetlen / Garancia!
- Samsung Odyssey G9 LC49G95TSSRXEN - 5120 x 1440 - 240Hz
- HP ZBOOK Firefly 16 G10 /i7-1355U/16GB/1 TB SSD/FHD+/IPS/NVIDIA 4 GB Magyar bill
- HP EliteBook 855 G7 15,6" Ryzen 5 PRO 4650U, 16GB RAM, 256GB SSD, jó akku, számla, 6 hó gar
- Azonnali készpénzes AMD Radeon RX 7000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- Kihagyhatatlan ajánlat! Lenovo ThinkPad P14s Gen 5 Ultra 7 165H (vPro) 32gb DDR5 ram RTX500 ADA 3K
- Apple iPad 5. generáció (A1822) 128GB, asztroszürke
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

