-
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
-
Delila_1
Topikgazda
válasz bucihost #34035 üzenetére
A makrót egy modulba másold be.
Sub Zene_bona()
Dim sor As Long, usor As Long, db As Long, j As Long
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = usor To 1 Step -1
db = Cells(sor, 2)
For j = 1 To db - 1
Rows(sor).EntireRow.Insert
Next
Range("A" & sor & ":A" & sor + db - 2) = Cells(sor + db - 1, 1)
Next
End SubSzerk.:
Az End Sub fölé betehetsz egy sortColumns(2).ClearContents
ami a B oszlop számait törli.
[ Szerkesztve ]
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
Topikgazda
-
Delila_1
Topikgazda
válasz bucihost #41787 üzenetére
Nem lehet.
Ne vond össze a cellákat! Az AAA és BBB tétel mellé is írd be a Csomag1 nevet, akkor a szűrés mindkettőt felhozza.
Többször volt már itt a fórumon szó arról, hogy bár megengedi az Excel a cellák összevonását, de többnyire nem tudja úgy kezelni, ahogy szeretnénk.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
spe88
senior tag
válasz bucihost #41787 üzenetére
Ebbe sajnos belefut mindenki.
Ha a csomag tartalmára nem akarsz szűrni soha, akkor egy cellába Alt-Enterrel megoldható a felsorolás.
Ha akarsz szűrni az előbbire, akkor meg csinálsz egy "fals" oszlopot, ahol nem vonod össze a cellákat és összehúzod kicsire, hogy csak a szűrőgomb látsszon. Ha más is használja a munkalapot erre, akkor ez nem nagyon opció.
Nyilván tisztában vagy ezekkel, csak mint lehetséges megoldásként írtam le, hátha nem jut épp eszedbe. Nem valami elegáns egyik sem, de ahogy írták sajnos ezt az Excel még nem tudja kezelni.
[ Szerkesztve ]
Spóroljunk! Kerül, amibe kerül!
-
Fferi50
őstag
válasz bucihost #41790 üzenetére
Szia!
Az INDIREKT függvény jó lehet erre, de ebben az esetben az egész cím legyen a függvény paraméterében, ne csak a fájl neve. Külső hivatkozásnál a hivatkozott fájlnak/munkafüzetnek nyitva kell lennie - ezért nem kell az elérési út, elég a fájl neve.
Kb. így:
$C$1 értéke:''[bolt1.xlsx]Termékek 19.09.11'!$A:$N
=HAHIBA(FKERES($A2;INDIREKT($C$1);5;0);"")
Persze a C oszlopba írhatod tovább a fájlneveket, akkor a sor legyen relatív hivatkozás, hogy a képletet húzhasd lefelé.
Sajnos, amennyiben a hivatkozott fájlt bezárod, akkor a következő újraszámoláskor #HIV! hibaüzenet lesz az eredmény (újranyitva frissül a jóra).
A probléma csak makróval kerülhető meg, amelyik a megfelelő cellákba direktben beírja a hivatkozott fájl nevét - ami persze lehet egy cellában is.Range("A1").Formula="=IFERROR(VLOOKUP($A2," & Range("$C1").Value & ",1,0),"""")
Beírja a képletet - indirekt nélkül - az A1 cellába. Viszont a C1 cella átírása után futtatnod kell a makrót ismét.Más: Nagyon nem javaslom teljes oszlopok-sorok használatát a képletekben (ne feledd a legutolsó verzióban milliós nagyságrendű a sorok száma), mert az lelassítja, esetleg le is fagyasztja az Excelt, mert a sok üres cellát is "számbaveszi".
Helyette egy olyan konkrét tartományt célszerű beírni, ami nagy eséllyel elég lesz a jövőben keletkező adatok számára is.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz bucihost #41793 üzenetére
Szia!
Azt hiszem, erre már szinte kivétel nélkül mindenki azt mondaná, hogy nem Excelt, hanem adatbáziskezelőt kell használni. De mivel tudom, hogy a 2 programot nem lehet lecserélni (?)
ezért mást kellene kitalálni.
Ha az office-on belül lenne Access programod, akkor a legegyszerűbben be lehetne olvasni az Excel fájlokat az Accessbe és utána minden gond nélkül lehet belőle riportokat lehúzni.
Valószínűleg kellene az Accessben is némi tervezési munka és pár makró rögzítése a frissítésekhez.
Ha ez nincs, akkor marad az Excel. Itt nem függvényeket javasolnék alapból, hanem lekérdezéseket az Excel fájlokból, amelyek utána könnyebben és dinamikusabban frissíthetőek, makró nélkül is.
Szerintem nézd meg és próbáld ki az Adatok - Új lekérdezések - Fájlból - Munkafüzetből menüpontban elérhető Lekérdezés szerkesztőt.
Ha bármilyen gondod akad vele, légy szíves keress priviben.Üdv.
-
Mutt
aktív tag
válasz bucihost #41844 üzenetére
Szia,
Ha Excel 2010 vagy frissebbed van, akkor javaslom a Power Query-t azon belül Append Queries kell majd.
Youtubeon elég sok video van ebben a témában, kezdésnek.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Delila_1
Topikgazda
válasz bucihost #41951 üzenetére
A leírt képletet be kell ágyaznod egy HAHIBA függvénybe, ahol hiba esetén a vonalkód szerint kerestetsz. Ehhez már nem lesz jó az FKERES függvény, mert az utolsó oszlop tartalmazza a vonalkódot, helyette az INDEX-HOL.VAN párost alkalmazhatod.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
-
Fferi50
őstag
válasz bucihost #42012 üzenetére
Szia!
Az FKERES függvény 4. paraméterét ha IGAZ-ra állítod, akkor alkalmas arra, hogy táblázatban keressen, ehhez emelkedő sorrendbe kell rendezni a táblázatot - és még szöveges keresésben is működik.
Az előző hsz-ban levő példához a táblázat és a képlet:
Ez biztosan működik minden verzióban, mert a függvény is régi már.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz bucihost #42014 üzenetére
Szia!
Ezt találtam ki, nézd meg, hogy működőképes-e nálatok:
A táblázat első oszlopa tartalmazza a 2 órás határt - ezt még jobban lehet finomítani 2,00001 -re akár - a további 3 oszlop az egyes műszakokhoz tartozó műszakpótlékot.
Persze itt még a 7vége nincs benne, de szerintem az is megoldható (pl ha hétvége, akkor a + 3 oszlop tartalmazza azt a pótlékot és a G oszlopban levő értékhez nem 1, hanem 4 a hozzáadás).
(Nem mellesleg, így csak a szorzószámokat kell esetleg változtatni, nem kell átírni az összes képletet.)Üdv.
[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz bucihost #42162 üzenetére
Ha a png fájlok neve megegyezik a cikkszámokéval, a
=HIPERHIVATKOZÁS("C:\Users\xy\Desktop\" & B1 & ".png";B1 )
képletet írd be egy üres oszlopba. Ezt másolhatod lefelé. Természetesen a saját útvonalad szerepeljen az idézőjelek között.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
bucihost
senior tag
válasz bucihost #42167 üzenetére
Találtam egy macrot, ami jó lenne. Viszont ha nem talál képet, akkor "lehal" a macro.
Mit kellene hozzá írni, hogy ha nem talál képet akkor tovább lépjen vagy egy általam definiált képet rakjon oda? (egy nagy piros X)Sub PlacePics()
Dim Path As String, Pics As Range, Pic As Range
Path = "C:\Users\branyiczkif\Desktop\AjanlatKepek\kepek\"
Set Pics = ActiveSheet.Range("B2:B20")
For Each Pic In Pics
Pic.Offset(0, -1).Select
ActiveSheet.Pictures.Insert(Path & Pic.Value & ".png").Select
Next Pic
End Sub -
Delila_1
Topikgazda
válasz bucihost #42170 üzenetére
Másik megoldás, hogy a "nagy piros x kép" ne növelje a fájl méretét.
A két, csillagokkal jelölt sor a kép méretét határozza meg. A 0.4-et írd át kedved szerint. Ki is hagyható ez a két sor.Sub PlacePics()
Dim Path As String, Pics As Range, Pic As Range
Path = "C:\Users\branyiczkif\Desktop\AjanlatKepek\kepek\"
Set Pics = ActiveSheet.Range("B2:B20")
For Each Pic In Pics
Pic.Offset(0, -1).Select
On Error Resume Next
ActiveSheet.Pictures.Insert(Path & Pic.Value & ".png").Select
Selection.ShapeRange.ScaleWidth 0.4, msoFalse, msoScaleFromTopLeft '***
Selection.ShapeRange.ScaleHeight 0.4, msoFalse, msoScaleFromTopLeft '***
If VarType(Selection.ShapeRange) = vbError Then
Pic.Offset(0, -1).Value = "X"
Pic.Offset(0, -1).Font.ColorIndex = 3
On Error GoTo 0
End If
Next Pic
End Sub
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz bucihost #42194 üzenetére
Szia!
Mit csinálna a fájl a másik helyen?
Ha a makróval szeretnéd a képeket másik helyen berakni, akkor természetesen nem fogja ott megtalálni azokat.
A beágyazott képeknek elvileg benne kellene lenniük a fájlban (ezért írta Delila, hogy az X kép helyett jelet tegyél a cellába), méret növekedés megmutatja ezt.
Ahhoz, hogy a képek megjelenjenek nem kell újra betölteni azokat.
Üdv. -
Fferi50
őstag
válasz bucihost #42199 üzenetére
Szia!
Sajnos MS úgy intézte, hogy a felvett makró ne legyen az igazi. Ma már másként kell a képeket beilleszteni...
Ezt ókumuláltuk ki Delilával:Sub PlacePics()
Dim Path As String, Pics As Range, Pic As Range, pc As Object
On Error Resume Next
Path = "C:\Users\branyiczkif\Desktop\AjanlatKepek\kepek\"
Set Pics = ActiveSheet.Range("B2:B20")
For Each Pic In Pics
Pic.Offset(0, -1).Select
ActiveSheet.Shapes.AddPicture Filename:=Path & Pic.Value & ".png", linktofile:=msoFalse, saveWithdocument:=msoTrue, Left:=Pic.Offset(0, -1).Left, Top:=Pic.Top, Width:=50, Height:=60
If Pic.Value = "" Or Err <> 0 Then
Pic.Offset(0, -1).Value = "X"
Pic.Offset(0, -1).Font.ColorIndex = 3
Else
Pic.RowHeight = 60
End If
Next
Cells(1).Select
End Sub
Üdv.
-
ny.janos
tag
válasz bucihost #42523 üzenetére
Szia!
Ha jól értem azt, hogy a 2-es tábládban egy adott cellában bár több EAN kód is szerepel egymás mellett, de azok valójában ugyanazt a terméket takarják és külön-külön bármelyik kód megtalálható az 1-es táblában a hozzá tartozó cikkszámmal együtt, akkor (feltételezve, hogy az 1-es tábládban az EAN kódok szövegként vannak formázva) a 2-es tábládban az
=FKERES(BAL(A2;13);Munka1!$A$2:$B$5;2;0)
képletet használhatod, ahol:
- A2 az EAN kódot (kódokat) tartalmazza, melyek hossza 13 karakter
- az EAN kódokat és cikkszámokat tartalmazó felsorolás a Munka1 munkalap A és B oszlopaiban található, melyekből az A oszlop tartalmazza az EAN kódokat, B a cikkszámokat. -
ny.janos
tag
válasz bucihost #42523 üzenetére
Esetleg tartalmazhat hasznos információt számodra ez a leírás.
-
Delila_1
Topikgazda
válasz bucihost #43407 üzenetére
Találomra egy linkről letöltöttem, ezt a makrót kaptam:
Sub Rögzítés1()
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://menetrend.derke.hu/?getlines=23,1", Destination:=Range("A1"))
.Name = "?getlines=23,1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
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.
-
Fferi50
őstag
válasz bucihost #43445 üzenetére
Szia!
(humor, ha nem értékeled, akkor ugorj tovább: van még ötletem, mint a rabbinak a libák pusztulása idején )
Azt javaslom, csinálj egy makrórögzítést egy új tábla létrehozásával. Abban benne kell lennie, hogyan hozza létre a kapcsolatot. Ha a rögzített makrót felteszed ide, akkor kisilabizáljuk, hogyan tudnád beletenni makróval történő változtatást.
Üdv. -
Fferi50
őstag
válasz bucihost #43454 üzenetére
Szia!
Akkor ez egy PowerQuery lekérdezés... (Lehet, hogy írtad valahol, bocs ha így volt).
A Formula tulajdonságát kell megváltoztatnod:ActiveWorkbook.Queries("Lekérdezés1"). Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Forrás = MySQL.Database(""X.X.X.X"", ""dbname"", [ReturnSingleDatabase=true, Query=""SELECT#(lf)SUM(MENNYS * EGYSAR) AS ERTEK,#(lf)DATUM,#(lf)SID#(lf)#(lf)FROM tabla#(lf)WHERE DATUM between '2020-03-30' AND '2020-03-30'#(lf)GROUP BY DATUM, SID;""])" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " Forrás"
A két dátum helyére & -al összefűzve írhatod a két cella értékét:...between '" & Range("X1").Value & "' AND '" & Range("Y1").Value & ""# stb...
Arra ügyelj, lehet hogy a dátumot alakítanod kell, hogy megfelelő legyen a formátuma.
Ellenőrizheted, ha az immediate ablakba beírod:
Debug.Print Activeworkbook.Queries("Lekérdezés1").Formula és Entert nyomsz.
Az Activeworkbook helyett írhatod természetesen a konkrét nevesített Workbook objektumot is.
Üdv. -
eszgé100
őstag
válasz bucihost #44571 üzenetére
esetleg a lekereseket betehetned egy ciklusba, ahol minden ciklus vegen var 2-3 masodpercet, mieleott elinditja a kovetkezot. Aztan finomhangolhatod is, hogy pl ne minden lekeres kozott varjon, hanem mondjuk minden 5.-nel
"-Meddig tart a játék? -Amíg mindenkinek ki nem verik a fogát..."
Új hozzászólás Aktív témák
- Steam, Windows, Origin kulcsok, előfizetések közvetlenül a kiadótól, a LEGJOBB ÁRON!
- World of Warcraft Shadowlands Collectors edition EU EN
- Eredeti Windows, telepítéssel! Digital Doctor Számítógép Szerviz
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! LEGOLCSÓBB! Automatikus 0-24