-
IT café
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
-
sajog159
aktív tag
Az OTP-től exportált expoort.xls fájlban a dátum az alábbi alakban jelenik meg: „2016.08.01.”
A végén lévő pont miatt csak kissé bonyolult módon tudom dátumot „varázsolni”.
Az alábbi kép mutatja a műveleteket:Örülnék, ha valaki egyszerűbb megoldást javasolna. (nem tudom, fontos e, Excel 2013-t használom)
Előre is köszönöm.
[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz sajog159 #32301 üzenetére
Jelöld ki a tartományt, majd Adatok | Szövegből oszlopok. Kétszer Tovább gomb.
A harmadik fülön jelöld be a Dátum gombot, mellette az ÉHN legyen bejelölve. Befejezés gomb, és már kész is van.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
alfa20
senior tag
Sziasztok!
Makróban meg tudom számoltatni, hogy egy adott mappában mennyi (Excel) fájlt található?
van több mappa amiben váltózó számú adatlapok vannak, ezekből a táblákból kellene egy adott táblába bemásolni az adatlapok adott elemeit.
Arra gondoltam, TC-vel átnevezem tömegesen a fájlokat növekvő számokká, majd egy ciklussal megnyitom, átmásolom, bezárom szépen sorba. egyedül a fájlok száma aggaszt, hogy az hogyan legyen automata."Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)
-
lizakattila
senior tag
Sziasztok!
Kellene egy kis segítség, mert problémába ütköztem.
Adott egy exceltábla, mely az alábbi adatokat tartalmazza: LINKAz alábbi form-ot kreáltam hozzá: LINK
E mögött az alábbi makró található:
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub Reg1_AfterUpdate()
If WorksheetFunction.CountIf(Sheet2.Range("a:a"), Me.reg1.Value) = 0 Then
MsgBox "Ilyen item nincs az adatbázisban."
Me.reg1.Value = ""
Exit Sub
End If
With Me
.reg2 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 2, 0)
.reg3 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 3, 0)
.reg4 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 4, 0)
.reg5 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 5, 0)
.reg6 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 6, 0)
.reg7 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 7, 0)
.reg8 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 8, 0)
.reg9 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 9, 0)
.reg10 = Application.WorksheetFunction.VLookup(CStr(Me.reg1), Sheet2.Range("Lookup"), 10, 0)
End With
End Sub
Private Sub userform_click()End Sub
Ezt kellene kiegészíteni úgy, hogy amikor a formon a felvenni kívánt mennyiséghez beírok egy tetszőleges mennyiséget (számot) és rákattintok az Adatbázishoz ad gombra, akkor az adatokat tartalmazó lapon keresse meg a hozzá tartozó adatot és a beírt mennyiséget vonja le az E (OnHand) oszlopból.
Ha ez megtörtént, ki is léphet a formból (de ez nem feltétlen szükséges).[ Szerkesztve ]
"Ha próbára akarod tenni egy ember jellemét, adj neki hatalmat." - Abraham Lincoln
-
Delila_1
Topikgazda
válasz lizakattila #32306 üzenetére
Az Item-nek már eleve a textbox helyett comboboxot érdemes tenni, ahol a RowSource tulajdonságba beírod a tartományt, ahonnan az értékeket veszi, pl. Sheet2!A1:A200.
Elég egyszer kikeresni a sort, aminek az értékeihez hozzá akarod adni a UserFormon megadott adatokat.
Private Sub cmdClose_Click()
Dim sor
'Ellenőrzés
If reg1 = "" Or reg2 = "" Or reg3 = "" Or reg4 = "" Then
MsgBox "Hiányos kitöltés", vbExclamation
Exit Sub
End If
With Sheets("Sheet2")
sor = Application.Match(reg1, .Range("A:A"), 0)
.Cells(sor, 2) = .Cells(sor, 2) + reg2 * 1
.Cells(sor, 3) = .Cells(sor, 3) + reg3 * 1
.Cells(sor, 4) = .Cells(sor, 4) + reg4 * 1
End With
End SubA szorzás azért kell, hogy a textboxban szereplő szöveget (szöveg, azért text) számmá alakítsuk.
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
válasz lizakattila #32306 üzenetére
Figyelmesebben elolvastam a kérdést.
Ha jól értem, azt a sort keresed, amelyikben az On-Hand kivételével minden adat megegyezik a most bevittekkel, és a jelenlegi On-Hand értéket akarod levonni a megtalált sor E oszlopának az értékéből. Így gondolod?
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
bsasa1
csendes tag
válasz alfa20 #32305 üzenetére
Szia, persze simán.
Sub szamol()
Dim FolderPath As String, path As String, count As Integer
FolderPath = "mappa teljes elérési útja"
path = FolderPath & "\*.xls"
Filename = Dir(path)
Do While Filename <> ""
count = count + 1
Filename = Dir()
Loop
'count tartalmazza a .xls fájlok számát a mappában, ha xlsx, akkor fent is .xlsx
End Sub -
lizakattila
senior tag
válasz Delila_1 #32308 üzenetére
Nem egészen. Item alapján keresek, a többi adat a formon automatikusan töltődik, ha az itemet beírom (végül is minden adat egyezni fog).
Tehát ha rákerestem egy item-re, kitöltődött a form, a felvenni kívánt mennyiséget adom meg és az itt megadott értéket vonja le az OnHand-ből (E oszlop) - abban a sorban, ahol az általam kikeresett item van.
Egy készletcsökkentést szeretnék végrehajtani így, tehát amennyit kiveszek, annyival csökkenjen."Ha próbára akarod tenni egy ember jellemét, adj neki hatalmat." - Abraham Lincoln
-
Delila_1
Topikgazda
válasz lizakattila #32310 üzenetére
Akkor a feltöltés Ok, csak a levonás kell.
Sheets("Sheet2").Cells(sor, 5) = Sheets("Sheet2").Cells(sor, 5) - reg5* 1
Már ha a reg5 valóban az E oszlop megfelelője.
Azért a feltöltésnél alkalmazhatnád, amit a sor kikereséséről írtam előbb. Ugyanannak a sornak az n-edik tagját viszed a textboxokba, ezért elég lenne 1 keresés.
[ 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
válasz lizakattila #32310 üzenetére
A beolvasás is lehet egyszerűbb, a reg1 ComboBox Change eseményéhez rendelve.
Private Sub reg1_Change()
Dim sor, oszlop As Integer
With Sheets("Sheet2")
sor = Application.Match(reg1, .Columns(1), 0)
For oszlop = 2 To 11
Controls("reg" & oszlop) = .Cells(sor, oszlop)
Next
End With
End SubA gomb esetében marad az az 1 sor, amit írtam (+ elé a sor kikeresése a MATCH függvénnyel). Esetleg még a végére a form bezárása:
Unload Me
[ 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
válasz lizakattila #32314 üzenetére
Nagyszerű!
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
lalakov
senior tag
Meg tudnátok esetleg mondani mivel lehet a gond?
Van egy közel 600kb-os excel fájlom, amiben rengeteg lapfül van, sok egyszerű (szum, ha) számítással és egy részen feltételes formázással. Dropboxban használom, hogy a telefonon is mindig naprakész legyen. Pc-n minden tökéletes, de ha mobilon nyitom meg, az eltart vagy fél percig(a feltételes formázás színei jönnek be ilyen lassan). Ha bármit változtatok és elmentem, akkor eltűnik jó pár számítás, de nem az összes és minden esetben ugyanazok. Mindig kizárólag a sok karakterből álló, sima összeadások.
Office 2013, mobil: Samu Note 2Köszönöm.
-
Sprite75
tag
Sziasztok
Ha már valaki tett fel hasonló kérdést akkor előre is elnézést kérek de nem találtam.
A problémám az lenne, hogy a képen látható táblázatban pl a C2 cellában ahol 0# szerepel szeretném ha inkább üresen maradna a cella, ha a INDEX HOL.VAN függvény kombináció a táblázat Rendelés fülén ahonnan az adatokat szedné csak üres cellát talál.
Ezt majd nyomtatni kellene és úgy jobban áttekinthető lenne a nyomtatott lap ha a nem lennének tele 0-ával azok a cellák ahol nincs rendelés felvéve.
A C2 képlete
=INDEX(Rendelés!$C$4:$AX$108;HOL.VAN($A$2;Rendelés!$A$4:$A$108;0);1)
Előre is köszi
[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz Sprite75 #32318 üzenetére
A feltételes formázást is elhagyhatod, ha az Excel beállítási | Speciális | Beállítások megjelenítése ehhez a munkalaphoz menüpontban kiveszed a pipát a "Nulla megjelenítése a nulla értékű cellákban" elől.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
nagyúr
Üdv!
Arra van lehetőség,hogy egyéni számformázást ne csak a "Cellaformázás" menűből,hanem a szerkesztö mező segítségével is meg lehessen adni?
-
Dr V
őstag
Sziasztok!
Van egy táblázatom, amiben több függvény, power query lekérdezés is szerepel, adatból viszonylag kevés szerepel benne. A fájl hálózati meghajtón szerepel. Ha megnyitom, kb fél percig nem válaszol a program. Hogy tudnám a fagyást kiszedni belőle? Egyelőre nem találtam meg az okát.
-
butch3r
senior tag
válasz sajog159 #32325 üzenetére
Szia
Nem jól
Az általam másol macro egy sok diás ppt-ben az összes dián fogja az excelből linkelt elemeket (leginkább chartok) és kicseréli képekre (kivágja majd beilleszti ugyan oda ugyan akkora méretben csak képként). Viszont automatikusan előre teszi őket, viszont vannak olyanok amiket hátra kéne, hogy tegyen, hogy bizonyos feliratok látszódjanak (amik külön szöveg dobozból vannak beillesztve és részben -direkt!- takarják az említett képeket, de ha a kép van előrébb akkor az takarja a szvöeg dobozt és nem fordítva)
Ezért kéne nekem valami olyan kiegészítés a fenti makróba, hogy a kivágott és beillesztett képeket küldje hátra, azaz sorrendileg mélyebben legyenek és ne takarják ki a szöveg dobozokat.
Remélem valaki tud segíteni
Köszi -
Delila_1
Topikgazda
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.
-
butch3r
senior tag
-
Teo.papa
csendes tag
Halihó
Két noteszt használok, mindkettőn Win10+Excel2016. A problémám az, hogy az egyiken a gyorselérési eszköztárban elfér simán 28 parancsikon + a fájlnév + egyéb gyárilag ott lévő dolgok. A másikon fele ikont látom csak + fájlnév + gyári dolgok. Mindkét noteszen a sűrűség egérhez optimalizáltra van állítva. Próbáltam a sűrű beállításokat lementeni és a másik noteszre átmásolni, nem lett jobb a helyzet. Mellékelek egy képet a "sűrű" verzióról, nekem ez kellene a másik noteszen is. Korábban mindkét gépemen a sűrű verzió volt, a Win10-re frissítés után lett először mindkettőn ritka, majd egyik egy frissítés után sűrű lett, másik maradt ritka :-(
Megnéztem a kollégáim gépeit is, mindenkinek a gépén a "ritka" verzió van.Ha valaki tudna segíteni, megköszönném
-
Sprite75
tag
Üdv
Olyat lehet szerintetek hogy az éppen kijelölt cella ahová írni akarok más színű legyen mint a többi? Ha pedig megvolt az adatbevitel álljon vissza az eredeti színére?
-
Sprite75
tag
válasz Sprite75 #32336 üzenetére
Delila egy korábbi írását felhasználva használva
[link]csináltam egy olyan oszlopot ahová kiírja egy sorban történt utolsó módosítás idejét.
Így:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("C4:AY108"), Target) Is Nothing Then
Cells(Target.Row, 52).Value = Time
End If
End SubAztán ezt továbbgondolva szerettem volna megoldani hogy az épp kijelölt cella más színű legyen (a cellába íratott 1-est felhasználva a feltételes formázással) de nem teljesen jó a dolog.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("C4:AY108"), Target) Is Nothing Then
Cells(Target.Row, 54).Value = "1"
End If
End SubVagy teljes nem jó az elképzelés?
[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz Sprite75 #32337 üzenetére
Minek külön feltételes formázás? Ha már ír valamit a makró, egyúttal a színt is módosíthatja.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C4:AY108]) Is Nothing Then
Cells(Target.Row, 52).Value = Time
Cells(Target.Row, 52).Interior.Color = vbRed
End If
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.
-
Sprite75
tag
válasz Delila_1 #32338 üzenetére
Alakul
Annak a cellának a színét szeretném változtatni ami épp ki van jelölve, nem pedig azét ahová az időt írja.
Azért szeretném mert ez egy rendelés felvevő táblázat lenne és jó lenne ha feltűnő lenne, hogy épp hol épp melyik az aktív cella, nehogy rossz oszlopba írja az adatot aki használja.
Tehát a pl a képen látható AX15 cella színének kellene változni amíg ki van jelölve
-
Sprite75
tag
válasz Delila_1 #32340 üzenetére
Már megint 10000 hála
Akkorát nevettem, a kollégák azt kérdezték, hogy neked meg mi bajod van?
A másik kódot ami meg az időt írja be kijelölt sor 52. oszlopába azt csak beillesztem ez után a kód után és úgy jó?
Mert most ezt megtettem és eddig nincs hiba.[ Szerkesztve ]
-
Sprite75
tag
-
Delila_1
Topikgazda
válasz Sprite75 #32347 üzenetére
Fferi tovább fejlesztette, ami a 2010-es verziótól kezdve műxik.
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
Új hozzászólás Aktív témák
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Steam, Windows, Origin kulcsok, előfizetések közvetlenül a kiadótól, a LEGJOBB ÁRON!
- Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.