- iPhone topik
- Garmin Forerunner 255 Music - nem csak futóknak
- Android alkalmazások - szoftver kibeszélő topik
- Digitális detox a Nokiától
- OnePlus 7 - magabiztos folytatás
- Huawei P30 Pro - teletalálat
- Redmi Watch 4 - olcsó hús, sűrű a leve
- Itt az első kép a 2024-es Nokia 3210-ről
- Google Pixel 8 Pro - mestersége(s) az intelligencia
- Mobil flották
Hirdetés
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
-
Xbox Game Pass [2024] - A májusi lista
gp Az elkövetkező időszakban többek között megkapjuk a Kona II Brume című játékot.
-
Agyi chipes gyártóba fektetett a kriptocég
it A Tether 200 millió dollárt fektet a Blackrock Neurotech agyi chipes vállalatba.
-
Mobilarena
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
-
m.zmrzlina
senior tag
válasz RedHarlow #28686 üzenetére
Feltételezem, nincsen olyan emailcím az 1000 között aminek azonos az első öt karaktere. Ez esetben csinálj egy segédoszopot, modjuk az E oszlopba a következő képlettel:
E1 képlete:=BAL(A1;5)
Ezt másold le az email címlista aljáig. Azután akár el is rejtheted az oszlopot.C1 képlete:
=HAHIBA((INDEX(A:A;HOL.VAN(B1;E:E;0)));"")Ezt másold le a C20-ig. /vagy addig amennyi rövidítésed van/
Ha mégis van olyan email cím aminek azonos az első öt karaktere akkor az első előfordulást fogja eredményként adni.
[ Szerkesztve ]
-
poffsoft
addikt
sziasztok,
van egy makró, amiben tömböt használok.
Ezt a tömböt minden futtatásnál fel kell töltenem (amúgy konstansok lesznek a futás alatt)
Ezt hogyan lehetne valódi konstansokkal megoldani, hogy ne kelljen minden futáskor feltöltenem?
(a General szekcióban gondoltam, hogy a teljes modulra érvényes állandók legyenek)
Feltétel, hogy a tömbhöz hasonlóan indexekkel tudjak hivatkozni rájuk.
Azt tudom, hogy tömböt ott nem tudok deklarálni, de megoldásom nincsen...Sub Keretek(ByVal Target As Range)
Dim i As Long
Dim lean() As Long
Dim omax As Long, omin As Long, omed As Long, oTh As Long
Dim negy As Long
negy = 4
omax = 6
omin = 1
omed = 2
oTh = 5
ReDim lean(1 To 2, 0 To omax + 1) As Long
For i = 0 To omax + 1
Select Case i
Case 0
lean(1, i) = xlDash 'szaggatott
lean(2, i) = xlHairline 'hajszál
Case 1 To omin
lean(1, i) = xlContinuous 'foly
lean(2, i) = xlThick 'vastag
Case omin + 1 To omed
lean(1, i) = xlContinuous 'foly
lean(2, i) = xlMedium 'közepes
Case omed + 1 To oTh
lean(1, i) = xlContinuous 'közepes
lean(2, i) = xlThin 'vékony
Case Else
lean(1, i) = xlNone 'folyamatos
lean(2, i) = xlThin 'vékony
End Select
Next i
'.....
End SubMásik gondom, hogy rendszeresen felugrik egy hibaablak, hogy "körkörös hivatkozások" vannak (ami amúgy nem igaz, de elhiszem az excelnek, hogy úgy gondolja), és ez munka közben elég zavaró.
Ezt hogyan lehetne letiltani ? Remélem, nem csak globálisan az összes hibaüzenet letiltásával, mert az nem lenne szerencsés megoldás...
[ Szerkesztve ]
-
Fferi50
őstag
válasz poffsoft #28706 üzenetére
Szia!
Mivel a makródnak tudnia kell, hogy mivel számoljon, egyszer mindenképpen meg kell adnod valahol a programban ezeket az értékeket. Mivel a ciklust vezérlő változóid érteke valószínűleg nem állandó, hiszen ellenkező esetben a konkrét számokat adtad volna meg a select case-ben ezért a tömb értékeid sem lesznek valódi konstansok!
Ha tényleges értékeket tudsz, akkor megoldás lehet pl. az, hogy egy munkalapon beírod ezeket az értékeket mondjuk az A1-B8 tartományba, majd a tombvaltozó=range("A1:B8").value utasítással egy lépésben bekerül a tömb értékébe mind. A tömböt dinamikusnak kell deklarálni.
Beteheted az értékeket egy szövegfájlba és akkor onnan is be lehet olvasni fájlművelettel.Ha az excel azt mondja, körkörös hivatkozás van, akkor az úgy is van, csak valószínűleg olyan "bonyolult módon", hogy "szabad szemmel" nem látható. Érdemes ilyenkor a képletvizsgálatot bekapcsolni.
A beállítások képletek részénél van olyan, hogy közelítés engedélyezése x lépésben, ha ide beírod az 1 lépést, akkor nem kiabál a körkörös hivatkozás miatt - cserébe viszont nem is számolja át ismét az értékeket, ha változott a bemenő adat, csak kérésre.
Ezért nem ajánlott a "kikapcsolása".Üdv.
-
poffsoft
addikt
válasz Fferi50 #28707 üzenetére
modul szinten kellene állandó, de ugye public vagy const változó nem lehet tömb.
az a bajom, hogy egy futtatás során több százszor feltöltöm ezt a tömböt, a sub minden meghívásakor,
pedig elég lenne a modul "inicializálásakor".
azok a "ciklust vezérlő" változóim modul szintű public const -ok.
ciklus nélkül is feltölthetném, a range megoldás jó is lehetne, de akkor is csak a modul inicializálásakor.
tömb helyett azt nem lehet megoldani pl, hogy konstansként deklarálom a:
elem11
elem12
elem22
-t,
és ezeket indirekten generált nevükkel érem el?a= indirect.elérés("elem" & i & j)
módjára?a körkörös képlet kiértékelésekor már nem talál hibát, ezért merem állítani, hogy nem körkörös (meg szerintem sem az). mondjuk eltolás fv range kijelöléséhez használ cellaértéket a képlet, ami ha a cellaérték helyett 0-t helyettesít be, valóban körkörös.
Az iteráció kikapcsolását találtam én is, de pont a leírtad aggaszt engem is...[ Szerkesztve ]
[ Szerkesztve ]
-
Fferi50
őstag
válasz poffsoft #28708 üzenetére
Szia!
Akkor deklaráld a tömbödet Public-nak, vagy Global-nak. Egy külön eljárásban töltsd fel a tömböt, mielőtt meghívnád a "számoló" rutint. Ha a külön eljárásod lefut, megnézheted, hogy benne maradnak az értékek a tömbben (ez biztos, de ellenőrizd egyszer). Idézet a 2010-es VBA helpből: "You can also use the Public statement with empty parentheses to declare a dynamic array. After declaring a dynamic array, use the ReDim statement within a procedure to define the number of dimensions and elements in the array"
A többszöri meghíváskor már nem kell feltölteni a tömböt, mert az már megtörtént külön. Az értékük addig él, amíg ki nem lépsz a főprogramból.Üdv.
[ Szerkesztve ]
-
poffsoft
addikt
válasz Fferi50 #28709 üzenetére
ilyesmit próbáltam, a thisworkbook.open eseményben deklaráltam public-ot, de azt a module1-ből már nem látta a sub.
a globalnak utánanézek, nem ismeremja, az egésszel azért vacakolok, mert magát a főrutint a selection.change esemény hívja meg (és annak is kell meghívnia), és eléggé belassul a munka...
[ Szerkesztve ]
[ Szerkesztve ]
-
Fferi50
őstag
válasz poffsoft #28710 üzenetére
Szia!
Látom, közben megtaláltad a jó (jobb) megoldást. De most leírt esetben is működik a dolog. Mivel a Thisworkbook modul u.n. osztálymodul, ezért az ott deklarált Public változók úgy érhetők el, ha "teljes névvel", a modul nevével is hivatkozunk rá: Thisworkbook.változónév. Ebben az esetben látható az értéke más modulokból is.
Ez az eljárás minden osztálymodulnál működik (tehát pl. egy munkalaphoz tartozó kódban is deklarálható Public változó és a kódmodulneve.változónév formában lehet rá hivatkozni más modulokban).Üdv.
-
boomkat88
újonc
válasz Fferi50 #28691 üzenetére
Köszi! Egészen jó lett, de a sor -és oszlopcímkéknek meg tudom adni, hogy a forrás táblázat szerinti sorrendben rendezze és ne növekvő sorrendben? Mert a kimutatás beállításaiban a megjelenés fülön kétféle sorbarendezést választhatok (A-Z és adatforrás sorrendje szerinti) nekem természetesen az utóbbi van kipipálva, de mégis növekvő sorrendben vannak és nem úgy ahogy az adatforrásban. Hogy lehet?
-
poffsoft
addikt
válasz Fferi50 #28712 üzenetére
lassan megtanulom azért a VBA-t így segítséggel.
Ma a Global volt a második nyerő deklaráció tőled, kb. 1 hónapnyi javítást meg is csináltam ma a kódomon
Az iteráció tiltást/visszaállítást is a workbook open / beforeclose rutinra bíztam, így nem panaszkodik a körkörös többé[ Szerkesztve ]
[ Szerkesztve ]
-
Fferi50
őstag
válasz boomkat88 #28713 üzenetére
Szia!
Sajnos, úgy tűnik ez nem műxik a sor/oszlop cimkéknél. Viszont ha jobb egérgombbal rákattintasz egy sorcimkére és kiválasztod a rendezést, ott van olyan lehetőség, hogy kézi húzással. Ekkor tetszés szerinti sorrendbe rakhatod az adott cimke értékeit (ez persze akár sok munka is lehet). Másik trükk esetleg, hogy számokat vagy betűket raksz a cimkék első betűjébe a kívánt sorrend szerint.
Üdv.
-
oxox
addikt
Sziasztok Guruk,
egy szamomra osszetettebb feladatra szeretnek segitseget/fuggvenyt kerni.
lebutitva
legyen egy tablazatom, melynek az oszlopai 1,2,3, a sorai a,b,c, a tablazat belso reszeire meg legyen mondjuk nevek irvavan ket mezom, ahol az egyikbe 1-tol 3-ig kapok egy eredmenyt, ill. egy masik mezom ahol a, b, vagy c-t kapok (az most mindegy vegul is, hogyan kapom) azt szeretnem, ha a mellekelt tablazatbol kikeresne ezeket a sort, oszlopot, es egy cellaba kiirna a keresztezodesbe kapott nevet
pelda
ha a megadott oszlop 2 a sorom pedig C, akkor egy fuggveny keresse meg a 2-es oszlopot, ill. C sort, es irja be az eredmenyt egy cellaba...azert nem szeretnek logikait, ha nem muszaly (mondjuk if-et), mert kb 40x15-os tablazatrol van szo, es gondolom azzal hosszadalmas lenne.koszi elore is
oxoxKi gépen száll fölébe.... SC2 nick: oxox character code: 698...dio3/ow: oxox#1525 + #21838
-
oxox
addikt
válasz Delila_1 #28718 üzenetére
koszi a gyors segitseget...maris probalom
error
egyreszt angol az excelem (match parancsot azonositottam be a holvannal)
A ket megadott cellam a D26, D28
A tablazatom pedig L24-tol tart AR-igezt irtam be
=index($l$24:$ar$36;MATCH($d$26;$A:$A;0);MATCH($d$28;$1:$1;0))hol a hiba?
thanks, es sorry a hozzanem ertesemert[ Szerkesztve ]
Ki gépen száll fölébe.... SC2 nick: oxox character code: 698...dio3/ow: oxox#1525 + #21838
-
oxox
addikt
válasz Delila_1 #28720 üzenetére
AR36ig tart...csak az elobb ez kimaradt
ill. mindket cellaban szam szerepel..nem tudom, hogy ez megkavarja-e (tehat a sorok, az oszlopok, es meg a tablazatban levo ertekek is szamok)...[ Szerkesztve ]
Ki gépen száll fölébe.... SC2 nick: oxox character code: 698...dio3/ow: oxox#1525 + #21838
-
Delila_1
Topikgazda
Ha az eredeti kérdés felvetésekor az igazi elrendezést adtad volna meg, hamarabb kapsz jó választ.
A téma összefoglalójában is szerepel ez a kitétel.=INDEX($L$24:$AR$36;HOL.VAN($D$28;$L$24:$L$36;0);HOL.VAN($D$26;$L$24:$AR$24;0))
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
oxox
addikt
válasz Delila_1 #28724 üzenetére
bocsanat, azt hittem egyszerubb, ha nem bonyolitom de ettol fuggetlenul tovabbra sem jo
"the formula you typed contains an error"
"hol.van"-t kicsereltem match-re termeszetesen...Ki gépen száll fölébe.... SC2 nick: oxox character code: 698...dio3/ow: oxox#1525 + #21838
-
v-paci
aktív tag
Sziasztok.
Adott egy táblázatom, amiben számlázó/nyilvántartó szoftverből exportált fuvarok szerepelnek. Az első oszlop tartalmazza a fuvarazonosítót, viszont abban az esetben, ha egynél több lerakóhely van, akkor annyiszor szerepel a fuvar a táblázatban, ahány lerakó volt. Kimutatást szeretnék csinálni, amiben szerepelnek a fuvar mennyiségek is. Hogyan tudom megoldani, hogy egy azonosítót csak egyszer számoljon?
"Mi kalandvágyból itthon maradtunk."
-
v-paci
aktív tag
válasz Delila_1 #28729 üzenetére
Bocsánat a láma kérdésért, lehet nem voltam egyértelmű, inkább bevágom a táblázat egy részét:
Azt szeretném, hogy amikor a kimutatásban összesítve van a hónapok eredménye, akkor a teljesített MGB... valós darabszámát is hozzá tudjam adni. Meg lehet ezt valahogy oldani? Mármint, hogy egy megbízást csak egyszer számoljon?
"Mi kalandvágyból itthon maradtunk."
-
Melack
veterán
Guruk! Segítség kellene. Angol nyelvű Excel 2010, drop down listből ha kiválasztok egy elemet (closed/waiting fro response, stb), akkor szeretném, ha a teljes sort az alapján színezné ki, hogy mit választok. Próbáltam a Conditional formattingot, de nem akar sikerülni. Hol tolom el? rosszul indultam eleve neki?
Ex-Informatikai Szolgáltató Asztali Munkatárs
-
hemaka
nagyúr
Üdv.
Kérdésem, hogy megoldható lenne az Excelben, hogy van egy linkem forráskódja:
<a href="mappa1/file1.zip"></a>Ebből szeretnék többet úgy. hogy a mappa1 ne változzon, csak a file1 nőjön mindig eggyel, tehát így:
<a href="mappa1/file1.zip"></a>
<a href="mappa1/file2.zip"></a>
<a href="mappa1/file3.zip"></a>Ezer éve nem használtam excelt, próbálkoztam vele, de lövésem sincs hogyan lehetne megoldani. Köszönöm a segítséget.
[ Szerkesztve ]
-
the radish
senior tag
Sziasztok!Adott egy szám, 10,250000. Ezt szeretném egy az ÖSSZEFŰZ függvénnyel több másik cellával összefűzni, de az eredményben 10,25 látszik csak, pedig szükségem lenne a hat tizedesjegyre.Hogy lehetne ezt megoldani?Előre is köszönöm.Köszi, a #,000000 paraméter kellett.
[ Szerkesztve ]
-
rgqjx
aktív tag
Sziasztok!
A mellekelthez hasonlo excel tablazatok tartalmat szeretnem osszehasonlitani tartalom alapjan. Az oszlopok valtozhatnak, de a Kelet es az Eszak mindig igy van egymas mellett. Altalaban 2-500 sorosak ezek a tablazatok es kb 6-8 van beloluk, angol Office 2013-ban mentve.
A tablazat foldrajzi koordinatakat tartalmaz. A kivansagom az lenne, hogy szeretnem kilistazni azokat a teruleteket, melyek maximum ~50 meterre vannak egymastol, tehat valoszinuleg ugyan ott. Arra gondoltam, hogy eloszor a keleti koordinatatol maximum +-50 elteresbe beleferoket tovabb szukitenem az eszaki +-50-el..., majd ezek nevet kene kiirni. Peldaul: AAAA es CCCC kozel vannak egymashoz, de pl BBBB es DDDD mar tavol.Ti hogy indulnatok neki?
Egyik otletem, hogy egy tablazatba masolom az osszes tablazat lenyeges adatat es utana index-->match fuggveny bonyolitva a +-50 tavolsaggal (if, and)Adnatok par tippet, ami esszerunek tunik?
Elore is koszonom!
-
poffsoft
addikt
válasz Melack #28733 üzenetére
mi a képlet a conditional formattingnál?
ha az A1-ben kezdődik a validálásod, állj az a1 cellára,
magyarban a "formázandó cella kijelölése képlettel", a képlet pedig:
=$A1="close"
ehhez beállítod a formátumot.
az "Érvényesség" tartományba pedig =$1:$100megjegyzem, hogy teljes sorokat nem érdemes formázni, célszerűbb helyette az adattábla tartományát megadni.
[ Szerkesztve ]
[ Szerkesztve ]
-
the radish
senior tag
Mi lehet a gond az alábbi pár sorral, hogy nem cseréli ki a ","-t "."-ra?
Range("A1:B20").Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False -
FozzieBear
csendes tag
válasz the radish #28741 üzenetére
Szerintem nincs ezzel semmi gond, kicseréli ez az aktív munkalap A1:B20 tartományában.
[ Szerkesztve ]
-
the radish
senior tag
válasz FozzieBear #28742 üzenetére
Hát sajnos nem.
Őszintén megmondva, a makrót rögzítettem, de indítást követően már nem megy. -
szatocs1981
aktív tag
válasz the radish #28743 üzenetére
"Nem megy" - ez mit takar?
-
the radish
senior tag
válasz szatocs1981 #28744 üzenetére
Hiába futtatom makróként, nem cseréli le a ","-t "."'-ra.
A kijelölés aktív, de nem cserél. -
szatocs1981
aktív tag
válasz the radish #28745 üzenetére
Amúgy nem az a gond, hogy SZAMOKBAN a tizedesvesszöt akarod lecserélni pontra?
Azt szerintem Windows-ban vagy EXCEL beállításokban kell megtenni.Ha SZÖVEGBEN akarod lecserélni a vesszöt pontra, akkor müködik a makró!
[ Szerkesztve ]
-
the radish
senior tag
válasz szatocs1981 #28746 üzenetére
De igen, számokban kéne. Azonban csak ennél a munkafüzetnél, ezért a globális beállítás módosítása nem járható út.
Ha nem lehet megoldani, akkor marad a csere függvény, csak nem akartam, hogy tovább hízzon a méret. -
szatocs1981
aktív tag
válasz the radish #28747 üzenetére
Próbáld meg evvel a makróval. Mielött futtatod jelöld ki a cellákat, ahol cserélni akarod a vesszöt pontra!
Sub Csere()
Dim Zelle As Range
For Each Zelle In Selection.Cells
Zelle.NumberFormat = "@"
Zelle.Value = Replace(Zelle.Value, ",", ".")
Next Zelle
End Sub[ Szerkesztve ]
-
the radish
senior tag
válasz szatocs1981 #28748 üzenetére
Köszi, ez működik!
-
the radish
senior tag
Bocsánat, kifutottam az időből, pedig lenne még egy.
Ezt a műveletet hogy tudom egyszerűbben megoldani?
Workbooks.Open Filename:= C:\A.xls
Range("B2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("B.xls").Activate
ActiveWindow.WindowState = xlNormal
Sheets("munka1").Select
Range("A2").Select
ActiveSheet.Paste