-
Fototrend
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
-
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
Warton
#46660
üzenetére
Szia!
A dátum nem szöveg!
Ezért dátumként vagy számként kell rá keresni.
Pl: =DARABHATÖBB(A1:A100;">" & DÁTUM(2021;5;1);A1:A100; "<" & DÁTUM(2021;6;1))
Ugyanígy a SZUMHATÖBB függvénnyel is.
De másként is lehet. Egy segédoszlopba felveszed a dátumok hónap értékét:
= hónap(A1)
Ezután a segédoszlop alapján már számolhatsz a darabteli, szumha függvényekkel.
Üdv. -
Fferi50
Topikgazda
válasz
tomi_x
#46657
üzenetére
Szia!
Ahogyan a hiba leírás is mutatja, amennyiben nem talál ilyen tartalmú cellát, akkor az "a'" változó értéke Nothing - azaz üres. Egy nem létező objektumnak pedig értéke sincs.
Mielőtt további műveleteket végeznél, meg kell vizsgálnod, hogy van-e találat:'Set a= sor után
If a Is Nothing then
Msgbox "nincs"
Else
Msgbox "van"
End If
Üdv. -
Fferi50
Topikgazda
válasz
llaszlo
#46636
üzenetére
Szia!
Kijelölöd a formázandó területet (Pl. A1-C1000).
Kezdőlap - Feltételes formázás - új szabály - a formázandó cellák kijelölése képlettel
A képlet: =$D1="NEM" formázás megadása majd OK.
Ismét új szabály - Képlet =$D1="IGEN" formázás megadása OK.
Minden változatnak megfelelően új szabály a fentiek szerint.
Ha nem az 1. sorban kezdődik a terület, akkor a képletben azt a sort kell beírni, amelyikben a terület kezdődik.
Üdv. -
Fferi50
Topikgazda
válasz
Senton
#46608
üzenetére
Szia!
Használhatod pl. a Select Case ..... End Select szerkezetet.Select Case Range("H6").Value
Case "H"
Range("H8:H29").Value=9
Case "K", "SZ"
Range("H8:H29").Value=8
Case "Csü"
Case "P"
.
End Select
Amint látod, a Case - nél több értéket is fel lehet sorolni.
A 6. soron végigmenő ciklus alapján csinálhatod a napok szerinti kitöltést a fenti szerkezettel..
Üdv. -
Fferi50
Topikgazda
válasz
the radish
#46606
üzenetére
Szia!
Szerintem ezt az Excel saját kénye-kedvére jeleníti meg....
Üdv. -
Fferi50
Topikgazda
válasz
the radish
#46604
üzenetére
Szia!
Worksheets(1).ShowDataForm
Üdv. -
Fferi50
Topikgazda
-
Fferi50
Topikgazda
Szia!
"Ez tuti valami PDF-es adatbiztonsági bohóckodás."
Szerintem pedig nem. Ha megnézed a linkeket, láthatod, hogy az első kettő helyi fájlra mutat, feltételezhetően egy ideiglenesen létrehozottra - erre utal az AppData/Local ill a documents$ az elérési utakban. Azaz megnyitás előtt a hálózatról letölti a helyi gépre a fájlt.
A PDF szerkesztőben kellene megnézni, hogyan lehet az eredeti linket stabilizálni.
Üdv. -
Fferi50
Topikgazda
válasz
pero19910606
#46533
üzenetére
Szia!
A 2. kérdésre még egy ötlet:
Az átmásolás előtt megjegyzed, mi az utolsó sor az ellenőrzős táblában és ez után eggyel kell kezdeni a kitöltést (ez lesz LR3 értéke). És nem kell hozzá ciklus, egy menetben adhatsz értéket az adott tartománynak:Range("B" & LR3 & ":B" & LR4).Value="Magas érték C gyár"
Csak minden másolás után be kell írni az okokat.
Üdv. -
Fferi50
Topikgazda
válasz
pero19910606
#46533
üzenetére
Szia!
1. Használd a Listobject DataBodyRange tulajdonságát:ActiveSheet.Listobjects.DataBodyRange.SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Ellenőrzés").Cells(3,2) " ide megadhatod direktben a céltábla címét,
2. Nézd meg, hogy az LR4 sor feletti cella üres-e és addig menj visszafelé, amíg üres a felette levő sor. Esetleg próbáld meg az End(xlUp) -ot ismételten végrehajtani ettől a cellától.
Üdv. -
-
Fferi50
Topikgazda
válasz
pentium4
#46515
üzenetére
Szia!
Fkeres függvénynél rész előfordulást a csillag (*) joker karakterrel kereshetsz, pl.
"*" & A1 & "*" minden olyan előfordulást megtalál, amelyikben előfordul az A1 cella értéke.
Ha elől van csak csillag, akkor az A1-re végződő, ha hátul van csak, akkor az A1-el kezdődő találatokat adja vissza. A negyedik paraméter HAMIS vagy 0 legyen ebben az esetben.
A mutatott példádban viszont be kell vetni egy másik függvény kombinációt:
$B$1=$A$19 helyett, ha a B1 érték lenne a keresendő, akkorHA(HIBÁS(SZÖVEG.KERES($B$1;$A$19:$A$2999);5000;SOR($A$19:$A$2999))
képlet lehet jó szerintem a KICSI függvény első paraméterének
Üdv. -
Fferi50
Topikgazda
válasz
paolinho
#46471
üzenetére
Szia!
Az ötjegyű szám egyértelműen az Excel dátum ábrázolásából ered. Az Excel ugyanis 1900. január 0-tól eltelt napokat számolva ábrázolja a dátumot. Tehát biztosan dátum jön át, csak a Word nem "eszi meg" a formátumot. Milyen Word verziód van?
(Ugye átkapcsoltad mező megjelenítésre a körlevelet és nem maradt "mezőképleten"?)
Csak mert azt a képet mutattad.
Üdv. -
Fferi50
Topikgazda
válasz
paolinho
#46457
üzenetére
Szia!
Teljesen mindegy, hogy az Excelben milyen a cella formátuma! Viszont ha szövegként szerepel a cellában az érték - bár dátumformának látod -, akkor hiába formázod a cellát dátumként, attól az még szöveg marad és így nem tudja a Word dátumnak látni. Bár nem tudom, hogy akkor a 44136 honnan jöhet neki.
Esetleg megmutatnád képeken?
Üdv. -
Fferi50
Topikgazda
válasz
Darko_addict
#46452
üzenetére
Szia!
Örülök, hogy sikerült.
Azért vagyunk itt, hogy segítsünk.
Üdv. -
Fferi50
Topikgazda
válasz
Darko_addict
#46450
üzenetére
Szia!
Az INDEX - MATCH páros ilyenekre (is) alkalmas. A képlethez tudni kell, hogy az INDEX első paramétere az a tartomány, ahol keresünk, második paramétere a sor, harmadik pedig az oszlop. Tehát a keresést eszerint kell összeállítani:=INDEX('Saját termelés'!$I$2:$AN$42;MATCH(Előrejelzések!F50;Saját termelés'!$A$2:$A$42;0);MATCH(J47;'Saját termelés'!$I$2:$AN$2;0))
A képlet húzhatósága miatt fontos a tartományok abszolút módon ($-os) megadása.
Üdv. -
Fferi50
Topikgazda
válasz
paolinho
#46440
üzenetére
Szia!
A Wordben a mező beszúrásánál @ paraméterrel megadhatod a megjelenés módját, függetlenül attól, hogy az Excelben milyen a cellaformátum - de az adatnak az Excelben dátum formátumnak kell lennie. Pl.
{MERGEFIELD Dátum1 \@"yyyy.MM.dd" \* MERGEFORMAT}
az éééé.hh.nn formátumban jeleníti meg a körlevélben a dátumot.
A beszúrt mezőn jobb egérgombbal kattintva a Mezőkód váltást kiválasztva szerkesztheted a mező formátumot is.
Üdv. -
Fferi50
Topikgazda
válasz
p5quser
#46420
üzenetére
Szia!
A Select Case pont azért van, hogy ne kelljen bonyolult és hosszú if szerkezeteket beágyazni.
Nyilván több lehetőség esetén több ága lesz a Case-nek (is).
Az egyes ágakon belül lehet feltételeket vizsgálni, pl.:Select Case szam
Case 2,3
if neve=juszuf or neve=huan (or neve=wong) then
Case Else
End Select
(persze a neveket ne felejtsd el változóba vagy idézőjelbe tenni.... )
Üdv. -
Fferi50
Topikgazda
Szia!
Próbáld meg ezt a tömbképletet a B1 cellába:=INDEX($A$1:$A$10;KICSI(HA(($A$1:$A$10>5);SOR($A$1:$A$10);"");SOR()))
A tartományokat igazítsd a sajátodhoz.
A KICSI képlet második paraméter akkor SOR(),ha az oszlop első cellájába írod a képletet. Ha lejjebb, akkor ki kell vonni belőle a megelőző sor számát, hogy elsőre 1 legyen az eredmény (pl. a harmadik sor esetén SOR()-2).
Ha elfogytak a számok, akkor hiba lesz az eredmény, ezt elkerülheted, ha a HAHIBA függvénybe ágyazod a képletet és hiba esetére megadod pl. hogy "NICS TÖBB".
Üdv. -
Fferi50
Topikgazda
Szia!
Úgy gondolom, a script szóközzel választja el a paramétereket egymástól, ezért kerül minden szó új sorba.
A szöveghatároló idézőjeleket is hozzá kell adnod amikor a paramétereket megadod, úgy mint az utVbs-nél.
Kb. így:parancs = """" & utVbs & """ " & minta & " " & tipus & "" """ & angol & """ """ & cseh & """ """ & nemet & """ """ & magyar & """
Üdv. -
Fferi50
Topikgazda
Szia!
Valószínűleg azért, mert azok nem valódi dátumok, hanem dátumnak látszó szövegek.
Egy segédoszlopban alakítsd át az értékeket dátummá pl. a következő képlettel:=DÁTUM(JOBB(A1;4);KÖZÉP(A1;4;2);BAL(A1;2))
Ezután ezt az oszlopot alakítsd át értékké (másolás - irányított beillesztés érték), majd erre már rendezhetsz - illetve átmásolhatod az eredeti adatokra.
Üdv. -
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
alikov
#46388
üzenetére
Szia!
Hááát....
Én nem látok semmi olyan azonosítót, amellyel ki lehetne választani a feladathoz tartozó teljesítést. Legfeljebb azt lehetne feltételezni, hogy az előbb "kiadott" feladat teljesül először, (vagy az először kiadott feladat teljesül legkésőbb gondolom az előbbi valószínűbb...).
Megpróbálhatsz egy ilyen képletet a C oszlopba (a B oszlopot üresen hagynám)
C1 képlete=FKERES("*SIKERES*";$A1:$A$2000;1;0)
Ez megtalálja az első sikeres teljesítést.
Ezután a képletet az első sikeres teljesítési sor utáni cellába másolod Ctrl + C Ctrl+V használatával. Ez megtalálja a következő sikeres teljesítést. Az eredményt bemásolod értékként a második feladat sorhoz.
Kövekező lépés: A második sikeres teljesítési sor utáni cellába ismét bemásolni a képletet, az eredményt pedig a harmadik feladat sorhoz másolod értékként.
Ezt így folytatod, míg végig nem érsz az adataidon.
Azért van erre a kissé bonyolult eljárásra szükség, mert az FKERES mindig az első eredményt adja vissza, ezért "mozgatni kell" a keresési tartomány elejét.
Üdv. -
Fferi50
Topikgazda
válasz
Salex1
#46330
üzenetére
Szia!
" tele van valami nemlátható, örökölt szeméttel. "
Erre az esetre sajnos nem jó még a másolás - beillesztés értékként sem, mivel ugyanúgy visszamásolja a "szemetet", a nem látható karaktereket is.
Próbáld meg a TISZTÍT függvényt, egy másik munkalapra másolva az értékeket:
=TISZTÍT(Munka1!A1)
Ez húzható oldalra és lefelé is.
Utána ezen a munkalapon másolás- irányított beillesztés értékként.
Talán segíthet.
Üdv. -
Fferi50
Topikgazda
válasz
FoxiestFox
#46305
üzenetére
Szia!
Leszűröd az adott oszlopot majd átmásolod az eredményt az új táblába.
Az új munkalapot másold be abba a fájlba, amelyikben az adatod van. Ebben az esetben az Adatok - Speciális (szűrő) alkalmazásával egyből az új helyre másolhatod.
Üdv. -
Fferi50
Topikgazda
Szia!
Képfeltöltés: A képmetszővel csinálsz egy képet, elmented. Utána itt a képfeltöltésre kattintva kiválasztod az elmentett képet, majd a beillesztést. Ezután elküldöd a bejegyzést.
Sajnos ez alapján a leírás alapján elképzelésünk sincs, milyen adataid vannak ott és miket csinálsz velük.
Próbáld megmutatni vagy képen vagy a fájlt feltöltve valahova és a linket idetenni.
Üdv. -
Fferi50
Topikgazda
Szia!
1. Szerintem a keresési tábládat rögzíteni kell ($-os címeket kell használni).
Tehát=FKERES('1. feladat'!A9;'1. feladat'!A1:D9;4) helyett=FKERES('1. feladat'!A9;'1. feladat'!$A$1:$D$9;4;0)
Az utolsó paramétert pedig 0 (vagy hamis) értéknek kell megadni, ekkor keres egyező értéket az FKERES függvény.
Ha így sem megy, akkor próbáld átmásolni az eredeti helyről a keresendő értéket. Előfordulhat, hogy nem látható karakterek is vannak benne, illetve dátumnak látszik de szöveg a cellában levő érték.
Üdv.
Ps. Az sem lenne haszontalan, ha tennél fel képet róla. -
Fferi50
Topikgazda
válasz
p5quser
#46266
üzenetére
Szia!
Nagyon sajnálom, figyelmetlenül írtam be a kódot:tbtomb(1) =ActiveSheet.Textbox1 helyettSet tbtomb(1)=ActiveSheet.Textbox1
...
Így fog a Textbox objektum bekerülni a tömbbe.
A SendKeys-sel óvatosan kell bánni, mert abban az ablakban érvényesül, amelyik éppen aktív.
Üdv. -
Fferi50
Topikgazda
válasz
p5quser
#46249
üzenetére
Szia!
Az OleObject helpje azt mondja, hogy csak névvel lehet rá hivatkozni...
itt olvashatod
Ezért sajnos meg kell kerülni a problémát, pl. a következőképpen:
A textboxokat beteszed egy tömbbe:Dim tbtomb(x) x=a textboxok száma
tbtomb(1)=Activesheet.Textbox1
tbtomb(2)=Activesheet.Textbox2
és így tovább.
Ezután a CheckBox számát használhatod indexnek:
With tbtomb(cbi)
.SelStart = 0 stb
End With
Nekem úgy tűnik, másként nem megy - mivel az objektum tallózóban a munkalapon levő textboxok önálló objektumként jelennek meg.
Üdv. -
Fferi50
Topikgazda
válasz
pero19910606
#46236
üzenetére
Szia!
Szerintem az a probléma, hogy a cikluson kívül adsz értékeket azoknak a változóknak, amelyeknek a ciklusban kellene változniuk.
Ezt a 3 sort:With Worksheets("Rendelés")LR = .Cells(.Rows.Count, "A").End(xlUp).RowFor i = 12 To LR
tedd azx=Cells(i,41)elé.
Nem látom továbbá a T változód hol kap értéket, ha pedig szövegesen T akkor a feltétel vizsgálatánál idézőjelbe kell tenni (="T"), mint a többi szöveges változó értékadást.
Üdv. -
Fferi50
Topikgazda
Szia!
"Ez valami excel hiba és kerüljem meg valahogy"Nevezhetjük hibának is, ez az Excel lebegőpontos számábrázolási módjából, annak pontosságából adódik. Az Excel 15 számjegy pontossággal végzi a számításokat. A kettes számrendszer használata miatt adódhatnak eltérések a "sokadik" helyiértéken.
Ezért a szám összehasonlításoknál igen, meg kell kerülni a problémát. A számunkra még fontos helyiértékekre kell kerekíteni, hogy a számolás-ábrázolás technikából eredő eltéréseket ne vegye figyelembe a rendszer.
Esetedben például az ezredre kerekítés már nem fog eltérést jelezni.
Az Excel nem a tudományos pontosság igényével lett megalkotva.
Üdv. -
Fferi50
Topikgazda
válasz
torokvilmos
#46225
üzenetére
Szia!
Bocs, de hogyan képzelted azt, hogy a szűrés által elrejtett sorokat a másolás után látni fogod anélkül, hogy a szűrést megszüntetnéd? Hiszen az elrejtett sor továbbra sem fog látszani, akkor sem, ha van benne adat. (Azért nem látsz folytatást lefelé, mert sok az elrejtett sor, több, mint amennyi sor van a szűrésben.)
A másolás után szüntesd meg a szűrést és ott lesznek az átmásolt értékek a másik oszlopban szerintem.
Ha nem, akkor az a tanulság, hogy új munkalapra kell másolni a szűrt táblázatból az adatokat. Erre javasolnám neked az Adatok - Speciális (szűrés) használatát. Egyből másolhatók is a szűrt adatok az új helyre.
Üdv. -
Fferi50
Topikgazda
válasz
torokvilmos
#46220
üzenetére
Szia!
A képek lemaradtak...
Üdv. -
Fferi50
Topikgazda
Szia!
Változó számú - előre nem meghatározható - nevekre nem lesz ráhúzható képlet.
Az egy név egy cella esetet viszont elérheted a következőképpen:
Adatok - szövegből oszlopok - tagolt - az elválasztójel vessző
Ezután a neveket megfordítod. Majd - ha szükséges, újra összefűzöd.
Tudom, munkaigényes.
Vagy makró kell hozzá.
Üdv. -
Fferi50
Topikgazda
válasz
friccccc
#46204
üzenetére
Szia!
Még valami. A szövegdaraboló varázslóval másik megoldás is lehetséges:
Ha nem a tagolt, hanem a fix széles opciót választod az első párbeszéd panelen, akkor a következőn áthelyezheted vagy megszüntetheted a törésvonalakat:
helyett akár így is csinálhatod:
Ezután a következő panelen csak 3 oszloppal van dolgod:
Üdv. -
Fferi50
Topikgazda
válasz
friccccc
#46204
üzenetére
Szia!
Ez valami egyéni formátum?
Adatok - szövegből oszlopok - tagolt - a következő panelen kijelölöd a szóközt.
Ezután a következő panelen meglátod a felosztást. Oszloponként bejelölheted a formátumot, ami nem szükséges, arra az oszlop kihagyása (átlépése) mezőt jelölöd be:
Itt csak a Nov tartalmazó oszlopot hagyod meg, bejelölöd rendeltetési helynek a B1 cellát.
Befejezés és kész.
Ezt megteheted egyszerre az egész A oszlopoddal, egyben kijelölöd az értékeket és végigcsinálod a műveleteket.
Üdv. -
Fferi50
Topikgazda
válasz
Mauzes
#46195
üzenetére
Szia!
FKERES függvény, 4. paraméter Igaz vagy ami vele egyenértékű 1.
A sávhatárokat egy számmal kell megadni, mindig az alsó értéket:
Growth 0 -10 - 20 - 30 - 40 -50 - 60 - 70 - 80 - 90 - 100
Multiple 8 9 10 11 12 13 14 15 16 17 18
(Természetesen ezt két oszlopban.)
A képlet=Fkeres(E1;$A$2:$B$12;2;1)
Üdv. -
Fferi50
Topikgazda
válasz
csferke
#46192
üzenetére
Szia!
Azért ez nem ennyire egyszerű.
A formoknak külön kódlapjuk van, ahova eseménykezelőket és normál eljárásokat is be lehet illeszteni. Ahhoz, hogy a megfelelő helyre kerüljön az adat, nem a formot kell pozicionálni.
A form sem a kiválasztott (selected) cellánál fog megjelenni.
A form pozicionálásra két lehetőség is van:
a.) az Activate eseménykezelőben direktben megadhatod a Top és Left paraméterekkel, hogy hol jelenjen meg a képernyőn. Ugyanitt a Height és a Width paraméterekkel megadhatod a méreteit is.
b.) a form Move tulajdonságát használva szintén meghatározhatod a helyzetét és a méretét a program futása közben is.
FONTOS: a méretek képpontban vannak meghatározva és a képernyő bal felső széle a 0,0 koordináta. Ezt kell figyelembe venned, amikor meghatározod a megjelenés helyét.
Pl. az alábbi eseménykezelők a form kódlapján:Private Sub UserForm_Activate()
With Me
.Top = Range("N1").Top + 10
.Left = Range("N1").Left
End With
End Sub
Ez az N1 cella pozíciójának megfelelően, de a képernyő felső széléhez nagyon közel jeleníti meg a formot - mivel az első sor top pozíció értéke 0.Private Sub UserForm_Click()
With Me
.Move 100, 120, 400, 300
End With
End Sub
Ez a formra kattintáskor áthelyezi a formot a 100,120 kezdőpontra és átméretezi.
Kis gyakorlással el fogod tudni helyezni a formokat a számodra megfelelő helyen.
A formon bevitt értékek elhelyezésére külön eljárásokat kell írni - ami lehet eseménykezelő vagy normál eljárás.
Pl.Private Sub TextBox1_Change()
Range("A1").Value = Me.TextBox1.Text
End Sub
A Textbox1 változásakor az értéket beírja az A1 cellába.
Üdv. -
Fferi50
Topikgazda
válasz
lordring
#46186
üzenetére
Szia!
Ezek szerint a dátum oszlop szövegformátumban van.
Kellene egy segédoszlop, amibe a dátumot dátumfüggvénnyel átalakítva teszed bele, majd utána értékké alakítod.
Ha valóban aposztróf (') van előtte - utána a cellában, akkor például ez a képlet jó lehet:=DÁTUMÉRTÉK(BAL(A1;10))
(mivel az első aposztrófot formátumkódnak tekinti).
Vagy:=DÁTUM(BAL(A1;4);KÖZÉP(A1;6;2);KÖZÉP(A1;9;2))
Ezután a segédoszlopot is belevéve meg tudod csinálni a kimutatást.
Üdv. -
Fferi50
Topikgazda
válasz
woodworm
#46180
üzenetére
Szia!
A "közös" munkalapon szerepel az átadó és az átvevő adatai is. A neveket adatérvényesítéssel listából lehet kiválasztani (Adatok- Érvényesítés - Lista). A hozzá tartozó adatokat FKERES függvénnyel automatikusan hozza fel.
A körlevelet pedig ebből a munkalapból hozod létre.
Az Adatérvényesítés listája az A2 cellától lefelé:
=Átadók!$A$2:$A$10
Az F2 cellától lefelé:
=Átvevők!$A$2:$A$10
Természetesen a lista végét alakítsd a szükségesre.
A függvényeket látod a képen:
A tartományokat itt is alakítsd megfelelőre.
Üdv. -
Fferi50
Topikgazda
válasz
Lajos.P
#46146
üzenetére
Szia!
Pl. Feltételes formázással:
Kijelölöd az első oszlop első celláját.
Ezután Kezdőlap - Feltételes formázás - Új szabály - A formázandó cellák kijelölése képlettel
A képlet pedig:=Darabteli($B$1:$B$10000;$A1)>0
Meghatározod a formázást, majd OK.
Ezután Kezdőlap - Feltételes formázás - Szabályok kezelése - kiválasztod ezt az előbb alkotott szabályt. Az érvényességhez beírod: $A$1:$A$80000 Alkalmaz - OK.
A $B$1:$B$10000 helyére írod a keresendő számaid címét.
A $A$1:$A$80000 helyére ahol keresed a számokat.
Üdv. -
Fferi50
Topikgazda
válasz
ny.erno
#46139
üzenetére
Szia!
Nézd meg légy szíves, hogy a képletekben (beleértve a feltételes formázást is) vannak-e egész sorra-oszlopra vonatkozóak.
Azokat váltsd át konkrét tartományokra, akkorákra, amekkora feltételezhetően elegendő.
(Képzeld el, ha egymillió sort kell szűrni, az azért időbe telik.)
Üdv. -
Fferi50
Topikgazda
válasz
Petium001
#46133
üzenetére
Szia!
Tehát mi a pontos feltétel:
1. 5 kg alatti a tétel. Ebben az esetben, ha az érték 2999 alatt van, akkor 1,3 a szorzó, ha felette van, akkor 1,25D1<5;HA(B1<2999;B1*1,3;B1*1,25)
ez a feltétel azt számolja ki, ha alatta van 1,3, ha nincs alatta 1,25. Azt nem írtad, mi van akkor, ha pontosan 2999 Ft az érték.
2. 5 kg feletti a tétel, akkor megy az általad beírt számolás.
Mi a gond?
Üdv. -
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
Petium001
#46127
üzenetére
Szia!
Kicsit megforgatnám a képletet:=HA(D1<5;HA(B1<2999;B1*1,3;B1*1,25);(B1+FKERES(D1;$I$1:$J$9;2;1)+HA(FKERES(D1;$I$1:$J$9;2;1)+B1<8000;-995;0)))
mivel az első eldöntendő kérdés a D1<5, ha kisebb, akkor nézzük meg a B1 értékét, ha nem, akkor marad az eredeti képletrész.
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing
#46113
üzenetére
Szia!
Használhatod pl. a With kulcsszót:With Sheets("AP - modified").Cells(AP_sm, 26)
If .Value= Sheets("65M").Cells(2, 2) Or .Value= Sheets("65M").Cells(2, 3)) Or .Value = Sheets("65M").Cells(2, 4)) Or .Value = Sheets("65M").Cells(2, 5)) Or .Value = Sheets("65M").Cells(2, 6)) Or (s) Then
....
End If
End With
De érdekes lehet a következő is szerintem:If Not Range(Sheets("65M").Cells(2, 2),Sheets("65M").Cells(2, 6)).Find(What:=Sheets("AP - modified").Cells(AP_sm, 26).Value,lookIn:=xlValues,lookAt:=xlWhole) Is Nothing Then
Ez utóbbi akkor ad igaz értéket, ha megtalálja az adott cella értékét a másik tartományban.
Üdv. -
Fferi50
Topikgazda
Szia!
Már azt sem értem, miért kell havonta külön munkalap ehhez és utána ezek összesítéséhez egy újabb.
Egy munkalapon vezethető az A-C oszlopban a kívánt adat (dátum, múzeum, belépődíj) folyamatosan egymás alatti sorokban.
A kiadások vezetésére szolgáló 3 oszlopot átalakítod táblázattá.
Ezután Kimutatás beszúrása - forrás a táblázat - Sorcimke múzeumok - oszlopcimke dátumok (itt az Excel kapásból felajánlja a negyedéves összesítést is, de kis trükkel a havi összesítés is működik) - összesítés belépődíj. (A kis trükk - az oszlopcimke dátumokat átforgatod sorcimkének, ekkor megjelennek a hónapok, ezt vissza oszlopcimkének. Ami nem szükséges, azt kiveszed a kimutatásból.)
Az aktualizáláshoz csak annyi kell, hogy beírod az új adatokat a táblázatodba, majd a kimutatást frissíted.
Ráadásul a kimutatás összesített adatait kattintással kibonthatod egy új munkalapra.
Mutatok egy példát, ahol a kimutatás mellett diagram is készült:
Üdv. -
Fferi50
Topikgazda
válasz
ny.erno
#46099
üzenetére
Szia!
1. Ehhez kellenének egyértelmű megfeleltethetőségek a két munkalap között. Jelenleg pl. a handyshop.cc -hez 15 e-mail cím tartozik. Honnan fogod tudni, melyiket kell átvinni hozzá?
2. Az Excel fájlból lehet lekérdezést készíteni, de ehhez arra van szükség, hogy tudd, melyik fejlécnek melyik fejléc felel meg a két fájlban. Más szóval, melyik oszlop tartalmazza a Munkafüzet1-ben azokat az adatokat, amelyeket a Main_database fájl Cégnév oszlopába szeretnél beolvasni és így tovább.
A lekérdezést utána át lehet alakítani értékké a kapcsolat megszüntetésével. Ezután már törölhető a "munka" fájlod.
Üdv.
Ps. (Nem) mellesleg adatbázist miért Excelben építesz és nem adatbázis kezelőben (pl. Accesben). Sokkal egyszerűbb és kevesebb hibával jár, továbbá oda is "be lehet húzni" az Excelben meglevő adataidat. Persze a megfeleltetések ott is szükségesek. -
Fferi50
Topikgazda
Szia!
Az előző hozzászóló megoldása mellett javaslom nézd át a képleteidet és az egész oszlopra (A:A stb.) hivatkozókat cseréld ki konkrét tartományokra, amelyek még lefedik az igényeidet (Pl. A2:A50000).
Ha maradnak a teljes oszlop hivatkozások, hamarosan ismét hasonló problémával szembesülhetsz.
Természetesen az egész sorokra is ez vonatkozik (bár az ritkábban fordul elő).
Üdv. -
Fferi50
Topikgazda
válasz
Lasersailing
#46075
üzenetére
Szia!
Érdemes egy mentést csinálni a hibás fájlról.
Ezután kézzel megnyitni, elmenteni az Excel által javított fájlt és azt megpróbálni megnyitni.
Itt valószínűleg nem a lekérdezésben van a hiba, hanem a fájl szerkezet "rongálódott meg". Az eredeti alkotó sem tudná megjavítani.
Esetleg meg kellene búvárkodni egy korábbi mentését a fájlnak.
Üdv. -
-
Fferi50
Topikgazda
válasz
RAiN91
#46061
üzenetére
Szia!
"Nem tudom, hogy működik, de makró nincs benne'"
Azért ez kicsit hihetetlen. Üres Excel "magától" nem csinál semmit.
Az eseménykezelésnek egyébként működnie kellene. A ciklus valóban lassú, pláne ha már sok adat van benne. De talán nem kellene mindig előlről kezdeni a vizsgálódást.
Tedd fel egy példával és megnézzük, mi lehet a gond.
(Vagy ha megvan a régiből egy példány és megosztható, az is jó lehet.)
Üdv. -
Fferi50
Topikgazda
válasz
czsolt
#46062
üzenetére
Szia!
A második képlet is a feltételes formázásra vonatkozott!
Ha nem egy munkalapon van a két adat, akkor munkalapos hivatkozást kell alkalmaznod.
A K2 cellát jelölöd ki.
A feltételes formázás - a formázandó cellák kijelölése képlettel. A képlet pedig:=Darabteli($K:$K;"*"&$Munka1!A2 & "*")>0
A Munka1 helyére írod annak a munkalapnak a nevét, amibe a vonalkód van beolvasva.
Ezután formázás és kijelölöd a K oszlopot, ameddig adatok lehetnek benne.
Üdv. -
Fferi50
Topikgazda
válasz
RAiN91
#46056
üzenetére
Szia!
Ha makró írja át az értékeket, akkor működnie kell az esemény vezérlésnek, kivéve, ha közben valahol máshol ki van kapcsolva esetleg.
A más munkalapról táplálkozó képlet miatti változás nem esemény a cél munkalapon.
A technikai kérdésedre:
Ha megállítod a makró futását, akkor az adott sor, ahol megáll, sárga színnel van jelölve. Innen lehet tovább folytatni a Run menü Continue (F5) pontjával. Ha nem látsz sárga sort, akkor nem folytatható a futás.
Amíg egy makró nem fut végig - tehát meg van szakítva a futása - , addig másik makró nem indítható. Lehetséges, hogy ezért nem indul el újra. Bár ekkor hibaüzenet szokott megjelenni.
Talán jó lenne a teljes programot látni, ha érzékeny adatok nélkül felteszed vagy priviben elküldöd, akkor nagyobb az esély rá, hogy tudunk segíteni.
Üdv. -
Fferi50
Topikgazda
válasz
czsolt
#46057
üzenetére
Szia!
Feltételes formázás is megfelelhet, ha egy munkalapon vannak a beolvasott adatok és a leltár adatok.
1. Ha az a helyzet, hogy a vonalkód és a leltári érték egy sorban van:
A feltételes formázás - a formázandó cellák kijelölése képlettel - a képlet:
=Hossz($K2)-Hossz(Helyette($K2;$A2;""))>0
2, Ha bárhol lehet az A oszlopban levő vonalkód a K oszlopban, akkor
a képlet:
=Darabteli($K:$K;"*"&$A2 & "*")>0
Mindkét képletet úgy kell bevinned, hogy a formázandó terület (jelen esetben a K oszlop) első cellája - itt a K2 cella - van kijelölve.
Utána a szabályok kezelése pontban kijelölöd a megfelelő területet a K oszlopban.
A 2. esetben csak azt fogod látni a K oszlopban, hogy a hozzá tartozó vonalkód megvan valahol az A oszlopban.
Más megoldás:
A K oszlopot az Adatok - Szövegbő oszlopok - móddal 3 oszlopba szétválasztod. A párbeszéd panelen kijelölöd, hogy tagolt - elválasztó jelnek bejelölöd pl. a leltári szám után levő karaktert (feltételezhetően sortörés, ezt ki kell másolnod és beilleszteni az Egyéb kockába.
Ezután már közvetlenül hasonlíthatod az A oszlop és az így létrejövő vonalkód oszlopot.
Üdv. -
-
Fferi50
Topikgazda
válasz
RAiN91
#46052
üzenetére
Szia!
Mindenképpen eseménykezelés kell. Viszont a másodpercenként többszöri frissülés miatt elképzelhető, hogy egymásba fordul az eseménykezelés.
Amíg az esemény kezelése folyik, addig le kell tiltani az eseménykezelést az Application.EnableEvents = False
utasítással, a végén pedig engedélyezni.
Ezzel együtt izgalmas kérdés, hogy lefuthat-e a "csinálnjon valamit" programrész addigra, mire bekövetkezik az újabb esemény.
Üdv. -
Fferi50
Topikgazda
Új hozzászólás Aktív témák
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Xbox / Microsoft Store feltöltőkártya kód (digitális, HU) több címlet, több db, azonnal, olcsón
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- MEGA AKCIÓ! - Jogtiszta Windows - Office & Autodesk & CorelDRAW - Azonnal - Számlával - Garanciával
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem.
- Dobozos ASUS TUF A15 Ryzen 7 7735HS 16 GB DDR5 512 GB SSD RTX 4060 140W (8 GB) Garancia
- AKCIÓ! Microsoft XBOX Series X 1TB SSD fekete játékkonzol garanciával hibátlan működéssel
- í kilenc! AKCIÓS PRECÍZIÓS KÉSZÜLÉK! 7560 i9-11950H 32GB RAM 1TB SSD Nvidia RTX A3000 6GB 1 év gar
- ÁRGARANCIA!Épített KomPhone i5 14400F 32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
- iPhone 13 Pro 256GB Sierra Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4383, 100% Akkumulátor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest







