- Vírusirtó topic
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Windows 11
- Windows Insider Program
- Visszavonta az Intel és a Qualcomm Huawei-hez kiadott exportlicencét az USA
- Még több AI-t hozna a Windowsba a Microsoft
- Az Apple szerint ejteni kell az USA trösztellenes perét
- WLAN, WiFi, vezeték nélküli hálózat
- Proxmox VE
- Windows 8 / 8.1
-
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
-
föccer
nagyúr
válasz föccer #35922 üzenetére
No, csak kellene bele tenni hiba javítást, mert úgy egyszerűbb lesz az életem.
Le kellene elleőrízni, hogy a C2-ben megadott nevű munkafüzet létezik-e, és ha nem akkor létrehozza azt, és bemásolja a megfelelő cellákat.
Ugyan itt szökség lenne arra is, hogy az oszlop szélességeket beállítsam. Erre melyik bojektum, melyik paraméterét kell módosítanom?
(fene egye meg, hogy nem ismerem még az objektum listáját sem )
Köszi .
üdv, föccer
Építésztechnikus. Építőmérnök.
-
Delila_1
Topikgazda
válasz föccer #35928 üzenetére
Dim a
On Error Resume Next
Set a = Sheets(Range("C2"))
If Err.Number <> 0 Then
Sheets.Add.Name = Range("C2")
On Error GoTo 0
End If
Columns("A:D").ColumnWidth = 20Az alsó sor az A:D oszlopok szélességét állítja be, és teszi ezt az újonnan létrehozott lapon, mert hivatalból az új lap az aktív. Ha másik lapon akarod a szélességet beállítani, akkor ezt jelezni kell.
Sheets(1).Columns("A:D").ColumnWidth = 20
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 föccer #35933 üzenetére
Szia!
Előljáróban: az összefűz függvény helyett a & operátor használatát javaslom, ami ugyanazt jelenti és az Excel celláiban is így működik
(pl. =A1 & A2 )
, rövidebb és elegánsabb is.Egy cellába a Formula tulajdonsággal adhatsz meg képletet, ebben az eseten mindig ANGOL nyelven kell megadni a függvény nevét és vesszővel elválasztani a paramétereket
(pl. Range("A1").Formula="=SUM(A2:A4)" )
, szövegként. Itt problémát jelenthet az esetleg szükséges idézőjelek bevitele, amit vagy az idézőjel duplikálásával, vagy a CHR(34) függvénnyel adhatsz meg. Ügyelni kell arra, hogy a szövegek rendesen legyenek megadva, pl.Range("A4").Formula="=SUBSTITUTE(A2,""mb"","""")".
Ezeket a képleteket megnézheted, ha a VBA nézet Immediate ablakába beírod pl.?Range('A1").Formula
Lehetséges magyar nyelven is a függvények megadása, a FormulaLocal tulajdonsággal. Ebben az esetben magyar függvényneveket használhatsz, de a munkafüzet nem lesz hordozható, más területi beállításnál nem fog működni, mert nem ismeri fel a képletet.
Végül, de nem utolsósorban: Egy csomó munkalap függvény használható a VBA-ban is, ezeket a Worksheetfuntion "gyűjtemény" tartalmazza. Ami itt van, az működik Application előtaggal is (Worksheetfunction nélkül!), akkor más a hibakezelési lehetőség.
Ha a cellába nem a képletet szeretnéd beírni, hanem magát a számítás eredményét, akkor a Cella Value tulajdonságát kell használnod. Pl.
Range("A1").Value=Application.Sum(Range("A2:A4").
Ebben az esetben tehát más módon kell megadnod a számításhoz a képletet! Viszont ilyenkor az adott cella is szerepelhet a számításban, tehát lehetne A1:A4 összegét beíratni az A1 cellába.
Kísérletezéssel sokat fogsz előrejutni.
Ennyit így éjfél előttre. Bizonyára maradtak még kérdéseid, azokat oszd meg velünk újra.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz föccer #35936 üzenetére
Szia!
Szerintem ezt az adott adatsorhoz tartozó trendvonal címkéjének leolvasása adja meg, szövegként. Pl.
trendcimke=charts(1).seriescollection(1).trendlines(1).datalabel.text
tartalmazza mind az egyenletet, mind a szórásnégyzet értékét.
Ezt már meg tudod manipulálni a kedved szerint.
(Javaslat: makrórögzítéssel tedd fel a trendvonalat és a függvény ill. szórásnégyzet megjelenítést, így tudni fogod, melyik adatsorhoz tartozik a trendvonal, ha nem egy adatsorod van.)Üdv.
-
Fferi50
őstag
válasz föccer #35938 üzenetére
Szia!
Valami ilyesmit fogsz látni a rögzítés után:
Sub Makró2()
'
' Makró2 Makró
'
'
ActiveChart.ChartArea.Select
ActiveChart.FullSeriesCollection(3).Select
ActiveChart.FullSeriesCollection(3).Trendlines.Add
ActiveChart.FullSeriesCollection(3).Trendlines(1).Select
Selection.DisplayEquation = True
End SubEbből látod, hogy itt pl. a 3. adatsorhoz csináltam trendvonalat.
Üdv.
-
Fferi50
őstag
válasz föccer #36205 üzenetére
Szia!
Jó sok időt szánhattál rá! Gratula!
Ami a kérdésedet illeti:
"rá tudom-e venni macróból a számolótáblámat ..."Természetesen rá tudod venni. Ciklussal végig kell menni a paraméterlistán, átírni értékadással a számolótáblád megfelelő cellájába a paramétert.
Ha ki nem kapcsolod az újraszámolást - a tábla automatikusan újraszámolódik minden egyes cella változásakor(!).
Makróban:
automatikus számolás kikapcsolása: Application.Calculation=xlCalculationManual
visszakapcsolás: Application.Calculation=xlCalculationAutomaticAz újraszámoltatás makróból :
Application.Calculate => az összes nyitott munkafüzet újraszámolása.
Worksheets(1).Calculate => az 1. munkalap újraszámolása
Worksheets(1).Range("A2:A3").Calculate => az adott cellák újraszámolása.Üdv.
-
föccer
nagyúr
válasz föccer #36211 üzenetére
Ó, és nem ez volt a hiba (csodálkoztam is volna, mert azt a 2 cellát fixen felül kell írni minden ciklusban, szóval baj nem lehetett belőle, hogy nem nulláztam őket.
Ellenben ilyen eset is régen történik velem... Az optimalizációs algoritmust én építettem fel, moat, hogy futtatom kell rájönnöm, hogy túlságosan is jól készítettem fel és okosabb mint én... Ugyanis bele tettem egy olyan lépést is aminek az alaplépései nem jelennek meg a végeredmény táblázatban, csak a végeredménye és az istenért nem akartam rájönni, hogy mégis miért nem nem azt látom amit. Ugyanis megtörtént, hogy az bementi alapadatok táblázatában el van írva valami és ezt az elírást a hibakereső rész automatikusan felismerte és korrigálta...
Epic, inkább megyek aludni...
Építésztechnikus. Építőmérnök.
-
Pakliman
tag
válasz föccer #36241 üzenetére
A ThisWorkbook modul "Workbook_BeforeSave" eseménykezelőjébe kell beírni egy kódot.
Ez minden "mentés" esetén lefut, itt tudsz jelszót kérni és ha azt nem tudja az illető, akkor elhajtani a ...
Pl.:Const ValódiJelszó = "MentésiJelszó"
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim sPass As String
sPass = InputBox("Mi a jelszó?")
If sPass <> ValódiJelszó Then
Cancel = True
MsgBox "Nincs jogod menteni!!"
End If
End SubÉs persze magát a munkafüzetet és azon belül a VBA kódot is jelszóval védeni. A VBA kódnál nem engedjük meg a betekintést sem, hiszen akkor megtudná akárki a szükséges jelszót
[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz föccer #36267 üzenetére
A Kr1:Kr4 (kritériumok) változóknál a helyfoglalásnál nem állítottam be a típust (string, double, boolean, date, stb. lehet)
Az adatokat tartalmazó listát táblázattá alakítottam, a neve Adatok.
Sub Szures()
Dim Kr1, Kr2, Kr3, Kr4
Kr1 = Range("L1"): Kr2 = Range("L2"): Kr3 = Range("L3"): Kr4 = Range("L4")
' Inputboxban is bekérheted a szűrő feltételeket
ActiveSheet.Range("Adatok").AutoFilter Field:=1, Criteria1:=Kr1 'A oszlop szűrése
ActiveSheet.Range("Adatok").AutoFilter Field:=3, Criteria1:=Kr2 'C oszlop szűrése
ActiveSheet.Range("Adatok").AutoFilter Field:=5, Criteria1:=Kr3 'E oszlop szűrése
ActiveSheet.Range("Adatok").AutoFilter Field:=6, Criteria1:=Kr4 'F oszlop szűrése
End SubSub Szuro_Reset()
ActiveSheet.Range("Adatok").AutoFilter Field:=1
ActiveSheet.Range("Adatok").AutoFilter Field:=3
ActiveSheet.Range("Adatok").AutoFilter Field:=5
ActiveSheet.Range("Adatok").AutoFilter Field:=6
' Az ActiveSheet.ShowAllData utasításnál minden adat látszik, de
' a szűrő feltételek megmaradnak. Ekkor a sorazonosítók kék színűek
End SubSub Szurt_Oszlop_Masolasa()
Sheets("Munka2").Columns(1).ClearContents 'előző másolat törlése
Range("B1:B" & Range("B1").End(xlDown).Row).Copy Sheets("Munka2").Range("A1")
End SubSub Rejtett_e()
If Rows(7).Hidden = True Then
MsgBox "Rejtett"
Else
MsgBox "Ne rejtett"
End If
End SubSub Szuro_ki_bekapcs()
Range("A1").Select
ActiveCell.CurrentRegion.AutoFilter
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.
-
0P1
aktív tag
válasz föccer #36267 üzenetére
Erre érdemesebb Get&Transformot használni, azt pont ilyenek automatizálására találták ki. És ez annyira egyszerű feladat, hogy scriptelni se kell, csak pár egérkattintás az egész.
Olvasd be a táblát (Data/Get&Transform/From Table), állttsd be a négy szűrést a négy oszlopban (ugyanúgy műxik, mint a régi autoszűrő funkció, válaszd ki a két oszlopot, amiket át akarsz másolni (Manage Columns/Choose Columns) aztán Close&Load. Ennyi. -
Fferi50
őstag
válasz föccer #36285 üzenetére
Szia!
Ezzel és Delila megoldásával is "csak annyi" a baj szerintem, hogy a teljes munkalap minden értéke törlődik - beleértve a fej és oldalrovatokat is!
A kérdező viszont a lapmásolás után a másolt lapon a meglevő, régi adatok helyére szeretne új adatokat beírni úgy, hogy először kitörölné a zavaró, régi adatokat. (Ha rosszul értettem volna, majd kijavít,)
Így viszont már nem olyan egyszerű a feladat. Ahhoz sajnos ismerni kellene a munkalap szerkezetét, hogy tisztességes makrót lehessen hozzá írni.Üdv.
-
BullZeye
veterán
válasz föccer #36381 üzenetére
Nem az összeadással van a baj, hanem hogy ha valami nincs a listában, akkor nem tudom hogy oldjam meg, hogy ignorálja :\ Mert ezzel most szépen megcsináltam, hogy kiírja az összes üzletnek az adott termékekre vonatkozó össz árát, viszont a 30 üzletből még nem látom melyik a legolcsóbb, mert ahol hiányzik a termék, ott 0 értékként szerepel, ahol egyik termék sincs, ott 0 a végösszeg, és így borul az egész.
Erre esetleg van valami ötletetek? Egész pontosan azt szeretném elérni, hogy itt, ha van üres cella (nincs termék az üzletben), akkor az essen ki a versenyből, hisz ott pl nem kapható alma, oda már nem tudok menni.
Ami nehezíti, hogy ne kelljen folyton képleteket huzigálni (erőforrásigényes művelet, i7es procit is megakasztja), lehúztam most 20 cellát, de ha csak 4 termék van, akkor az első 4 sorban vannak, utána pedig üres cellák, azokat ignorálni kellene, viszont az első 4 cellában ha hiányzik valami, akkor azt jelölje pirosan, és a végén ne legyen SZUM, és ne használja legalacsonyabb árként.
Ebben a táblában szeretném pl, ha a Media Markt, Euronics, Piac üzletekkel ahol nincs valamely termék ne is foglalkozzon a végén a képlet, és jelezze zölden, hogy pl a legolcsóbb a Tesco, mert ott minden van, és végösszeg a legalacsonyabb érték.
[ Szerkesztve ]
-
-
allein
addikt
válasz föccer #36614 üzenetére
Köszi szépen, működik. Azt nem tudom megcsinálni, hogy minden oszlopból kivegye? Tehát amikor az B oszlopból eltávolítom az ismétlődő rendeléseket, többi oszlopból is kivegye az adatokat.
Szerk: Nem található ismétlődő érték, ez jelenik meg Szerk: Megvan, csak a B oszlopon hagytam a pipát, így már jó lett.
Nagyon szépen köszönöm a segítséget
[ Szerkesztve ]
http://phmegbizhatosag.atw.hu/phtabla.php?nev=allein
-
-
válasz föccer #36656 üzenetére
A darabhatöbb szépen megszámolja, és tudok olyan listát készíteni,hogy
béla, 73
jenő, 12
ervin, 153
béla, 73
ervin, 153Hogyan tudom úgy leszűrni, hogy minden névből csak egy maradjon?
Viszont az fkeres-el meggyűlt a problémám. Ha csak 1 oszlopot adok meg, akkor megtalálja, működik.
=FKERES(E67;E:E;1) -> Az E67 cella talmát mutatja, ahogy elvárhatóAmint több oszlop van megadva, hibát mutat.
=FKERES(E67;A:E;1) -> "#HIÁNYZIK"Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews
-
válasz föccer #36671 üzenetére
Kezdem azt hinni, hogy már értem, pedig a példa azt mutatja, hogy nem.
Az E oszlopba copy/paste módon másoltam be, hogy mit kell keresnie, tuti nincs elírás. Ennek ellenére az
=FKERES(E2;osszesen.D:M;9)
függvény butaságokat ad vissza.Ahogy a képen látszik, bármelyiket találja is meg, mindég 00:04:32-t kellene mutatnia, viszont 00:03:35-t mutat.
Sőt!
Van olyan keresési találat is amikor #HIÁNYZIK hiba(?)üzenetet ad.
Ugyanakkor a
=DARABHATÖBB($osszesen.D:$osszesen.D;E2)
mindég eltalálja hogy hány darab van belőle.[ Szerkesztve ]
Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews
-
-
Delila_1
Topikgazda
válasz föccer #36980 üzenetére
Persze egyszerűbb az FKERES-sel, de az sem találja meg, ha a típusok nem egyeznek meg. Az Excel keresője megtalálja, akkor is, ha a keresett szöveg előtt-után láthatatlan karakter, pl. szóköz van.
[ 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
-
Bazs-
tag
válasz föccer #37072 üzenetére
Köszönöm
SZUMHATÖBB függvény megvan. Nem sz összegzéssel van a problámám.Azt nem tudom megoldani, ,hogy automatikusan létrehozza megadott formátumban a sorokat. Tehát az "A" oszlopban lévő számlaszámokat rakja át az "F"-be, viszont ha a "B" oszlopban már változás következik be, akkor az "F" oszlopba ne az "A" oszlopból vegye a következő egy adatot, hanem a "B"-ből vegyen ki egyet. Utána viszont folytassa az "A" oszlopból.
Példával: Az A2-A6-ig átteszi az adatokat az F2-F6-ba, de ott érzékeli, hogy a B7 már nem egyenlő a B6-al, így az F7-be már a B6 értékét teszi. Majd ezután az F8-F10-be már az A7-A9-ig másolja az adatokat, majd mivel ismét nem azonos a B9 és a B10, ezért az F11-be már a B9 értékét másolja. És így tovább. Több száz soros a teljes excel és nincs ötletem hogy tudnám ezt megvalósítani.Nem tudom mennyire érthető, amit leírtam
Köszönöm
-
andreas49
senior tag
válasz föccer #37071 üzenetére
Köszi, de nekem úgy kell, hogy az eredeti D, E oszlopok változatlanok maradjanak és a Z-A értéket másolja a B, C oszlopba. A sorba rendezést meg tudom oldani, csak a bemásolás nem megy
HONOR Magic5 Pro - Huawei P30 Pro 8/128 GB - Xiaomi MI Note 10 Pro - Huawei Mate 10 Pro
-
andreas49
senior tag
válasz föccer #37077 üzenetére
De, megy a másolás és értékbeillesztés, de valószínűleg rosszul fogalmaztam: nekem arra van szükségem, hogyha változik az E oszlop értéke (amely az utána következő f-z oszlopok összesítése), akkor automatikusan változzon a C oszlop értéke és automatikusan Z-A rendezve legyen. A táblázat mintegy 200 sort tartalmaz.
A táblázatban látnom kell mindig a fenti minta B,C,D,E oszlopokat.[ Szerkesztve ]
HONOR Magic5 Pro - Huawei P30 Pro 8/128 GB - Xiaomi MI Note 10 Pro - Huawei Mate 10 Pro
-
Delila_1
Topikgazda
válasz föccer #37252 üzenetére
Makró.
Sub Jeloltek()
Dim CV As Range, ter As Range
Dim U As Integer, L As Integer
Set ter = Range("B1:B" & Range("B1").End(xlDown).Row).SpecialCells(xlCellTypeVisible)
For Each CV In ter
Select Case CV
Case "U", "u": U = U + 1
Case "L", "l", "i", "I": L = L + 1
End Select
Next
Range("L1") = "U: " & U & " db"
Range("L2") = "L: " & L & " db"
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.
-
Vééé
csendes tag
válasz föccer #37273 üzenetére
A körlevéllel sehogy sem tudtam adatot leválogatni. Már az is gond, hogy az A oszlop lenne a címzett, de ott minden címzertt töbször szerepel. Tehát tudok minden "szőrös"nek levelet küldeni az összes soráról, de én azt szeretném, ha a szőrös egy levelet kapna, amiben fel vannak sorolva a sorai.
Új hozzászólás Aktív témák
- Vírusirtó topic
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Elektromos autók - motorok
- Miért vezet mindenki úgy, mint egy állat?
- A fociról könnyedén, egy baráti társaságban
- Automata kávégépek
- Fűnyíró topik
- Júniusban Magyarországra érkezik a Tecno, a fejlődő piacok egyik kedvenc márkája
- Ingatlanos topic!
- Samsung Galaxy A54 - türelemjáték
- További aktív témák...
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Windows 10/11 Home/Pro , Office OEM/Retail kulcsok
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- AKCIÓ! - STEAM kulcsok / Punch Club, Oddworld: Soulstorm, Children of Morta, stb. - 2024.05.16.
- Canva Pro előfizetés - 1 éves
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Ozeki Kft.
Város: Debrecen