-
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
-
tgumis
tag
hol tudom beállítani hogy automatikusan frissítse az adatokat ,miután a hivatkozott cellákban módosítom az adatokat.
-
#02644736
törölt tag
Sziasztok!
Olyanban kérném a segítségeteket, hogy hogyan lehet egyszerre két értéket kerestetni, és az ahhoz tartozó értéket visszaadatni
Példa.
A munka1 fülön A1 értéke 20, B1 értéke 1, a munka kettő fülön van egy 3 oszlopos táblázatom, ahol az első oszlopban valahol szerepel a 20, de nem csak egy helyen, ezért kell megkeresni még a mellette lévő oszlopban, hogy melyik 20 érték mellett áll az 1 (az első fül B1 értéke), és a kapott táblázat sor 3. oszlopából kellene nekem az érték a munka 1 C1 cellába.Ezt hogyan lehet kivitelezni?
-
Fferi50
őstag
válasz #02644736 #23056 üzenetére
Szia!
Elárulnád, hogy milyen Excel verziód van?
Csinálsz egy oszlopot mindkét munkalapra, ahova összefűzöd a keresni kívánt oszlop értékeit. Ezután ezt az értéket keresed fkeres függvénnyel ha a keresőoszlop az első a második munkalapon, vagy index és hol.van függvény kombinációval, ha a keresőoszlop nem az első a második munkalapon.
Üdv.
[ Szerkesztve ]
-
lappy
őstag
-
veterán
sziasztok!
ha van 3 subrutinom (fájl megnyitása, feldolgozás, mentés) és mindegyikben szeretném használni ugyanazt a változót (egy string), ugyanazzal a tartalommal, aminek az első sub-ban adok értéket, akkor azt hogyan, hol kell deklarálnom?
köszönöm!
"a jövötsajnos nemlehet tudni csakhamárotvagy deakormegmár azajelen"
-
Xenon86
újonc
Kedves Fórumozók!
Szeretnék segítséget kérni egy makróhoz. A feladathoz mellékeltem egy kis képecskét is. 2007-es Excelem van. Tehát a feladat, amelyhez a makró kell, a következő lenne:
Az adathalmazban (például B2: F22) számolja meg, hogy a megadott számhármasokból (például a H2:J2, aztán H3:J3 és így tovább) hány darab van? És a darabszámot írja ki a megfelelő számhármas melletti mezőbe?
A segítséget előre is köszönöm!
[ Szerkesztve ]
-
bteebi
veterán
Sziasztok!
Van egy munkafüzet vagy 20 lappal, és majdnem az összes lapján van feltételes formázás. A formázási szabályon szeretnék változtatni, hogy a félkövér dőlt helyett csak dőlt legyen a font. Egyelőre eddig jutottam:
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Columns("A:Z").Select
With Selection.FormatConditions(1).Font
.Bold = False
.Italic = True
End With
Selection.FormatConditions(1).StopIfTrue = True
NextEzt a hibaüzenetet kapom: Method 'Italic' of object 'Font' failed. Olyan munkalap is van, hogy több formázási szabály is van. Ezeket - ha jól vettem ki más bejegyzésekből - a FormatConditions.Count segítségével elvileg ciklusba lehetne szedni. Megpróbáltam, de azt írja, hogy Object required:
For i = 1 To FormatConditions.Count
With Selection.FormatConditions(i).Font
.Bold = False
.Italic = True
End With
Selection.FormatConditions(i).StopIfTrue = True
Next iVan valami ötletetek? Előre is köszönöm a segítséget!
Cancel all my meetings. Someone is wrong on the Internet.
-
Fferi50
őstag
válasz bteebi #23064 üzenetére
Szia!
Próbáld így:
dim ws as worksheet,frm as formatcondition,afrm as formatcondition
for each ws in activeworkbook.worksheets
for each frm in ws.usedrange.formatconditions
for each afrm in frm.appliesto.formatconditions
frm.font.bold=false
frm.font.italic=true
next
next
nextEz végigmegy az összes feltételes formázáson és beállítja a font tulajdonságokat.
Üdv.
-
bteebi
veterán
válasz Fferi50 #23065 üzenetére
Köszi a segítséget! Szemre jónak tűnik-tűnt, viszont valamiért ez is hibát dob: Method 'Italic' of object 'Font' failed. El se tudom képzelni, hogy miért . Próbáltam úgy is, hogy .Font.FontStyle = Italic, de arra meg azt írja, hogy Method 'Italic' of object 'Font' failed. Vajon mitől lehet?
Cancel all my meetings. Someone is wrong on the Internet.
-
slashing
senior tag
szerintem felesleges belerakni az italik true-t mivel az megmarad ha eltávolítod a félkövérséget
[ Szerkesztve ]
-
*Frenszisz*
újonc
Sziasztok!
Az automatikus kitöltéssel vagyok bajban.
Pl: beírom a következőt:
A1 cellába: =B1+C1
A2 cellába: =B3+C3Azt szeretném elérni hogy az A3 cellába =B5+C5 szerepeljen tehát kettesével léptesse tovább, próbáltam hogy kijelölöm a két cellát majd jobb alsó sarokban keresztel lehúzom, de úgy nem sikerül.
-
Thrawnad
senior tag
Hali!
Excel 2013 - 2010 esek vannak.
Kérdés: VBA-ban van olyan mint az Fkeres?
Konkrétan egy munkakódhoz tartozó kezdési időpontot kell megkeresnem, csak a táblába nem írhatom be a keresést, ott értéknek kell lennie.
ThrawnadHardver hibára ritkán van jó szoftver...
-
lappy
őstag
válasz Thrawnad #23073 üzenetére
Sub FINDSAL()
On Error GoTo MyErrorHandler:
Dim E_name As String
E_name = InputBox("Enter the Employee Name :")
If Len(E_name) > 0 Then
Sal = Application.WorksheetFunction.VLookup(E_name, Sheet1.Range("B3:D13"), 3, False)
MsgBox "Salary is : $ " & Sal
Else
MsgBox ("You entered an invalid value")
End If
Exit Sub
MyErrorHandler:
If Err.Number = 1004 Then
MsgBox "Employee Not Present in the table."
End If
End SubBámulatos hol tart már a tudomány!
-
Fferi50
őstag
válasz Thrawnad #23073 üzenetére
Szia!
A worksheetfunction.vlookup-on kívül a VBA -ban a Range.find metodust is használhatod(ez kb. ugyanaz minta Crtl+F a munkalapon):
Cset talalt = munka1.range("A1:B50").find(what:=keresem,lookin:=xlvalues,lookat:=xlwhole)
if not talalt is nothing then
megtalálta
else
nemtalálta
endif
[/][/M]
Viszont az időkeresés az külön figyelmet kíván és ki kell többször próbálni, mert az excel a dátumot, időt számként tárolja.
Üdv.[ Szerkesztve ]
-
Thrawnad
senior tag
-
Fferi50
őstag
válasz Thrawnad #23078 üzenetére
Szia!
Bocsi, most látom, hogy a "programkód" vezérlés egy kissé átvert.
Az első sor így néz ki: set talalt=
A többi része jó.Az mindegy, hogy hol van a kód és hol van a táblád, mert a kódban lehet direktben hivatkozni a keresés helyére, lást munka1.range("A1:A50'), vagy sheets("Munkalapnév").range("A1:A50").find
De ha egy kis mintát felteszel, még pontosabb lehet még többet tudunk mondani.
Pld. működik az is, ha a cellába először a képletet írod be, majd utána átalakítod értékké.
Üdv.
[ Szerkesztve ]
-
Thrawnad
senior tag
válasz Fferi50 #23079 üzenetére
Kód Név Létszám létszám kezdő idő stb
I Debrecen Pálya 3 3 7:00 19:00 19:00 7:00
ID Debrecen Start 1 1 7:00 19:00 19:00 7:00
ÖP Őrparancsnok 1 1 7:00 19:00 19:00 7:00
N1 Nyiregyháza Pálya 1 1 1 5:15 19:15 19:15 6:45
N2 Nyiregyháza Pálya 2 0 2 8:15 20:15 20:15 8:45
NS Nyíregyháza Start 18:15 6:30
MU Munkaügy 8:00 16:00
K Kamera 1 1 6:00 18:00 18:00 6:00
T Trakció 1 1 6:00 18:00 18:00 6:00
G Gépészet 1 1 6:00 18:00 18:00 6:00
M Mobil 2 2 7:00 19:00 19:00 7:00
Ni Nyiregy KJKI 1 1 7:00 19:00 19:00 7:00[ Szerkesztve ]
Hardver hibára ritkán van jó szoftver...
-
the radish
senior tag
Sziasztok!
Excel 2003-ban szeretnék az alábbi művelet elvégzésére egy makrót, ha lehet.
Adott két (a valóságban sokkal több) különböző formátumú, de végeredményben azonos tartalmú táblázat.
Szeretném azokat az adatokat kimásolni egy másik munkafüzetbe, melyek a "minta", "demo", "darab", "time" feliratok alatt található.
Sajnos munkafüzetek oszlopainak a sorrendje, valamint a fenti szövegeket tartalmazó cella szavak előtti része is változik. Szóval nem megoldás ugyanazon oszlop másolása, mert az közel sem biztos, hogy holnap is jó lesz.
Van erre valamilyen megoldás?Ellőre is köszönöm!
[ Szerkesztve ]
-
Wyll
őstag
válasz Fferi50 #23024 üzenetére
Szia!
Először is, nem vagyok vba guru, egyáltalán nem tanultam vba programozást
Ennek ellenére azt hiszem sikerült összehozni:Sub sajatmentes()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogSaveAs)
With fd
.InitialFileName = Range("gyariszam") & "_jegyzokonyv"
.FilterIndex = 2 'xlsm, azaz makróbarát munkafüzetként
.Show
.Execute
End With
Set fd = Nothing
End SubHogy tetszik?
Szerinted is jó és megfelelő az eredeti célra?[ Szerkesztve ]
Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=Wyll
-
Fferi50
őstag
Szia!
Van egy dolog, amire még oda kell figyelni: Ha nem választanak, akkor nem fog a mentésed lefutni.
Ezért ezt a részt egy kicsit módosítani kell:With fd
.InitialFileName = Range("gyariszam") & "_jegyzokonyv"
.FilterIndex = 2 'xlsm, azaz makróbarát munkafüzetként
---------
.Show
.Execute
----------
helyett
if show=-1 then
.execute
else
msgbox "Nem választottál, a mentés nem történt meg!",vbinformation
endif
End WithHa mindenképpen kell, hogy legyen mentés, akkor figyelned kell, hogy megtörtént-e. Amennyiben nem, úgy meg kell ismételtetni.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz the radish #23083 üzenetére
Szia!
Az index és a hol.van függvényt próbáld meg:
=Hol.van("*darab";2:2;0) megmondja azt az oszlopot, amelyben a darab(számok) vannak listázva, ha a fejléc a 2.sorban van. Természetesen ha másik sorban van a fejléc, akkor annak a számát kell odaírni.Ha a fejléc másik munkalapon/másik munkafüzetben van, akkor a teljes hivatkozást be kell írnod a sor elé:
=Hol.van("*darab";Munka2!2:2;0), vagy = hol.van"*darab"; '[file name.xlsx]Munka2'!2:2;0)
Ezután az Index függvénnyel megtudod kapni a tényleges értéket:
=index(Munka2!A2:I200; 3;hol.van("*darab";munka2!2:2;0)) képlettel megkapod a 3.sorban levő értét a darab fejlécet tartalmazó oszlopból.
Ezáltal nem kell pontosan tudnod, hogy a fejlécben melyik oszlop tartalmazza a darab szöveget.
A sorokat pedig természetesen folyamatosan növelned kell, erre jó például a sor függvény, amit ha paraméter nélkül írsz be, akkor az adott cella sorát tartalmazza:
Tehát, ha az 5. sorban van az adat és az 5 sorba teszed a képleted, akkor a fenti képletben az ;3; helyett beírhatod a ;sor(); képletet.
Ha másik táblára váltasz és ott újra a 3. sortól kezdődnek az értékek, akkor az addig teleírt sorok számát ki kell vonnod:
Pl. 15. sorban végződött az előző tábla, akkor a 16.sorba jön a következő tábla adata:
A képletben kicseréled a munkalap nevét, a sor() helyett pedig beírod, hogy sor()-13, mert ez adja ki a 3. sor számát, ahol a forrástáblában kezdődik az adat.
Ezt a képletet is lehúzhatod addig, amíg üressé nem válik a cella értéke (0-át nem ad vissza).
Majd névváltás, sorváltás és lehet tovább lehúzni a képletet.Remélem elég érthető volt.
Üdv.
-
samfishR
senior tag
Sziasztok!
Hogy lehetne olyat, hogy egy cellába csak az adott file nevét írassam ki? Az =CELLA("filenév") nem jó, mert kiírja az egész elérési utat, az pedig nem kellene nekem. Van erre lehetőség? Köszönöm előre is!!
-
slashing
senior tag
-
slashing
senior tag
válasz slashing #23089 üzenetére
jah meg most jut eszembe hogy ezt már használtam makróban is ott meg így néz ki
Range("D11").Select
ActiveCell.FormulaR1C1 = _
"=MID(CELL(""filename"",R[-1]C),SEARCH(""["",CELL(""filename"",R[-1]C))+1,SEARCH(""]"",CELL(""filename"",R[-1]C))-SEARCH(""["",CELL(""filename"",R[-1]C))-1)" -
Thrawnad
senior tag
-
Fferi50
őstag
válasz Thrawnad #23091 üzenetére
Szia!
Nem tudom, Ora milyen változónak lett definiálva.
Valószínűleg azért kapsz ilyen üzenetet, mert nincs a keresett értéknek megfelelő eredmény és így egy hiba értéket ad vissza a Vlookup, amit csak variant tipusu változó tud megenni.Ezért inkább másként szoktuk a problémát megkerülni:
dim talalt as variant
on error resume next
talalt=Application.WorksheetFunction.VLookup(Kod, Sheets("Adatok").Range("E14:ei34"), 16, False)
if err=0 then
volt találat
else
nem volt találat
endif
on error goto 0vagy
dim talalt as variant
talalt=Application.VLookup(Kod, Sheets("Adatok").Range("E14:ei34"), 16, False)
if iserror(talalt) then
nincs találat
else
van találat
endifA dim talalt önmagában is elég, mert az variant tipusu változót deklarál, csak azért írtam oda a típust, hogy jobban feltűnjön.
Üdv.
[ Szerkesztve ]
-
marcyman
aktív tag
Sziasztok!
A következő probléma lépett fel a munkahelyemen:
Ha jól emlékszem 2012-es vagy 2013-as Office csomag van a gépen. (Sajnos nem néztem meg, de tuti valamelyik új.)
Amikor excel táblázatban a kurzor billentyűkkel ("nyilakkal) lépkedünk a cellák között és üres cellába próbálunk új adatot beírni, akkor néha "letilt", nem engedi azt. Tehát általában működik, de néha így "bekattan" és olyankor egérhez kell nyúlni, kattintani kétszer hogy működjön.
Ezt nem egy bizonyos dokumentumnál csinálja, hanem az összesnél.
Valami beállítási probléma lehet? Windows 7 fut a gépen.
-
ncp
csendes tag
Sziasztok!
2010-es Excelben szeretném megoldani a következő problémát:
Egy munkafüzeten számos azonos méretű, több csoportra bontott táblázat helyezkedik el egymás alatt. Az azonos csoportok nem egymást követik. A lenti példa alapján azt szeretném megtudni, hogy a munkafüzeten található A, és B táblázatokban összesen hány darab nem üres cella van az egyes sorokban.
Tehát az eredmény valahogy így nézne ki:A - csoport
____________
1|_1_|_______|
2|_1_|_______|
3|_1_|_______|B - csoport
____________
1|_0_|_______|
2|_2_|_______|
3|_1_|_______|Ez így nagyon le van egyszerűsítve, a valódi munkafüzeten kb. 1000 táblázat van és nagyjából 10 csoport.
---------------------------------------------Munkafüzet-----------------------------------------
A - csoport
____________
1|_X_|_______|
2|___|_______|
3|___|_______|B - csoport
____________
1|___|_______|
2|_X_|_______|
3|___|_______|B - csoport
____________
1|___|_______|
2|_X_|_______|
3|_X_|_______|A - csoport
____________
1|___|_______|
2|_X_|_______|
3|_X_|_______|[ Szerkesztve ]
-
Fferi50
őstag
Szia!
Kérdés:
Az egyes táblázatok között van üres sor, vagy a fejléc (A csoport, B csoport) választja el egymástól őket?
Hova szeretnéd az eredményt tenni?Egyébként a darabüres függvény használható az üres cellák megszámolására, vagy a darabhatöbb függvény, ha feltétel szerinti üreset keresel.
Egy minta sem ártana.... Mert amit itt leírtál, az nem mutatja a munkalapon való elhelyezkedést.
Üdv.
[ Szerkesztve ]
-
botond187
csendes tag
válasz Delila_1 #22872 üzenetére
Szia,
tanácsodat megfogadva, kialakult a végleges verzió.
Nagyjából maradt ugyanaz, csak hogy mit, hogy olvasson ki, az tisztázódott.
Tehát, azt szeretném elérni, hogy a B oszlop ki legyen töltve.(6 cikkszámmal "I" jellel elválasztva)Az xls fájlból jól lehet látni amit feltettem: IDE
A cikkszám így áll össze: főkategória - alkategória - 2.alkategória - sorszám (3 jegy)
Tehát 4 részből áll.
Ha nincs mondjuk 2.alkategória, akkor ott "00" szám áll.A-oszlopban vannak a cikkszámok.
B-oszlopba kellene tenni a találatokat.
D-oszlopban lenne a lépcsőköz.Csoportok:
E-oszlop kiolvasás alsó határa
F-oszlop kiolvasás felső határaG-oszlop kiolvasás alsó határa
H-oszlop kiolvasás felső határaI-oszlop kiolvasás alsó határa
J-oszlop kiolvasás felső határaK-oszlop kiolvasás alsó határa
L-oszlop kiolvasás felső határaM-oszlop kiolvasás alsó határa
N-oszlop kiolvasás felső határaO-oszlop kiolvasás alsó határa
P-oszlop kiolvasás felső határaB oszlopba úgy szedje össze az eredményt, hogy A oszlop bármely eleme ha beleesik D oszlop egymás alatti értékébe (D2-D3, D3-D4 D4-D5 stb stb), akkor az E-F, G-H, I-J, K-L, M-N, O-P csoportok oszlopaiba eső cikkszámot/okat adja ki eredményül.
Ha több találat is lenne csoporton belül, véletlenszerűen válasszon ki 1-et.
Kis csavar, ha ez is megoldható: ha nincs olyan feltétel, hogy mind a 6 csoportból tudjon választani 1-1 cikkszámot, akkor, a meglévőből válasszon ki annyit, hogy elérje a 6 cikkszámot.
Tehát a cél, hogy a B-oszlopba 6 cikkszám kerüljön.Remélem érthető
Köszönöm a segítséget előre is
Új hozzászólás Aktív témák
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Luck Dragon: Asszociációs játék. :)
- OLED TV topic
- Path of Exile (ARPG)
- Android alkalmazások - szoftver kibeszélő topik
- gban: Ingyen kellene, de tegnapra
- Villanyszerelés
- Fotók, videók mobillal
- Házimozi belépő szinten
- The Division 2 (PC, XO, PS4)
- További aktív témák...
- Windows 10/11 Home/Pro , Office OEM/Retail kulcsok
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! LEGOLCSÓBB! Automatikus 0-24
- Eladó Steam kulcsok kedvező áron!
- Game Pass Ultimate előfizetések 1 - 25 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN!
- Steam, Windows, Origin kulcsok, előfizetések közvetlenül a kiadótól, a LEGJOBB ÁRON!