-
GAMEPOD.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
-
Mittu88
senior tag
Sziasztok!
Fél napot elcsesztem, segítsetek légyszi:
Van egy cella, amiben Fkeres függvénnyel változik az érték. (ez amúgy érvényesítéssel legördülő listából szedi az adatot, nem tudom fontos-e)
Nekem egy másik cellába kellene az a szám, amit kidob (de nem képlet, hanem maga az érték).
Ezt hogy lehet megcsinálni?Pl.:
A1 cellában legördülő lista, költséghelyekről: üzem; raktár stb.
A2 cellában fkeres(A1;másik munkalapon a költséghelyhez tartozó szám)
A3 cellába kellene ez a szám értékként (úgy, hogy ha rákattintok, ne képlet legyen benne)Üdv,
Ádám -
Mittu88
senior tag
Még egy olyat had kérdezzek, hogy hogy lehet leprogramozni azt, hogy a makró a célcella értéke alapján szűrjön le egy oszlopot?
' proba Makró
'
' Billentyűparancs: Ctrl+m
'
Columns("A: D").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$D$17").AutoFilter Field:=1, Criteria1:="60100"
End SubJelenleg így néz ki, az A oszlopban kellene, hogy leszűrje a költséghelyet, tehát a Criteria1-nek kellene, hogy cellára hivatkozás legyen (másik munkalapra).
[ Szerkesztve ]
-
Mittu88
senior tag
Próbáltam az egyszerűbb verziót, szépen le is szűri első alkalommal, aztán megbolondul az egész excel (mintha folyamatosan szűrne) és ezt a hibaüzenetet dobja:
Runtime error '-2147417848 (80010108)':
Automation error
The object invoked has disconnected from its clients.Mit lehet a gond?
Így néz ki eddig a munkalap worksheet kódja:
"Private Sub Worksheet_Calculate()
Const cella As String = "D6"Range("D7").Value = Range(cella).Value
Worksheets("Törzsadatok").Columns("A").AutoFilter Field:=1, Criteria1:=Range(cella).ValueEnd Sub"
-
Mittu88
senior tag
válasz Mittu88 #19542 üzenetére
Na jó, rájöttem, hogy így se lesz jó.
Az a k.. érvényesítés így se fogja elfogadni.
Szóval a lényeg az lenne:
Van egy költséghely lista, pl:
1000 üzem
2000 raktár
3000 központi irányítás
stb.A lényeg az lenne, hogy legördülő listával lehessen a költséghelyet kiválasztani, alatta egy másik cellában szintén legördülő listával az jelenjen meg, hogy azon a költséghelyen milyen nyomtatók vannak (ehhez is van adatbázis).
pl ha kiválasztja, hogy Üzem:
Epson xy
HP xy
...Ha átállítja raktárra:
Samsung xy
Konica Minolta xy
...és így tovább.
Ezt hogy lehet megoldani? Szerintem VBA-ban egyszerű lehet, de ahhoz nem értek annyira :/
Érvényesítéssel meg szűrővel szenvedek, de rossz végén állok a brének -
Mittu88
senior tag
válasz hallgat #19546 üzenetére
Köszi szépen mindkettőtöknek a segítséget. A kimutatást hétvégén próbálgatom majd (most is melóból érek, úgyhogy nagyon nem érek rá), kb 3 percet tudtam "játszani" vele, de tetszik
Amúgy ez a dinamikus adatérvényesítés az, amit keresek. Kicsi az adatbázis, úgyhogy ez lesz a befutó
Még egyszer köszi
-
Mittu88
senior tag
Sziasztok!
Makróval hogy lehet leprogramozni, hogy Mentés vagy Mentés másként művelet végrehajtása előtt fusson pár utasítás? Pl. pár if függvény. Megoldható?
-
Mittu88
senior tag
válasz Delila_1 #19990 üzenetére
Fúúú köszi, végül a BeforeSave-re esett a választásom, jobb lenne, ha még mentés előtt lefutna a dolog.
Még egy olyan kérdésem lenne (bocsánat a mohóságomért), hogy ha van egy vizsgálatom (pl. egyik cella üres-e) és If függvénnyel vizsgálom makróban, akkor csak akkor hajtsa végre a mentést, ha igaz az eredménye (különben ne mentsen).
Eddig így néz ki a dolog:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Worksheets("Igénylő").Range("C8").Value = 0 Then
Worksheets("Igénylő").Range("C8").Activate
MsgBox ("Először add meg a kitöltő nevét!")
End IfEnd Sub
Szerk.: Azt hiszem sikerült. a Cancel-nek kellett True értéket adni, ugye?
[ Szerkesztve ]
-
Mittu88
senior tag
Sziasztok!
Megint zaklatnom kell titeket
A következőt próbálom programba foglalni:
Mentés előtt végezzen olyan vizsgálatot, hogy az Igénylő munkalapon a B oszlop 12. sorától vizsgálja az 50. soráig és ha valamelyik ki van töltve, vizsgálja meg, hogy annak a sornak az F oszlopa is ki van-e töltve. Ha igen, akkor ne történjen semmi, ha nem, akkor Büntető üzenet és ne lehessen menteni.Eddig így állok:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim i As Integer
i = 12
For i = 12 To 50
If (Worksheets("Igénylő").Target.Row = i) And (Worksheets("Igénylő").Target.Column = 2) And (Worksheets("Igénylő").Target.Value <> 0) Then
If (Target.Row = i) And (Target.Column = 6) And Target.Value = 0 Then
Target.Activate
MsgBox ("Add meg a fogadóállást!")
Cancel = True
End If
End If
i = i + 1
NextEnd Sub
-
Mittu88
senior tag
Azt hogy lehet megoldani makróval, hogy mentéskor csak makróbarát formátumba tudjon menteni a felhasználó?
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Ide kell valami parancs?
End Sub -
Mittu88
senior tag
Sziasztok!
Ki lehet valahogy kapcsolni makróval, hogy ha történt egy fájlon változtatás, bezáráskor ne kérdezzen rá, hogy akarja-e menteni a változásokat, hanem alapértelmezetten a Nem aktiválódjon?
Előre is köszi a választ
Üdv,
Ádám -
Mittu88
senior tag
Sziasztok!
Ebben a fájlban kellene VBA kódbeli segítség. A feladat, hogy ha valaki változtat valamely cella tartalmán a Munka1 lapon, akkor a Munka3 lap ugyanazon cellájának a tartalmát valahova lementse az excel úgy, hogy a fájl bezárásakor e-mailben xy emailcímre továbbítsa a változásokat úgy, hogy a módosított cellához tartozó nevet(ugyanazon sor 1-es cella) és napot(ugyanazon oszlop 1-es és 2-es cella) is tartalmazza, ne csak azt, hogy mire módosította (esetleg miről módosította is, de ez opcionális).
Itt a jelenlegi fájl:
http://data.hu/get/7735295/szabadsagterv_management.xlsmNagyon meg vagyok akadva és minden segítség jól jönne. Előre is köszönöm szépen
[ Szerkesztve ]
-
Mittu88
senior tag
-
Mittu88
senior tag
válasz Mittu88 #21782 üzenetére
Egy ilyennel nagyjából meg lehet, de hogy klikkelésre dobja a sorrendet, azt nem tudom hogy lehet makró nélkül. Ez perpill. akármilyen cellamódosítás hatására újragenerálja a véletlen számokat, kivéve, ha ki van véve excelből az automatikus újraszámolás (99,9%-nál nincs kivéve).
-
Mittu88
senior tag
-
Mittu88
senior tag
válasz PistiSan #21867 üzenetére
Nem tudom hány oszlop van, de ha csak pár (20-30), akkor pl. B1 cellára állva ha nyomsz egy CTRL+SHIFT+lefele nyíl kombót, vágólapra helyezed (ctrl+c), utána az A1-re kattintasz, nyomsz egy CTRL+lefele nyilat (utolsó kitöltött cellához ugrik), utána még egy lefele nyilat és ezután beilleszted (ctrl+v), akkor a B oszlop tartalma máris át van helyezve az A-ba.
És így tovább. Nagyon macerás?
Mert szerintem csak makróval lehet automatizálni, de nem érdemes programot írni pár oszlop miatt.
-
Mittu88
senior tag
válasz PistiSan #21869 üzenetére
Egy ciklust rakj bele.
Ezt így be is másolhatod:Sub Makró7()
'
' Makró7 Makró
''
Dim i as integer 'Deklarálod, tehát létrehozod a változóti=0 'értékadás i változónak
For i = 1 to 200 '1-től 200 oszlopig vizsgálja, egyesével lépked
Columns( i ).Select 'i-edik oszlopot kiválasztja
ActiveSheet.Range( i ).RemoveDuplicates Columns:=1, Header:=xlNo 'ezt nem tudom működni fog-e
i = i + 1 'növeli 1-gyel i értékét, hogy a következő oszlopra lépjen
Next 'Ciklus végeEnd Sub
-
Mittu88
senior tag
Sziasztok!
VBA-ban van olyan parancs, amivel az összes jelenlegi munkalapon lévő adatcsatolást törölni lehet?
Pl. ActiveSheet.QueryTables("2460 798 Pasztőr gyártás nap").Delete -> ezzel csak ezt az egyet törli, de mindent kellene a lapon.Előre is köszi!
slashing:
[ Szerkesztve ]
-
Mittu88
senior tag
Azt bele lehet programozni excelbe, hogy egyszerre csak egy cellát lehessen kijelölni?
-
Mittu88
senior tag
Sziasztok!
VBA-val szeretnék csoportosítani egy táblázatot úgy, hogy 190 soronként legyen egy csoport (hogy zárható legyen, ezzel segítve az átlátását).
Nagyon elakadtam vele, pedig úgy érzem közel a megoldás. Jelenleg így néz ki a kód:
Sub csoportosítás()
'
' csoportosítás Makró
''
Dim A As Long
Dim elozo As Long
Worksheets("Napi").Activate
elozo = 1
For A = 190 To 1900 Step 190
Range("A1").Select
Application.CutCopyMode = False
Range(Cells(elozo, 1), Cells(A, 1)).EntireRow.Select
Selection.Group
elozo = A
Next
End SubEz most annyit csinál, hogy minden százkilencvenedik sort csoportosítja, valamint az egész 1900 sort.
Mi lehet a gond? -
Mittu88
senior tag
Az mitől van, hogy néha átáll egy adott munkafüzet minden nem beállított formátumú cellája Könyvelői-re? Nagyon idegesítő, mert így értelmezhetetlen adatokat lát a felhasználó és rengeteg időmbe telik beállítani a 4-5000 soros munkalapokon.
Esetleg makróval meg lehet oldani, hogyha Könyvelői a formátum, akkor általánosra változtassa, minden más esetben pedig ugyanúgy hagyja?
[ Szerkesztve ]
-
Mittu88
senior tag
válasz Delila_1 #22255 üzenetére
Sajnos nem csinál semmit
Rámentem egy ilyen "könyvelői" cella cellaformázására és a könyvelőiről átkattintottam Egyéni-re, ezt a kódot hozta: _-* # ##0\ [$Ft-40E]_-;-* # ##0\ [$Ft-40E]_-;_-* "-" [$Ft-40E]_-;_-@_-
Ha viszont ezt másolom be az "if cella.numberformat =" után, akkor típushibát ír (type mismatch). -
Mittu88
senior tag
Az megoldható valahogy, hogy CSAK akkor tudja az adott xlsm fájlt megnyitni a felhasználó, ha a makrók futtatása engedélyezve van a gépén? (vagy megbízható helyek között van az a mappa, amelyikben van, vagy alapból engedélyezve vannak a makrók)
-
Mittu88
senior tag
válasz m.zmrzlina #23317 üzenetére
Húú de cseles Holnap megnézem, mert most rohannom kell. Majd írok, hogy mi lett.
-
Mittu88
senior tag
válasz m.zmrzlina #23317 üzenetére
Szuppper Az Open és a BeforeClose eseményben is volt előtte parancs, ezeket egyből kiütötte (nem működtek), mert rossz helyre illesztettem be először a parancssoraidat (veryhidden munkalapon nem tud dolgozni a vba!), de minimális gondolkozás és javítás után tökéletesen működött.
Nagyon szépen köszönöm a segítséget!
-
Mittu88
senior tag
válasz #02644736 #23333 üzenetére
Ha kijelölöd valamelyik celláját a becsatolt adattartománynak, és az Adatok fülön rákattintasz a Kapcsolatoknál a Tulajdonságokra, lennie kell az Adatformátum és elrendezés részben olyannak, hogy Oszlopszélesség igazítása. Checkboxból pipa ki és kész.
Legalábbis 2010-esben így működik, sajnos nincs '13-asom. -
Mittu88
senior tag
válasz m.zmrzlina #23335 üzenetére
A mi cégünknél nem elvárás az ilyen alap szintű office programcsalád ismerete. Pályakezdő vagyok (bár már talán nem, 2 éve vagyok a cégnél), máshol elvárás?
Amúgy nevetséges -
Mittu88
senior tag
válasz Mittu88 #23337 üzenetére
Ma pl. lecsesztek, hogy a szerveren amit anno csináltam fájlt, simán le tudta törölni az egyik felhasználó. Megnéztem és az egész fájlt törölte. Erre mondtam, hogy nem azt mondtátok, hogy ne törölhesse, hanem hogy ne törölhessen bele.
Ezt én (remélem helyesen) úgy értelmeztem, hogy ha meg van nyitva a fájl, ne tudjon munkalapot vagy cella tartalmat törölni.
Pár évnyi adatot töröltek, de van róla biztonsági mentés. -
Mittu88
senior tag
válasz m.zmrzlina #23343 üzenetére
Az biztos. Az Apple komoly pénzeket fizetne egyes kollegák szoftveres "tesztelési" képességeiért.
-
Mittu88
senior tag
Ú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!
- World of Warcraft Shadowlands Collectors edition EU EN
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."