- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Magga: PLEX: multimédia az egész lakásban
- Parci: Milyen mosógépet vegyek?
- sziku69: Szólánc.
- Aggregátor gondjai, örömei, és elmélkedései
- Chosen: Canon 5D II - portrézás 2025-ben
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- Drivv: Prehistorik 2 - Retró Játékpercek! 1. rész
-
LOGOUT
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
veterán
válasz
PerezT #35996 üzenetére
3 helyen, a csillagozott sorokban kell módosítanod a makrót.
Nálam Munka1 a kiinduló lap neve, és Munka2, ahova átrendezve bemásolja az értékeket.A sorIde = 1: oszlopIde = 1 változók értékei adják meg, hogy a 2. lapon hol kezdődjön a tábla, ami itt az A1-es cella sora, és oszlopa.
Sub transz()
Dim sor As Long, usor As Long, sorIde As Long
Dim oszlop As Integer, uoszlop As Integer, oszlopIde As Integer
Sheets("Munka1").Select '***
uoszlop = Cells(1, Columns.Count).End(xlToLeft).Column
usor = Range("A" & Rows.Count).End(xlUp).Row
sorIde = 1: oszlopIde = 1 '***
With Sheets("Munka2") '***
For oszlop = 2 To uoszlop
For sor = 2 To usor
.Cells(sorIde, oszlopIde) = Cells(1, oszlop)
If Cells(sor, oszlop) > "" Then
.Cells(sorIde, oszlopIde + 1) = Cells(sor, 1)
.Cells(sorIde, oszlopIde + 2) = Cells(sor, oszlop)
sorIde = sorIde + 1
End If
Next
Next
End With
End Sub -
PerezT
újonc
-
Delila_1
veterán
válasz
PerezT #35994 üzenetére
Arra az esetre, ha az első táblázatod az A1 cellában kezdődik, egy makró gyorsan átmásolja a kívánt formába az adataidat. A makrót modulba kell tenned (lásd a Téma összefoglalóban).
Sub transz()
Dim sor As Long, usor As Long, sorIde As Long
Dim oszlop As Integer, uoszlop As Integer, oszlopIde As Integer
uoszlop = Cells(1, Columns.Count).End(xlToLeft).Column
usor = Range("A" & Rows.Count).End(xlUp).Row
sorIde = 1: oszlopIde = 15
For oszlop = 2 To uoszlop
For sor = 2 To usor
Cells(sorIde, oszlopIde) = Cells(1, oszlop)
If Cells(sor, oszlop) > "" Then
Cells(sorIde, oszlopIde + 1) = Cells(sor, 1)
Cells(sorIde, oszlopIde + 2) = Cells(sor, oszlop)
sorIde = sorIde + 1
End If
Next
Next
End Sub -
PerezT
újonc
Hello,
Egy kis segítség kéne egy probléma megoldásában:
Az alábbi kép felső részén látható táblázatban vannak adataim, és át akarom úgy alakítani, hogy az alsó táblázathoz hasonló formátumban legyen látható.
Tehát valami olyasmi kéne - gondolom - hogy a táblázatban keressen olyan cellákat amik tartalmaznak számot, és nem nulla, majd ezt a számot írja ki egy sorba az oszlop illetve a sor legelső cellájának értékével.
Örülnék ha valami Excel-Guru ebben tudna támpontot adni.
Előre is köszönöm. -
Fferi50
Topikgazda
válasz
Mela Kehes #35990 üzenetére
Szia!
Használd a * (csillag) joker karaktert a kereséshez:
"*keres*" minden olyan tétel, amiben a keres előfordul
"*keres" minden olyan tétel, ami keresre végződik
"keres*" minden olyan tétel, ami keressel kezdődik.Üdv.
-
Mela Kehes
addikt
Sziasztok!
A COUNTIFS függvénynél hogyan lehet megodani, hogy a keresendő oszlopban ne pontos szövegre, hanem csak egy részletre keressen. Pl.: az oszlopban nevek vannak rendszámmal. Minden névhez egy rendszám (egy cellán belül). Na most van olyan aki közben lecserélte az autót és a rendszám megváltozott. Eddig úgy csináltam, hogy az egész cella tartalmára rákerestem, de ez már nem fog működni mert két különböző rendszám van és akkor az újat már nem számolja bele.
Köszi
-
Fferi50
Topikgazda
Szia!
"az egyetlen baj, hogy nem minden pivotban 'Status' a PivotField neve, itt akadtam el igazából."
Akkor nincs más lehetőséged, mint legalább egyszer végignézni "kézzel" a Pivottáblákat, hogy megállapíthasd, melyik Pivotfielddel kell dolgozni. Ezt beleteheted pl. feltételbe:
Dim PTF as PivotField
Select Case PT.Name
Case "Elso"
Set PTF = PT.Pivotfields("EZ")
Case "Masodik"
Set PTF = PT.Pivotfields("AZ")
'.ide írod a többi lehetőséget
'.
End Select
With PTF
For Each PvI In .PivotItems
Select Case PvI.Name
Case "(blank)"
PvI.Visible = False
Case Else
PvI.Visible = True
End Select
Next
End With
Esetleg listába teszed a PivotField neveket:Dim Nevek as String,PTF as Pivotfield
Nevek="Elso,Masodik....."
For Each PTF in PT.Pivotfields
If Instr(Nevek,PTF.Name)>0 Then
With PTF
For Each PvI In .PivotItems
Select Case PvI.Name
Case "(blank)"
PvI.Visible = False
Case Else
PvI.Visible = True
End Select
Next
End With
Exit For
End If
NextPersze ne feledkezz meg a külső ciklusról se.
Üdv.
-
Fferi50
Topikgazda
válasz
alfa20 #35979 üzenetére
Szia!
Ilyen esetben a "háromdimenziós" változó megadásra van szükség, meg kell mondani a makróban, melyik modulban van a változó.
A megoldás:Private Sub start()
ThisWorkbook.makroFileWB.Sheets(1).Range("A1") = "1000"
End SubIgen, kicsit bizarrnak hat, hiszen a makroFileWB változó tartalma a ThisWorkbook objektum, viszont magát a változót a ThisWorkbook. modulban deklaráltad.
Másrészt ne felejtsük el azt sem, hogy a ThisWorkbook objektum és az ActiveWorkbook objektum nem feltétlenül ugyanarra a munkafüzetre hivatkozik...bár alapból gondolhatnánk akár ezt is.
A ThisWorkbook mindig a makrót elindító munkafüzet lesz, az ActiveWorkbook pedig, mint a neve is mutatja, az éppen aktív munkafüzet.
Azt javaslom, hogy globál/publikus változókat mindig általános modulban deklarálj és a modulnévvel így könnyen tudsz rá hivatkozni: modulnév.változónévJavaslom, nézd át a változók élettartama és hatóköre részt a VBA helpben.
Üdv.
-
Imy
veterán
Ha egy másik excelre hivatkoznak a celláim, akkor azok frissítése mikor történik meg? Mert nálam időnként nem frissül be.
-
lorcsi
veterán
válasz
Apollo17hu #35983 üzenetére
köszi
-
lorcsi
veterán
szeretnék makro használatot tanulni
hol érdemes kezdenem ?
weboldal..könyv, videó?
van e ajánlott? -
kezdosql
tag
Surgos segitseget kernek, hogyan tudom ellenorizni, mely cellak valtoztak egy excel fajlban, tobb munkalapon.
Excel2000, 2003 es 2010 erintett.Most mar biztos, hogy kulonbozo verzioju excel-ek kozotti munkak soran idonkent adatvesztesek tortennek.
eleinte arra tippeltem, hogy az ujabb verzioban tobb karaktert enged egy cellaba, ezert korabbi verziokban megnyitva ezek a cellak csonkolodnak, vagy nullazodnak.De tegnap este kiderult, hogy mas cellak tartalmai is nyomtalanul eltunnek, es neha a formazas is megvaltozik. A legfeltunobb az, amikor acellaba irt szoveg vagy keplet hirtelen tobb sorra tordelodik es az egyes cellak altal erintett sorok akar fel kepernyonyi magasak lesznek.
Tegnap raadasul kiderult, hogy mar a mentesnel is felmerult a problema, 2010-ben bevitt adatok jelentos resze mar rogton a mentes utan eltunt.Most arra kenyszerultunk, hogy senki se irjon a megnyitott fajlba, hanem uj fajlkent mentse el az altala bevitt, vagy modositott adatokat, es ha vegzett, dokumentalja a korabbi es az uj fajl meretet es az adott munkalapokon a sorok szamat. Ez meretcsokkenes eseten gyors figyelmeztetest ad, de csak akkor, ha sok adat tunik el. Raadasul a fajlok tarolasa, verziok kovetese nagyon problemas.
Hogyan lehet megoldani, hogy ha vegzett az illeto, akkor egy program osszehasonlitsa a ket excel fajlt es kapjon egy listat, hogy melyik munkalapon mely cellak valtoztak?
Sorokat es cellakat soha nem torol senki, csak cellak modositasa, illetve uj sorok bevitele tortenik. -
alfa20
senior tag
Sziasztok!
Szükségem lenne egy kis segítségre globális változóval kapcsolatban,
Open metódusba beletettem az alábbi kódot:Option Explicit
Public makroFileWB As Workbook
Private Sub Workbook_Open()
Set makroFileWB = ThisWorkbook
End Subilletve fel szeretném használni később egy Modul1-ben, most csak ennyi próba képen, de nem akarja átadni a változót, azt szeretné ha deklarálnám előbb, de elvileg már létre hoztam megnyitáskor.
Private Sub start()
makroFileWB.Sheets(1).Range("A1") = "1000"
End SubValaki tudna segíteni, hogy működjön?
Köszi előre is!
-
föccer
nagyúr
válasz
botond2225 #35977 üzenetére
A formázandó cellák kijelölés képlettel kell neked. Ott van a lista alja felé.
üdv, föccer
-
föccer
nagyúr
válasz
botond2225 #35975 üzenetére
Feltételes formázás, cella értéke alapján. Pont erre van kitalálva.
üdv, föccer
-
botond2225
csendes tag
Sziasztok,
2010-es magyar excel-ben azt szeretném megoldani, hogy 2 oszlopot hasonlítson össze, és ha az értéke nem ugyanaz, színezze be valamilyen színnel.
A cella értékei <5 vagy <20 vagy #hiányzik.
Lehet egyszerűbb lenne a kisebb jelet kivenni és utána vizsgálni?
Segítségeteket előre is köszönöm. -
Fferi50
Topikgazda
Szia!
Ciklussal végig kell menni a pivottáblákon, úgy ahogyan a pivotitemmel teszed.
Dim PT As PivotTable
Dim PvI As PivotItem
For each PT in Worksheets("Summary").PivotTables
With PT.PivotFields("Status")
For Each PvI In .PivotItems
Select Case PvI.Name
Case "(blank)"
PvI.Visible = False
Case Else
PvI.Visible = True
End Select
Next
End With
NextÜdv.
-
mdk01
addikt
Sziasztok!
Excelbe van olyan képlet, vagy egyéb megoldás, amivel a következőt meg lehet csinálni?
A lényeg, hogy van két táblázat azonos, és különböző tételekkel amiket összesít egy táblázatba figyelembe véve, hogy amelyik tételt már kiírta ott csak a darabszámot adja hozzá, de ha valamelyik táblázatban új tételt talál, akkor azt egy külön sorba kiírja és a hozzá tartozó darabszámot.
Köszönöm -
Ptech
addikt
Sziasztok,
Az alábbi kód kiveszi egy pivotból a blank mezőt.
Viszont több pivot van is van a lapon (illetve várható hogy több is kerül még bele), hogy irható át a kód úgy, hogy minden pivotból vegye ki a blank mezőket, ne csak a PivotTable1-ből?Dim PT As PivotTable
Dim PvI As PivotItem
Set PT = Worksheets("Summary").PivotTables("PivotTable1")
With PT.PivotFields("Status")
For Each PvI In .PivotItems
Select Case PvI.Name
Case "(blank)"
PvI.Visible = False
Case Else
PvI.Visible = True
End Select
Next
End With -
Imu
csendes tag
válasz
Delila_1 #35966 üzenetére
Köszi!
Közben addig próbálkoztam, míg sikerült megírni a kódot
Sub keres()
Dim ertek As String
Dim sor As Integer
Dim sor2 As Integer
Dim i As Integer
Dim j As Integer
sor = Sheets("Munka1").Range("A100").End(xlUp).Row
sor2 = Sheets("Munka2").Range("A100").End(xlUp).Row
For j = 1 To sor
ertek = Sheets("Munka1").Cells(j, 1).Value
For i = 1 To sor2
If Sheets("Munka2").Cells(i, 1) = ertek Then
Sheets("Munka2").Rows(i).Delete
End If
Next i
Next j
ThisWorkbook.Sheets("Munka2").Select
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select
Selection.Cut
ThisWorkbook.Sheets("Munka1").Select
ActiveSheet.Cells(sor + 1, 1).Select
ActiveSheet.Paste
End Sub -
thomas50.000
csendes tag
Sziasztok!
http://imgfrm.index.hu/imgfrm/9/9/0/9/THM_0014569909.png
Amikor megnyitom a munkafüzetemet, akkor ez fogad. Nem igazán értem, hogy mi a problémája. A csatolás helye létezik, és jól is van beállítva.
Ha rámegyek a csatolás szerkesztésére, akkor ott az állapotra "OK"-t ír.Minden egyes indításnál rá kell nyomjak a "tovább"-ra, és akkor frissíti a csatolásokat.
Azt szeretném kérdezni, hogy ez valahogy megoldható lenne, hogy ne írja ki mindig, hanem magától frissítsen.
http://imgfrm.index.hu/imgfrm/9/9/1/1/THM_0014569911.png
Ez is be van pipálva.
http://imgfrm.index.hu/imgfrm/9/9/1/2/THM_0014569912.png
Ha itt a Ne legyen rákérdezés... -re megyek, akkor nem adja fel az ablakot, viszont nem is frissíti az adatokat. Szóval az nem jó megoldás nekem.
Erre esetleg tudna nekem valaki segítséget, vagy ötletet adni?
Előre is köszönöm!
-
-
Acustic
újonc
Sziasztok!
Ti már sok mindent láttatok, ezért fordulok hozzátokÉn sehol nem találtam meg ...... A probléma a következő:
Amikor egy három oszlopos táblázatban cserét akarok végrehajtani, akkor beütöm a keresett szöveget, és a csere szöveget. A dokumentum elejéről elindulok (oszlop) és a következőt megnyomva, megtalálja az első cellát. Rányomok a cserére, és át is változtatja. Innen már csak space-t vagy entert kell nyomnom, és ugrik a következőre. És a következőre. Egészen addig nem ad új oldalt, amíg le nem érek a monitor aljára. Amikor oda elérek, akkor ad egy új oldat. Csakhogy az a monitor közepén lesz. Vagyis ez nem új oldal, csak egy fél.
Kérdés: Be lehetne azt állítani, hogy ne a monitor közepére, hanem a felső rész 1/5-ére ugorjon? És amikor új oldalt fog adni akkor ne a monitor legaljánál tegye meg, hanem a 4/5-énél?
Köszönöm a segítségeteket ...hátha ti már találkoztatok ezzel .........
Még talán az is jobb lenne, ha állandóan egy pozícióba tenné a cserélni kívánt cellát ........(ezáltal folyamatos lenne a lefele gördulés)
A problémám onnan fakad, hogy a legalsó cellánál nem lehet látni, hogy mi fog következni, és amikor vált, akkor már nagyon késő, -továbbá, hogy a feléig ugrik csak fel az új lap adásánál, így a monitor fele teljesen felesleges .......
Remélem érthetően írtam le ....Előre is köszi a segítséget ....
Attila -
Imu
csendes tag
Sziasztok!
Szükségem lenne egy makróra.
Van két munkalapom Munka3, Munka4. Mindkét munkalapon hasonló felépítésű táblázat van: 12 oszlop kb 500 sor. A sorok termékek cikkszáma, neve, ára stb. Az szeretném, hogy Munka4-en szereplő de a Munka3-on nem szereplő sorokat átmásolja a Munka3-as táblázat alá. A sorokat cikkszámmal lehet azonosítani ami a Munka4-en az E oszlop, a Munka3-on az A oszlop hivatkozik az F oszlopra ( pl A1 cellában =F1 ).Előre is köszi
-
kezdosql
tag
válasz
Aventador91 #35949 üzenetére
Ez ellentmondasos feltetel, hiszen ha 1 es 2 kozotti szam van barmelyik oszlopban,
akkor hogyan donti el, hogy kiirjon valamit, vagy sem? -
Certee
senior tag
Van egy olyan excel fájl-om amit, ha megnyitok, akkor a fejlécben a fájl neve után kapcsos zárójelek közé oda van írva, hogy Csoport. Mit jelent ez? Ha elmentem más néven, akkor is mögötte marad. Eddig ez nem volt ott. Mit csinálhattam véletlenül?
-
-
Delila_1
veterán
-
oke
senior tag
válasz
Delila_1 #35952 üzenetére
Kipróbáltam, nem jött össze így sem, sőt rosszabb
. Az eredeti dátum, amiből a hónapot/napot kinyertem, abban óra perc is van, erre nem emlékeztem: 2017.01.01 19:06:23 (éééé.hh.nn ó:pp)
Valamiért a kimutatásban a szűrésnél ezt a formátumot jeleníti meg, nem csak a hónap/napot.Illetve mivel egy napot több sorban jelenít meg, az óra:perc eltérés miatt..Nagyon sokáig gondolkozik már akkor, amikor rákattintok, hogy választani tudjak. Hibát is dobott ki, hogy max 65534 sort tud megjeleníteni itt. Ki is akadt az excel,..
-
oke
senior tag
Sziasztok!
Van egy excel táblám, melyből készítettem egy kimutatást. A táblázatba folyamatosan töltök adatokat, mely dátumot is tartalmaz. Egyszerre több napnyi adatot is feltöltök, a dátumok nem egymást követően vannak, hanem össze vissza. Az egyik oszlopba ezzel a képlettel a hónapot és a napot szedem ki:
=TNÉV(SZÖVEG(C2;"hh.nn"))
A kimutatás egyik jelentés szűrő eleme ez az oszlop lenne. Viszont az ilyen feltöltések után a dátumok nem egymás után következnek és nem is tudom sehogy sorba rendezni őket. Van erre valami megoldás?.
Így néz ki most:
Hiába törlöm ki a kimutatás jelentésszűrőből ezt az oszlopot és rakom vissza, nincs változás.
Ha egy új kimutatást hozok létre, akkor sorban van, de én a meglévőt szeretném frissíteni.Excel 2007
-
föccer
nagyúr
válasz
Aventador91 #35949 üzenetére
HA(ÉS(A1>0;B1>0);"Pipa";HA(VAGY(A1<2;B1<2);"";"Egyéb eset?"))
Nincs előttem táblázat, így csak fejből.
-
Aventador91
őstag
Hi! abban lehetnétek segítségemre, hogy hogyan tudom azt megcsinálni, hogy van egy táblázatom, 2 oszlop egymás mellett, tele számokkal, és azt szeretném megcsinálni valami fügvénnyel, hogy ha egy sorban mindkét oszlopban 1-nél nagyobb szám van akkor írja ki hogy pipa, ha valamelyik oszlopban 2-nél alatti szám van akkor ne írjon ki semmit.
-
sajog159
aktív tag
Apróság, de nem tudom rájönni...
Ha cellához hozzáfüzöm egy megjegyzést,
1. valamikor mindig látható a megjegyzés és
2. valamikor csak ha rámegyek kurzorral a celláraHogy tudom "kikapcsolni" az 1. opciót?
Előre is köszönöm!
-
lappy
őstag
-
bobsys
veterán
Van harom oszlop
A - datum (ev,honap,nap)
B - listaar
C - eladasi arEbbol lehet valamilyen keplettel / grafikonnal csinlani egy szep trendvonalat, hogy lassam az elmult 4 evben hogyan valtoztak az eladasi es listaarak?
-
föccer
nagyúr
válasz
Fferi50 #35939 üzenetére
Hol hangzik, remelem boldogulok vele holnap.
Az auto szuro beallitasait milyen objektumon erem el? Ezt suma ertekadassal tudom modositani?
Illetve vektor tipust ismer a wba? Tehat definialni egy vekror adattombot valamilyen tipusbol? Monsjuk array of integer vagy valami ilyesmi.
Szepen lassan jonnek elo a regi emlekek... asszem holnap is jot fogok szorakozni...
-
Fferi50
Topikgazda
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.
-
föccer
nagyúr
válasz
Fferi50 #35937 üzenetére
A makrórögzítésekkel eleddig mindig csak a bajom volt, de ha van rá reális esély, hogy valahogy kiszedjem belőle az infót, akkor megéri szenvednem vele.
Egyébként este hazafelé kigondoltam egy viszonylag gyors algoritmust, ami járható út. A nagy adattáblából leszűröm a szükséges adatpárokat, majd gombnyomásra kimásolom őket egy külön lapra, csoportosítva egymás mellé, gyorsan egymás után, végig szaladok azon a 30-40 paraméteren pár perc alatt. A kérdéses lapon pedig választéklistából, indirekttel 1 kattintással tudom frissíteni a teljes diagrammot, leírom a 2 paramétert és már vissza is adja nekem a szükséges számokat. Ha másképpen nem megy, ez lesz a megoldás.
Ha szövegesen megkapom az egyenletet az jó, mert azt már szét tudom szedni függvényekkel és át tudom konvertálni számokká. Király lenne.
-
Fferi50
Topikgazda
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.
-
föccer
nagyúr
Jó estét!
Akkor most egy nagy falat. Aki ebben érdemben tud nekem segíteni, annak jövök egy pizza/sör/pálinka kombóval.
Makróval kellene meghatároznom egy adathalmazból kiértékelhető exponenciális trend görbe fuggvényét. Pont azt, amit a diagrammokra le lehet kérni 1 gombnyomással.
Természetesen minden kék adatpontnak megvannak a koordinátái, és amire rettenetesen szökségem lenne az a trend görbének a matematikai függvénye. Ha ez megvan, akkor megváltom a világot
A lányeg, hogy elég nagy, dinamikus adatmennyiségen kellene elvégezni egy olyan elemzést, amihez az átlag görbétől való átlagos eltérést (szórást) számítok. Különböző paraméterek mellett leszűrök egy listából néhány adatpontot, amire szórást kellene számítani. (egyes adatpontok száma pártucattól 100-150 darabig terjed.
Eddig mindig úgy csináltam, hogy a leszürt adatokat betettem egy külön táblázatba és manuálisan beírtam a függvény paramétereit, amiből már az excel számolni tudott. Igen ám, de ha automatikusan akarom elvégezni az elemzést, akkor ez a "lenézem és beírom" nem működik.
Köszi szépen.
üdv, föccer
-
föccer
nagyúr
válasz
Fferi50 #35934 üzenetére
Valamikor megdicsőült gyermekkoromban foglalkoztam objektum orientált programozással, szóval nem teljesen idegen számomra ennek a lelki világa. Leginkább a programnyelv ismerete (legyen az bármennyire is egyszerű), illetve az objektumok és funkciók ismerete hiányzik.
Köszi, ezzel a szamárvezetővel már szerintem el fogok holnap boldogulni, sokat segítettél, köszönöm szépen.
üdv, föccer
-
Fferi50
Topikgazda
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.
-
föccer
nagyúr
Jó estét!
Mára egy utolsó kérdés, így este 11 körül.
Hogyan tudok makróba "beilleszteni" egy már általam jól ismert függvényt. Mondjuk egy összefűz, vagy darabhatöbb függvényt?
Például ha létrehozok egy új munkalapot, és ennek az új munkalapnak az egyik cellájába szeretnék egy olyan összeget írni, amit a fenti képletek valamelyikével, vagy bármilyen másik függvénnyel meg tudnék csinálni?
Függvénykezelésben viszonylag jó vagyok, így sokkal gyorsabb (és kényelmesebb) lenne ha a makró kódba be bírnám rakni, hogy egy cellába írja bele az adott függvény által kiszámított eredményt. Nyilván ez a szám, csak mint érték jelenne meg, nem működne dinamikusan, de ez nem baj, lehet csak gombnyomásra futó dolog is.
Köszi szépen.
üdv, föccer
-
föccer
nagyúr
-
Delila_1
veterán
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
-
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
-
Fferi50
Topikgazda
válasz
szabonagyur #35916 üzenetére
Kiegészítés:
MIcrosoft Office Professional Plus 2016Üdv.
-
Fferi50
Topikgazda
válasz
Delila_1 #35921 üzenetére
Szia!
Persze, hiszen a Range alapértelmezett tulajdonsága a Value.
De, próbáld csak ki mondjuk egy csak dátumot tartalmazó, vagy csak számot tartalmazó lapnévvel, dátum vagy számformátumú cellával. Meg fogsz lepődni Value esetén... (legalábbis akinek segítettem, így járt). Akkor derült ki, hogy dátumérték a munkalap neve....
Jó, nem feltétlenül "szabványos", hogy mondjuk egy munkalap neve egy pár lapos füzetben 10 legyen, de pl. ebben az esetben a Value már hibát okoz..., mivel nincs 10. munkalap.Üdv.
-
Fferi50
Topikgazda
válasz
szabonagyur #35916 üzenetére
Szia!
Nekem nem O365 van, hanem normál asztali.
A Choose command from lenyílót húzd le, ott lennie kell All vagy All Command opciónak. Ezen belül meg kell találnod a közössé tételt is szerintem. Ezt küldheted át a Ribbon egyéni (újonnan hozzáadott) csoportjába.Üdv.
-
föccer
nagyúr
válasz
Delila_1 #35919 üzenetére
Listából választhatóak az elemek, illetve makróval töltöm ki a C2-t, így elvileg nem lehet hiba.
Ez lett a végleges makró, kicsit igazítottam a tartományokon, meg amin kellett. Így tökéletesen működik, köszi szépen.
Sub Masolas()
Dim sor As Long
If Sheets(Range("C2").Value).Range("B3") = "" Then
sor = 3
Else
sor = Sheets(Range("C2").Value).Range("B" & Rows.Count).End(xlUp).Row + 2
End If
Sheets("Mintavételek").Range("A2:AD5").Copy
Sheets(Range("C2").Value).Range("A" & sor).PasteSpecial xlPasteFormats
Sheets(Range("C2").Value).Range("A" & sor).PasteSpecial xlPasteValues
End Subüdv, föccer
-
Fferi50
Topikgazda
válasz
Delila_1 #35917 üzenetére
Szia!
Másik fórumon szerzett friss tapasztalat szerint célszerűbb a Value helyett a Text tulajdonságot használni:
Sheets(Range("C2").Text)
Ebben az esetben ugyanis a számokkal elnevezett munkalapok is megtalálhatók, mivel név esetén szöveget vár a kis aranyos, szám esetén (value) pedig indexként értelmezi az odatett számot.Üdv.
-
föccer
nagyúr
válasz
Delila_1 #35886 üzenetére
Szuper lesz. Annyi kigészítést szeretnék hozzá kérni, hogy hogyan kell módosítani, hogy ha a cél munkafüzet megnevezése a "C2" cellában meadott szöveg lenne?
Tehát a C2 cellába bemásolok egy "MOS" szöveget, akkor keresse meg a "MOS" nevű munkalapot és arra végzi el a beillszetés.
Köszi szépen.
üdv, föccer
-
Certee
senior tag
válasz
Delila_1 #35903 üzenetére
Igen, azt tudom, de én azt szeretném, hogy autómatikusan tudja, hogy új lapra kell nyomtatni, mert a szűrőkkel folyamatosan változtatom a sorok számát és minden alkalommal át kell húzgálni a lapokat, ha helyesen akarom kinyomtatni. Ezért lenne jó valami olyan megoldás, ha ő magától tudná, hogy ott egy laptörés van.
-
Cece04
tag
Sziasztok,
segítsetek kérlek.
Van egy adathalmazom, az A oszlopot össze kellene hasonlítsam a B oszloppal az adott sorban, hogy megegyezik e. A kérdés tehát, hogy A1 megegyezik e B1-el éstovább.
Hogyha szám lenne, akkor egyszerűen csak kivonnám az A oszlopot a B-ből és ahol nem 0 az eltér,
de ez sajnos szöveg is szám is stb..Köszönöm
-
Apollo17hu
őstag
válasz
Fferi50 #35906 üzenetére
Szia!
A szövegből oszlopoknál a mező típusának beállítása jó ötlet volt. Hagyhattam "Általános" típusban, mert van egy külön opció arra, hogy milyen karakter jelölje az ezres csoportosítást és a tizedeshelyeket. Ezt kellett vesszőről pontra módosítani. Így működik, köszönöm!
-
Fferi50
Topikgazda
válasz
Apollo17hu #35905 üzenetére
Szia!
Pedig ez alapvetően a területi beállításoktól (és itt még a Windows is játszik!) függ. Próbáld meg úgy megnyitni, hogy egy oszlopba kerüljön egy sor. Ezután az Adatok - szövegből oszlopok menüpontban már meg tudod adni, hogy ne számként, hanem szövegként kezelje azt a mezőt is. Majd kicseréled benne tizedesvesszőt pontra.
Vagy: VBA nézetben (makróval) az OpenText metódust használod, ott megadhatod, hogy az egyes mezők milyen típusuak legyenek (FieldInfo paraméter).
Üdv.
-
Apollo17hu
őstag
Sziasztok!
Van egy pontosvesszővel szeparált .csv inputom, amit 2013-as Excellel társítok.
Társítást követően azokat a mezőket, amiket az Excel számként ismer fel, önkényesen törli belőlük az inputban lévő tizedesvesszőt, az így kapott számokba pedig ezres elválasztóként vesszőket helyez el.Például
-42710467,812692
van a .csv-ben, ami az Excelben már-42,710,467,812,692
-ként jelenik meg. Vagyis a mínusz 42 millióból mínusz 42 billió lesz.Milyen lehetőségem van, hogy a szám típusú értékek ne módosuljanak a társítást követően? (Területi és Excel-beállításaimhoz csak legvégső esetben nyúlnék.)
Előre is köszönöm! -
Fferi50
Topikgazda
válasz
szabonagyur #35901 üzenetére
Szia!
Tudom, nem vigasztal, de a magyar 2016-ban nálam benne van.
A Beállítások - menüszalag testreszabása pontban bekapcsolhatod szerintem. Vagy egyéni menüpontként felveheted.Üdv.
-
Certee
senior tag
Meg lehet adni egy egy sornak, hogy a nyomtatásnál attól a sortól új lapra nyomtasson?
Azért lenne ez fontos, mert ha egy képet teszek be és a sorok úgy jönnek össze, hogy fél lap marad a kép előtt akkor a képet kettévágja és két lapra nyomtatja. -
szabonagyur
félisten
Új hozzászólás Aktív témák
Hirdetés
- ALIENWARE Area-51 R6 Threadripper Edition 1920X
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5800X 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- LG 27UL550-W - 27" IPS / 3840x2160 4K / 60Hz 5ms / HDR10 / AMD FreeSync
- Samsung Galaxy A22 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy A16 128GB Kártyafüggetlen, 1Év Garanciával
Állásajánlatok
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged