Hirdetés
- Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Android másképp: Lineage OS és társai
- Öregszem
- Milyen mosógépet vegyek?
- Nagy "hülyétkapokazapróktól" topik
- Lineage OS használat közben
- Asszociációs játék. :)
- Fűzzük össze a szavakat :)
- Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- eBay-es kütyük kis pénzért
-
LOGOUT.hu
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
-
Grodd
tag
válasz butch3r #30300 üzenetére
Szia, ez nem olyan kompex, mint ahogy gondolod, valójában egy igen szimpla lekérdezés, pár egérkattintás az egész
Többféleképpen meg lehet oldani, de a makró az az eszköz, ami nekem utoljára eszembe jutna)
Más eszközökkel sokkal egyszerűbb.
A két leginkább alkalmas a Microsoft Query vagy a PowerQuery.Utóbbi kulturáltabb, de vagy Excel 2016 kell hozzá, vagy Office 365, vagy Excel 2010-2013 mellé PowerQuery add-in (ingyenesen tölrthető a Microsoft oldaláról)
Microsoft Query-ben egy pár egérkattintással több, és ha teljesen rugalmasra és automatizáltra akarod csinálni, akkor igényelni fog egy VBA sort is (PQuery-hez annyi sem kell).Persze megondható makróban is, nem nagy kunszt, ha feltétlenül ahhoz ragaszkodsz hozzá, de miért akarjunk fúróval szöget verni ?
Oszdd meg valahol a filet, és megcsinálom mindkét módon.
-
sztanozs
veterán
válasz butch3r #30300 üzenetére
Public Sub ttt()
Dim r1 As Range
Set r1 = Application.Intersect(Workbooks("Book1").Sheets("Sheet1").Range("B25:D65535"), Workbooks("Book1").Sheets("Sheet1").UsedRange)
Dim v1
v1 = r1.Value2
Dim r2 As Range
Set r2 = Application.Intersect(Workbooks("Book2").Sheets("Sheet1").Range("B25:D65535"), Workbooks("Book2").Sheets("Sheet1").UsedRange)
Dim v2
v2 = r2.Value2
Dim oldbound, newbound
oldbound = UBound(v1, 1)
newbound = oldbound + UBound(v2, 1)
Dim v_cel()
ReDim Preserve v_cel(1 To newbound, 1 To 3)
Dim ix, iy
For ix = 1 To UBound(v1, 1)
For iy = 1 To 3
v_cel(ix, iy) = v1(ix, iy)
Next
Next
For ix = 1 To UBound(v2, 1)
For iy = 1 To 3
v_cel(oldbound + ix, iy) = v2(ix, iy)
Next
Next
Dim r_cel As Range
Dim kezdosor
kezdosor = 10
Set r_cel = Workbooks("Book1").Sheets("Sheet2").Range("B" & kezdosor & ":D" & kezdosor + UBound(v1, 1) - 1)
r_cel.Value2 = v1
End SubJOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
sztanozs
veterán
válasz butch3r #30305 üzenetére
Ha debugerrel megállítod (F9 - brakepoint) az utolsó soron (v2 = r2.Value2) akkor visszaad valamit a range-re (Locals ablak - View > Locals Window)?
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
sztanozs
veterán
válasz butch3r #30307 üzenetére
Igen, úgy tűnik valami nincs rendben a sheet-tel, mert a függvény alapján fel kellene vennie a 25-65535 sorban levő adatokat (pontosabban kiválasztani a kitöltött range-et). Biztos jó a workbook és a worksheet neve?
Csak akkor lesz Nothing, ha nincs ott semmi adat.
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Delila_1
veterán
válasz butch3r #32330 üzenetére
Konvertálhatod a diagramjaidat pl. gif-be, majd beilleszted azokat a bemutatódba a kedved szerinti helyre. A gif-ek szélessége és magassága megegyezik a diagramok méreteivel.
Sub Diagram_Konvertalas()
Dim szamlalo As Integer, x As Integer, diagram As Object
For x = 1 To ActiveSheet.ChartObjects.Count
ActiveSheet.ChartObjects(x).Activate
Set diagram = Selection.Chart
diagram.Export Filename:=ThisWorkbook.Path & "\" & _
"Diagram " & szamlalo + 1 & ".gif", FilterName:="gif"
szamlalo = szamlalo + 1
Next
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
veterán
-
Pakliman
tag
válasz butch3r #33016 üzenetére
Szia!
Sajnos már én is jártam így
Milliószor töröltem a sorokat, mentés, megnyitás, és az excel még mindig baromi sok sort "érzékel"
A megoldás az volt, hogy új munkalap vagy munkafüzet létrehoz, szükséges adatokat tartalmazó terület kijelöl, újba átmásol, ment, régi kidob ÉS -
Delila_1
veterán
válasz butch3r #34279 üzenetére
Makró nélkül is egyszerűen elvégezheted.
Egy üres cellába írsz egy 1-est, másolod Ctrl+c-vel. Kijelölöd a J8:J800 tartományt, irányított beillesztés, szorzás. Az egyest törölheted.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
veterán
válasz butch3r #34283 üzenetére
Modulba:
Sub szamma()
Range("BB8:BB800") = "=J8*1"
Range("BB8:BB800").Copy
Range("J8").PasteSpecial xlPasteValues
Range("BB8:BB800").ClearContents
End SubRendelheted egy gombhoz, vagy a laphoz rendelt eseménykezelő makróba másolhatod – kicsit átalakítva.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
DeFranco
nagyúr
-
0P1
aktív tag
válasz butch3r #34962 üzenetére
Pedig általában a 64 bit szokott megoldás lenni ilyesmire.
Ha egy bizonyos fülről akarod beszedni mindegyik workbbokból, akkor felesleges beolvasnod az összes munkafüzet összes munkalapját. Érdemes egy UDF-et csinálnod rá. Este vagy holnap reggel írok rá instrukciót, hogyan kell.
-
Fferi50
Topikgazda
válasz butch3r #35341 üzenetére
Szia!
Itt van egy megoldási javaslat:
=SUM(INDEX(AB1:AY10;MATCH(A2;A1:A10;0);MATCH(AS1;AB1:AY1;0)):INDEX(AB1:AY10;MATCH(A2;A1:A10;0);MATCH(AU1;AB1:AY1;0)))
Dátumok az AB1:AY1, adatok az AB2:AY10, azonosítók az A1:A10 területen. Próbáld adaptálni a sajátodhoz. (Ne zavarjon meg, hogy a keresendő értékeket a területekben levő cellákból vettem - lustaság az oka - , természetesen máshol választhatók.)
Az INDEX függvény ilyenkor Hivatkozásokat ad vissza a SZUM függvénynek! - lásd kettőspont a két INDEX függvény között.
Az első index eredménye a kezdő dátumhoz tartozó olyan cella, amelyik az azonosító sorában van, a második index eredménye a befejező dátumhoz tartozó hasonló cella. A kettő között összegez a SUM.
Egy kritérium: A dátumoknak a dátumot tartalmazó sorban rendezettnek kell lenniük. (Nem a MATCH miatt, az megeszi ebben az esetben, hanem azért, hogy nehogy kilógjon valamelyik dátum a kezdő és végső dátumból.)
Remélem sikerülni fog.
Üdv.
-
Fferi50
Topikgazda
válasz butch3r #36071 üzenetére
Szia!
Nekem úgy sikerült, hogy az adott series pontjain végigmenve írtam át az értékeket. Azaz minden sorozat minden pontján végig kell menni ciklussal, egy lépésben nem sikerült, legalábbis nekem nem.
Dim sr As Series, pt As Point, labelrange As Range, xx As Integer
For Each sr In Charts(1).SeriesCollection
Set labelrange = Sheets("Sheet1").Range("A1:X1")
For xx = 1 To sr.Points.Count
sr.Points(xx).DatalLabel.Text = labelrange.Cells(xx).Value 'itt kapja meg a pont a cella értékét.
Next
Next
Üdv. -
-
Fferi50
Topikgazda
válasz butch3r #39157 üzenetére
Szia!
Ha csak az elrejtett fülön van pivot, akkor így módosítsd:
Sub ertekado()
Dim sh As Worksheet, sr As Integer
For Each sh In Worksheets
If sh.Visible=xlSheetVisible Then
For sr = 7 To 123 Step 4
sh.Range("C" & sr & ":N" & sr).Value = sh.Range("C" & sr & ":N" & sr).Value
Next
End If
Next
End Sub
Ha máshol is lehet, akkorIf sh.Pivottables.Count = 0 Then 'legyen a feltételben a For Each után
Ha viszont csak az aktuális munkalapon szeretnéd alkalmazni, akkor csak a Dim és a For ...Next ciklust hagyd benne, a többit kommenteld ki (aposztróf ' a sor elejére)Üdv.
-
Fferi50
Topikgazda
válasz butch3r #39157 üzenetére
Szia!
Egy munkalaphoz így módosítsd:
Sub ertekado()
Dim sh As Worksheet, sr As Integer
'For Each sh In Worksheets
For sr = 7 To 123 Step 4
sh.Range("C" & sr & ":N" & sr).Value = sh.Range("C" & sr & ":N" & sr).Value
Next
'Next
End Sub
Ha csak elrejtett lapon van pivot, akkorSub ertekado()
Dim sh As Worksheet, sr As Integer
For Each sh In Worksheets
If sh,Visible=xlsheetVisible then
For sr = 7 To 123 Step 4
sh.Range("C" & sr & ":N" & sr).Value = sh.Range("C" & sr & ":N" & sr).Value
Next
End If
Next
End Sub
Ha máshol is lehet, akkor a feltétel a For Each után:If sh.Pivottables.Count >0 Then
Üdv.
-
ny.janos
tag
Új hozzászólás Aktív témák
Hirdetés
- EA Sports WRC '23
- Crypto Trade
- Filmvilág
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Milyen TV-t vegyek?
- Az USA is versenyellenesség miatt készül vizsgálni a Microsoft felhőjét
- BMW topik
- Apple notebookok
- Rendkívül ütőképesnek tűnik az újragondolt Apple tv
- BestBuy topik
- További aktív témák...
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Game Pass Ultimate előfizetések 1 - 19 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN! AKCIÓ!
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- AMD Game Bundle: Warhammer 40,000: Space Marine 2 és Unknown 9: Awakening - LEGOLCSÓBB!
- Windows 10/11 Home/Pro , Office OEM/Retail kulcsok
Állásajánlatok
Cég: HC Pointer Kft.
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest