Keresés

Részletes keresés

Garashan Creative Commons License 2025.04.26 0 0 38539

Csak ehhez buta az Excel. Ő csak 1 egész és 14 tizedesjegy pontossággal tud számokat tárolni. Így ha beírsz egy 24 számjegyű számot, akkor ő azt átformázza tudományossá és úgy tárolja el. A végét pedig egész egyszerűen lecsapja.

 

Vagy azt csinálod meg, amit a makród is félig meddig csinál már, hogy szövegként tárolod el és átformázod (ez lehet teljesen automatikusan is, csak kell bele tenni hibakezelést. Van olyan makró, ami a munkalap változásakor lefut automatikusan. Azt kell jól felparaméterezni, hogy csak akkor fusson le, ha azok a cellák változtak, ahol bankszámlaszám bevitel történik. Valamint, hogy ha mondjuk rossz a formátum, akkor se fusson le.). Vagy mondjuk 3 cellában viteted be az adatokat és a megfelelő helyre szövegként összefűzve kerül már be.


Itt jegyezném meg, hogy a 12345678-654-127 is érvényes bankszámlaszám formátum. Ugyanis a 8-as csoportoknál a kezdő nullákat nem kötelező kiírni. Ezt legjobban az OTP-s bankszámlaszámoknál figyelhető meg, ahol az esetek nagy részében az utolsó 8-as csoport csak nullákból áll, így egyáltalán nem szokták kiírni. Ezzel kapcsolatban volt egyszer vitám is volt kolléganőmmel. Kaptunk egy szerződést PDF formátummal, ahol különböző formázások be voltak állítva a beviteli mezőkbe. Nem lehetett neki megmagyarázni, hogy a bankszámlaszámunknak nincs semmi baja attól, hogy a középső blokkban a kezdő nullákat eltüntette a dokumentum. Így inkább kinyomtatta, ráírta pluszban tollal, majd visszascannelte...

Előzmény: Sheeny (38535)
Sheeny Creative Commons License 2025.04.26 0 0 38538

ÓÓÓ basszus és tényleg működik ha bepipálom a formázást, erről a lehetőségről teljesen megfeledkeztem. Köszi a tippet :)

Előzmény: Fferenc50 (38537)
Fferenc50 Creative Commons License 2025.04.26 0 0 38537

Szia!
Nyilván a jelszó nem kötelező, akkor a Password paramétert egyszerűen elhagyod.

Ami a másik makró működését illeti: Ha zároláskor nem tiltod azt, amit az a makró végez - vagyis a felhasználó is megtehetné - akkor a makró is meg tudja tenni. 

Zároláskor alapból a cellák formázása nincs megengedve a felhasználónak:

Ha megengeded a formázást, akkor a formázó makród is működni fog zárolás esetén is.

Üdv.

Előzmény: Sheeny (38536)
Sheeny Creative Commons License 2025.04.26 0 0 38536

Azt elfelejtettem mondani, hogy nem kellene jelszót kezelni a lapvédelemhez, csak jelszó nélkül lenne "levédve" a véletlen törlések ellen.

Megnyitási jelszó lenne rajta csak, de az nem hiszem, hogy befolyásolja a futást feloldás után.

Amúgy érdekes, mert egy másik makro is van a lapon és az tökéletesen működik lapvédelemmel is. (annyira nem értek a makróhoz, hogy tudjam, miért működik az egyik és a másik miért nem) :)

Előzmény: Fferenc50 (38534)
Sheeny Creative Commons License 2025.04.26 0 0 38535

Szövegként tárolni azért nem jó megoldás, mert nem lehet közé tenni automatikusan a kötőjelet. Konkrétan ez lenne a feladat, hogy ha 24 szám van egy mezőben akkor tegyen 8 karakterenként egy kötőjelet. Szöveg formátumnál ez felejtős.

Előzmény: Garashan (38533)
Fferenc50 Creative Commons License 2025.04.26 0 0 38534

Szia!

A lapvédelmet makróval kapcsold be és használd a UserInterfaceOnly paramétert.

A Thisworkbook kódlapjára a megnyitás eseménybe kell beírnod, pl.

Private Sub Workbook_Open()
Sheets("Munka1").Unprotect Password:="Jelszó"
Sheets("Munka1").Protect Password:="Jelszó", Userinterfaceonly:=True
End Sub

Azért kell először feloldani, hogy a Userinterfaceonly paramétert meg tudd adni a zároláshoz. 

Ez a paraméter True módban teszi lehetővé, hogy a makrók futhassanak a zárolt munkalapon is.

Mindaddig érvényben marad, amíg valamilyen módon fel nem oldod a zárolást, illetve bezárás utáni újranyitáskor "elfelejti" az alkalmazás, ezért kell a nyitáskor lefuttatni.

Érdemes átnézni a Worksheet.Protect utasításhoz kapcsolódó Helpet, mert abban részletesen le van írva, milyen paraméterekkel mit tudsz tiltani. Lehetséges, hogy a zárolási utasításban más paramétereket is meg kell adnod ahhoz, hogy az általad kívánt korlátozások érvényesüljenek.

Remélem, ez segít.

Üdv.

Előzmény: Sheeny (38532)
Garashan Creative Commons License 2025.04.26 0 0 38533

Miért nem állítod be előre azt a néhány cella formátumát szövegre és akkor nem kellene a makrónak?

Illetve makróval fel lehet oldani a lapvédelmet és ismét vissza lehet kapcsolni. Ebben mondjuk az a veszély, hogy ha a feloldás után, de a vissza kapcsolás előtt valamiért leáll a makró, akkor kikapcsolva marad a lapvédelem.

 

Telefonon én 15 számos korlátba futottam bele. Egyszerűen nem kezel 15 számjegynél nagyobb számokat... Így szerintem marad a szövegként való tárolás.

Előzmény: Sheeny (38532)
Sheeny Creative Commons License 2025.04.26 0 0 38532

Szeretném azt megoldani, hogy ha egy cellába beírok egy számsorozatot, ami 24 szám, azt formázza úgy meg, mintha egy bankszámlaszám lenne tehát 8 karakterenként tegyen egy kötőjelet.

De ugye 15 karakter után átvált az excel "tudományos" szám formátumra és nem jeleníti meg megfelelően a számokat. Aposztrófos megoldás sem jó.

Nem találtam semmilyen megoldás erre, ha esetleg tudtok valami megoldást az jó lenne (anélkül, hogy bármi mást kellene tenni azon kívül, hogy beírjuk a 24 számot, mert "nem excel használók" fogják kezelni)

 

Maradt a makrós megoldás, ez működik, de ha bekapcsolom a lapvédelmet, (ami szükséges) akkor hibaüzivel leáll ( range osztály NumberFormat tulajdonsága nem állítható be) még akkor sem ha amúgy nincs zárolva az adott mező.

Tudtok segíteni valahogy megoldani a problémát, akár makrós, akár nem makrós módon ? 

 

Ez a makró:

 

validCells = Array("E60", "E65", "E70", "E75", "E80", "E85")

For Each cell In Target
 For i = LBound(validCells) To UBound(validCells)
  If cell.Address(False, False) = validCells(i) Then
   raw = Replace(cell.Value, "-", "")
   If Len(raw) = 24 And IsNumeric(raw) Then
      Application.EnableEvents = False
      cell.NumberFormat = "@" ' Szöveg formázás
      cell.Value = Left(raw, 8) & "-" & Mid(raw, 9, 8) & "-" & Right(raw, 8)
      Application.EnableEvents = True
    End If
    Exit For
  End If
 Next i
Next cell

 

 

Köszi

Ex honfoglalo játékos Creative Commons License 2025.04.25 0 0 38531

Szerintem nem szükséges törölni.

 

Az emberi problémamegoldás ilyen:

Amint megfogalmazod a problémát másnak, felteszel egy kérdést kicsit másképp, máris kicsit máshogy gondolod végig és közelebb kerülsz a megoldáshoz.

Ez így teljesen rendben van.

Előzmény: Metell (38529)
pimre Creative Commons License 2025.04.20 0 0 38530
Előzmény: Metell (38529)
Metell Creative Commons License 2025.04.20 0 0 38529

Nem tudom, hogy miként lehet törölni az előző hozzászólásomat.

Végül is megoldottam a feladatot, két nap vergődés után. Én hibáztam.

M.

Metell Creative Commons License 2025.04.20 0 0 38528

Sziasztok!

Microsoft 365-öt használok, sokat dolgozok Excel-ben.
Van egy most úgy 380.000 soros adatbázisom, amihez évek óta havonta úgy 12.000 sor jött hozzá. Az oszlopok száma úgy 20 db.
A legutóbbi frissítéskor az egyik oszlopban olyan értékek bukkantak fel, amelyeknek nem kellene ott lenniük.
Nyitottam új munkafüzetet, bemásoltam a nagyobb adatbázis kritikus oszlop eredeti értékeit érték másolással, majd egy másik munkalapra a frissítés oszlopát ugyanígy.
Szűrővel megvizsgáltam mindkét állományt, és az értékek rendben voltak. Utána mindkettőben szortoltam, és kiszűrtem az ismétlődő értékeket, és így is rendben volt minden.
Egy harmadik munkalapra újra bemásoltam az eredeti oszlopot, megint értékkel, és alul hozzá toldottam a frissítést ugyanúgy.
Szűrővel megvizsgáltam a megnövekedett állományt, és találtam benne egy olyan értéket, amely egyik korábbiban sem szerepel, viszont az eredeti nagy táblában megtalálható, egy másik oszlopban. A vizsgált, teljesen új munkafüzetbe azonban csak a kritikus oszlopokat másoltam be.
Az oszlopok másolgatásakor nagyon körültekintő voltam. Minden alkalommal csak max két fájl volt nyitva, és a gépet is többször újraindítottam, mert tapasztalatom szerint itt-ott szokott maradni szemét.
Módszert változtattam. A két oszlopot lementettem külön csv fájlba, majd egy közös fájlban megvizsgáltam. Külön-külön egyikben sem volt semmi más, csak aminek ott kellett lennie. Amint összeraktam a kettőt, megint felbukkant a felesleges érték.
Itt kapok fejlövést, mert ez lehetetlen. Normális körülmények között. Na de most vajon mi a helyzet? Tud valaki segíteni?

Köszi!

Fferenc50 Creative Commons License 2025.04.15 0 2 38527

Szia!

Nem ártana, ha egy mintán megmutatnád, mi a kiindulási állapot és mit szeretnél elérni.

 "a sorokban lévő számsorok utolsó értékeit összeadni pl. 1,12 és abban a sorban a következő sámsor utolsó értékét a 1,07-et."

Ez mit akar jelenteni, ugyanabban a sorban van több számsor, üres cellákkal elválasztva? vagy hogy?

Üdv.

Előzmény: Lufooka (38525)
Garashan Creative Commons License 2025.04.15 0 2 38526

Szia!

Szóval van egy csomó sorod egy adott oszlopban és azt akarod összeadni? Vagy van egy csomó sorod és véletlenszerű, hogy mely oszlopokban van vége a számoknak?

Ha esetleg egy képernyőképet közzé teszel, az sokat segítene.

Előzmény: Lufooka (38525)
Lufooka Creative Commons License 2025.04.15 0 0 38525

Sziasztok

 

gondban vagyok, nem találok rá megoldást. 

szeretném a sorokban lévő számsorok utolsó értékeit összeadni pl. 1,12 és abban a sorban a következő sámsor utolsó értékét a 1,07-et.

VAgy pl. az alatta lévőt 1,18-at és a 1,17-et. 

Tudna valaki egy egyszerűbb megoldást erre?

 

Előre is köszi

Ketele69 Creative Commons License 2025.04.14 0 0 38524

Köszönöm!

Előzmény: Fferenc50 (38501)
Sheeny Creative Commons License 2025.04.14 0 1 38523

Tökéletesen működik, nagyon köszönöm !!

Előzmény: Garashan (38517)
Garashan Creative Commons License 2025.04.13 0 0 38522

Az is igaz, hogy longlong csak 64 bites környezetben létezik a 2010-es officetól.

Előzmény: Garashan (38521)
Garashan Creative Commons License 2025.04.13 0 0 38521

long max: 2,147,483,648 (azaz long esetén 2 milliárd felett picivel túlcsordulás van és akkor nem fut végig a számol 999.999.999.999-ig)

longlong max: 9,223,372,036,854,775,807

Előzmény: m54-b (38519)
Garashan Creative Commons License 2025.04.13 0 0 38520

Ha valaki szereti a kihívásokat, akkor meg lehetne írni, hogy működjön tört számokkal is :D 

Gyors ötletelés fejben:

Ketté kellene szedni az alap számot. A fix() függvény megadja az egész részt. A "tort=szam-fix(szam)" pedig megadja a tört részt.

Ha tort > 0, akkor ki kellene írni az egész rész után, hogy "egész" és utána a "tort" részt meg kellene szorozni annyival, hogy egészt kapjunk.

Ezt én úgy csinálnám, hogy az alap számot ("szam") én decimal-lá konvertálnám. Így nem lebegőpontosan van tárolva. Ezután képezném belőle a "tort" számot.

for i = 1 to 12

if fix(tort*10^i)/10^i = tort then

exit for

end if

next i

tort = fix(tort*10^i)

 

És így, ha nem rontottam el semmit, akkor a "tort" számunk már egy olyan szám, ami a tizedes jegyeket tartalmazza már csak úgy, hogy megszoroztuk tíz legkisebb hatványával, hogy egészet kapjunk.

Ezután már csak végig kellene rajta futtatni ugyan azt mint az egész részén annyi különbséggel, hogy a legnagyobb helyiértéknek megfelelően ki kellene írni a legvégére pluszban, hogy tized, század, ezred, tízezred, stb... közül a megfelelőt.

Előzmény: m54-b (38518)
m54-b Creative Commons License 2025.04.13 0 0 38519

2007-es Excelben elég egy "Long" --> Function szambetuvel(szam As Long)

Előzmény: Garashan (38517)
m54-b Creative Commons License 2025.04.13 0 1 38518

Zseniális, törlöm is a másikat!

Előzmény: Garashan (38517)
Garashan Creative Commons License 2025.04.13 0 0 38517

Amíg én megírtam a szerző fájlja által a makrót, addig te közzé is tetted azt. Mindegy, ha már dolgoztam vele, akkor itt az én verzióm:

 

Option Explicit

Function szambetuvel(szam As LongLong)
If (szam > 999999999999#) Or (szam < -999999999999#) Then
szambetuvel = "hiba"
Exit Function
End If
If szam = 0 Then
szambetuvel = "nulla"
Exit Function
End If
If szam < 0 Then
szambetuvel = "mínusz "
Else
szambetuvel = ""
End If
Dim szamformazva, szam1, szam10, szam100 As String
szamformazva = WorksheetFunction.Text(Abs(szam), "000000000000")
szam1 = Mid(szamformazva, 3, 1)
szam10 = Mid(szamformazva, 2, 1)
szam100 = Mid(szamformazva, 1, 1)
If szam1 > 0 Or szam10 > 0 Or szam100 > 0 Then
szam100 = szam_szaz(CStr(szam100))
szam10 = szam_tiz(CStr(szam10), CStr(szam1))
szam1 = szam_egy(CStr(szam1))
szambetuvel = szambetuvel & szam100 & szam10 & szam1 & "milliárd"
If Mid(szamformazva, 4, 1) > 0 Or Mid(szamformazva, 5, 1) > 0 Or Mid(szamformazva, 6, 1) > 0 Or _
Mid(szamformazva, 7, 1) > 0 Or Mid(szamformazva, 8, 1) > 0 Or Mid(szamformazva, 9, 1) > 0 Or _
Mid(szamformazva, 10, 1) > 0 Or Mid(szamformazva, 11, 1) > 0 Or Mid(szamformazva, 12, 1) > 0 Then
szambetuvel = szambetuvel & " - "
End If
End If
szam1 = Mid(szamformazva, 6, 1)
szam10 = Mid(szamformazva, 5, 1)
szam100 = Mid(szamformazva, 4, 1)
If szam1 > 0 Or szam10 > 0 Or szam100 > 0 Then
szam100 = szam_szaz(CStr(szam100))
szam10 = szam_tiz(CStr(szam10), CStr(szam1))
szam1 = szam_egy(CStr(szam1))
szambetuvel = szambetuvel & szam100 & szam10 & szam1 & "millió"
If Mid(szamformazva, 7, 1) > 0 Or Mid(szamformazva, 8, 1) > 0 Or Mid(szamformazva, 9, 1) > 0 Or _
Mid(szamformazva, 10, 1) > 0 Or Mid(szamformazva, 11, 1) > 0 Or Mid(szamformazva, 12, 1) > 0 Then
szambetuvel = szambetuvel & " - "
End If
End If
szam1 = Mid(szamformazva, 9, 1)
szam10 = Mid(szamformazva, 8, 1)
szam100 = Mid(szamformazva, 7, 1)
If szam1 > 0 Or szam10 > 0 Or szam100 > 0 Then
szam100 = szam_szaz(CStr(szam100))
szam10 = szam_tiz(CStr(szam10), CStr(szam1))
szam1 = szam_egy(CStr(szam1))
szambetuvel = szambetuvel & szam100 & szam10 & szam1 & "ezer"
If Abs(szam) > 2000 And (Mid(szamformazva, 10, 1) > 0 Or Mid(szamformazva, 11, 1) > 0 Or Mid(szamformazva, 12, 1) > 0) Then
szambetuvel = szambetuvel & " - "
End If
End If
szam1 = Mid(szamformazva, 12, 1)
szam10 = Mid(szamformazva, 11, 1)
szam100 = Mid(szamformazva, 10, 1)
If szam1 > 0 Or szam10 > 0 Or szam100 > 0 Then
szam100 = szam_szaz(CStr(szam100))
szam10 = szam_tiz(CStr(szam10), CStr(szam1))
szam1 = szam_egy(CStr(szam1))
szambetuvel = szambetuvel & szam100 & szam10 & szam1
End If

End Function

Private Function szam_egy(szam As String)
Select Case szam
Case "0"
szam_egy = ""
Case "1"
szam_egy = "egy"
Case "2"
szam_egy = "kettő"
Case "3"
szam_egy = "három"
Case "4"
szam_egy = "négy"
Case "5"
szam_egy = "öt"
Case "6"
szam_egy = "hat"
Case "7"
szam_egy = "hét"
Case "8"
szam_egy = "nyolc"
Case "9"
szam_egy = "kilenc"
End Select
End Function

Private Function szam_tiz(szam As String, szam2 As String)
If szam2 > 0 Then
Select Case szam
Case "0"
szam_tiz = ""
Case "1"
szam_tiz = "tizen"
Case "2"
szam_tiz = "huszon"
Case "3"
szam_tiz = "harminc"
Case "4"
szam_tiz = "negyven"
Case "5"
szam_tiz = "ötven"
Case "6"
szam_tiz = "hatvan"
Case "7"
szam_tiz = "hetven"
Case "8"
szam_tiz = "nyolcvan"
Case "9"
szam_tiz = "kilencven"
End Select
Else
Select Case szam
Case "0"
szam_tiz = ""
Case "1"
szam_tiz = "tíz"
Case "2"
szam_tiz = "húsz"
Case "3"
szam_tiz = "harminc"
Case "4"
szam_tiz = "negyven"
Case "5"
szam_tiz = "ötven"
Case "6"
szam_tiz = "hatvan"
Case "7"
szam_tiz = "hetven"
Case "8"
szam_tiz = "nyolcvan"
Case "9"
szam_tiz = "kilencven"
End Select
End If
End Function

Private Function szam_szaz(szam As String)
Select Case szam
Case "0"
szam_szaz = ""
Case "1"
szam_szaz = "száz"
Case "2"
szam_szaz = "kétszáz"
Case "3"
szam_szaz = "háromszáz"
Case "4"
szam_szaz = "négyszáz"
Case "5"
szam_szaz = "ötszáz"
Case "6"
szam_szaz = "hatszáz"
Case "7"
szam_szaz = "hétszáz"
Case "8"
szam_szaz = "nyolcszáz"
Case "9"
szam_szaz = "kilencszáz"
End Select
End Function

 

Ezt modulba kell menteni és akkor munkafüzetből meghívható a "szambetuvel" függvény.

Előzmény: m54-b (38516)
m54-b Creative Commons License 2025.04.13 0 0 38516

1.) Nem az enyém, én csak találtam!

 

2.) Miként a 38512-ben írtam képletekkel dolgozik. A makró arra kell majd, hogy az ábra szerinti bemenetre rakja a számokat, és az eredményt kimenetből átrakja a neked megfelelő helyre.

 

3.) A régi verzióban a szerző erre tökéletes példákat is adott. Gondolom azzal, hogy közzéteszem a régit, semmi tilalmast nem teszek.

Előzmény: Sheeny (38515)
Sheeny Creative Commons License 2025.04.13 0 0 38515

Próbáltam a makrót elkészíteni de rengeteg hibával küzdök (az AI sem tud segíteni, legalább is a problémát nem tudja megoldani) :) De a tiédben működik minden ahogy nézem. 

Ha van rá lehetőség akkor kód szinten megkaphatom a makrót, mert be kellene illesztenem egy másik fájlba.

Köszönöm!

Előzmény: m54-b (38494)
pimre Creative Commons License 2025.04.13 0 0 38514

Köszönöm, megkaptam. Ezek már valóban többet árulnak el. Majd holnap alaposabban tanulmányozom.

Előzmény: m54-b (38512)
m54-b Creative Commons License 2025.04.13 0 0 38513

Mail ment

Előzmény: pimre (38510)
m54-b Creative Commons License 2025.04.13 0 0 38512

Közben rájöttem, hogy nekem egy régi verzióm van, 3 munkalapos. A webes címet Google alapján adtam meg, de nem néztem meg a mostani fájlt.

Ezért beszéltünk el egymás mellett.

 

A működése azonos a kettőnek, nem makró, képletek adják az eredményt.

(A munkalapon elrejtve található a táblázat.)

 

 

Ez a régi verzióban külön munkalap volt. A mostani minden "beavatkozás" nélkül tényleg nem használható.

Jelszó nélkül már jó.

Előzmény: pimre (38509)
Garashan Creative Commons License 2025.04.13 0 0 38511

Nem ígérem, hogy még ma éjjel, de valamelyik nap ránézek az egész fájlra.

Előzmény: pimre (38509)
pimre Creative Commons License 2025.04.13 0 0 38510

xls fájl helyesen xml

Előzmény: pimre (38509)
pimre Creative Commons License 2025.04.13 0 0 38509

Én lassan kezdem feladni. A lapvédelmet sikerült feloldanom, de ez nem változtatott semmit a megjelenésen. Ugyanúgy nem látszik semmi a megoldás részleteiről.

Még egy dolgot találtam, ami érdekes lehet, de azzal végképp nem tudok mit kezdeni. Amikor kibontottam a fájlt és töröltem a lapvédelmet, akkor rákantintottam az xls fájlra (https://drive.google.com/file/d/14RBH4QPLWnoR8Em8-bz3GvRRsfDoi094/view?usp=sharing), akkor megjelent egy kód, ami lehet, hogy a kulcsa a fájl használatának, csak ezt én már nem ismerem.

Előzmény: Garashan (38506)
m54-b Creative Commons License 2025.04.12 0 0 38508
Előzmény: Garashan (38506)
m54-b Creative Commons License 2025.04.12 0 0 38507

(Enyim 2007-es Office)

 

Jelszót nem kell megadni, csak ütsz egy entert.

 

azt a táblázatot, simán átmásolod egy üres Excel-be, és a másik munkalapon van a

 

a hivatkozás (a "14" és a "=Munka2!D21) a másik munkalapon. (értelemszerűen, én a D! cellán állva illesztettem be)

 

 

Előzmény: pimre (38499)
Garashan Creative Commons License 2025.04.12 0 0 38506

Egy lapvédelmet kb. fél perc törölni. Makró védelmet még sohasem próbáltam törölni, de gondolom az sem lehet bonyolultabb.

 

Nem árulok el azzal nagy titkot, ha azt mondom, hogy az xlsx formátum egy tömörített formátum. Így átnevezés után kicsomagolható. A kicsomagolt fájlok közül meg kell keresni a problémásat (talán sheet1, sheet2, ... elnevezéssel szerepelnek) és sima egyszerű jegyzettömbbel kell megnyitni. Majd meg kell keresni benne a jelszavas védelem hash kulcsát és nemes egyszerűséggel ki kell belőle törölni. Ha Notepad++-al nyitod meg, akkor jelzi is kulcsot tartalmazó elem végét is, ha pont az elejére állsz, mert sima xml (ha jól emlékszem) a kiterjesztés és azt tudja alapból.

Nem vagyok gép előtt, ezért nem tudom most fejből, pontosan melyik xml részt is kell törölni.

 

Anno volt egy-két partnerünk, aki az aktuális árjegyzékét mindig jelszavas védelemmel látta el és nem lehetett benne semmit sem kijelölni. Így viszont elég macerás volt átvenni az árakat képlettel. Így elég hamar tökélyre fejlesztettem a jelszó törlő képességemet. Ha tudja az ember, hogy mit keres, akkor nagyon hamar megtalálja az xml-ben és tényleg nem több fél percnél a kicsomagolástól számítva az ismét excellel megnyitható jelszó mentes fájlig.

Arra már nem emlékszem, hogy erre valamikor magamtól jöttem-e rá vagy úgy olvastam valahol.

 

Tavaly jártam egy szakmai továbbképzésre, aminek nagy része e-learning volt. A tananyagokat pdf formátumban osztották meg velünk One driveon keresztül. 7 fájlból 4-nél le volt tiltva a megnyitáson kívül minden (mentés, nyomtatás, kijelölés, stb...). Ekkor viszont eszembe jutott, hogy még a WIN98-as vagy korai XP-s időszakban, amikor marha lassú volt otthon a netünk, hogyan töltöttem le youtube-hoz hasonló videó megosztókról filmeket. Ugyan azzal a módszerrel simán le lehetett menteni one driveról is a pdf tananyagot. Ha érdekel, akkor e-mailben megírom. Ez egy olyan módszer, ami nem visszakövethető és több mint negyed évszázada működik nekem.

Előzmény: pimre (38500)
pimre Creative Commons License 2025.04.12 0 0 38505

Köszönöm, ezt ismerem, eddig eljutottam, nekem is működik. Csak a feloldás módja érdekelt volna. Sőt azon a honlapon egy sor érdekes megoldás van, amik kipróbálhatók, de nem elérhetők a megoldások. 
Ezért remélem, hogy m54-b barátunknak van korábbi - nem védett - verziója.

Előzmény: Fferenc50 (38502)
Sheeny Creative Commons License 2025.04.12 0 0 38504

Köszönöm!

Előzmény: m54-b (38494)
Sheeny Creative Commons License 2025.04.12 0 0 38503

Rendben, köszönöm!

Előzmény: Fferenc50 (38493)
Fferenc50 Creative Commons License 2025.04.12 0 0 38502

Szia!

Nekem 0365 van, a letöltés után a fájlon állva jobb egérgomb - tulajdonságok - alul a tiltás feloldása kocka bepipálva. Utána megnyitva és működik: Csak a sárga cellába (G5) tudsz írni számot és lent kiírja szöveggel.

Nincs cursor, minden más le van tiltva.

Így valóban nem sok hasznát lehet venni. :(

Üdv.

 

Előzmény: pimre (38500)
Fferenc50 Creative Commons License 2025.04.12 0 0 38501

Szia!

1. Ha nincs a köztes cellákban olyan információ, ami bezavarhatna az eredménybe, akkor egyben megadod a teljes tartományt.

2. Ha az 1. pont nem járható, akkor minden tartományra külön felírod a függvényt és összeadod az eredményt  =Darabha(vmi,1.tartomány9+Darabha(vmi,2.tartomány)..stb.

Üdv.

Előzmény: Ketele69 (38497)
pimre Creative Commons License 2025.04.12 0 0 38500

Ja, és lapvédelem van. Jelszót kérne. 

 

Néztem a füzetvédelmet is, de ott nincs ilyen.

Előzmény: pimre (38499)
pimre Creative Commons License 2025.04.12 0 0 38499

Hát én nem értem. Letöltöttem a fájlt onnan, amit te írtál, de nekem ez jelenik meg:

 

 

Nem látok munkalapokat, és az általad beírt Munka1!B3, Munka2!D21 jellegű hivatkozások hibaüzenetet generálnak. Biztos, hogy ugyanazt a fájlt látjuk? Vagy neked van valami más (régebbi) verziód?

Azt látom, hogy a szerző még Excel 2002 verzióval készítette, és 2019-ben frissítette utoljára. A freemail-es email címére nem is merek megpróbálni írni. Mitől lenne még most is elérhető?

Előzmény: m54-b (38498)
m54-b Creative Commons License 2025.04.12 0 0 38498

Eddig nem foglalkoztam vele...

Jelszó nincs, csak ráklikk a feloldásra.

A makró nem csinál semmit, csak ami látható, átmásol.

A "Hogyan működik" lapon levő táblázat tartalmaz egy csomó képletet, azok hozzák létre a szöveget, amit a makró átmásol.

A Táblázatot átmásolod egy új fájlba, majd

 


 

 

 

Előzmény: pimre (38496)
Ketele69 Creative Commons License 2025.04.12 0 0 38497

Sziasztok!
Darabha (darabteli) függvényt akartam használni, de úgy látom csak összefüggő tartományt kezel.

Mi a teendő, ha NEM egymás mellett vannak a vizsgálandó cellák?
Köszönöm,

pimre Creative Commons License 2025.04.12 0 0 38496

Persze jelszavas lapvédelemmel, csak éppen így teljesen öncélú.

Előzmény: pimre (38495)
pimre Creative Commons License 2025.04.12 0 0 38495

Azt hogy sikerült megoldania a szerzőnek, hogy se a munkalapok, se a makró nem érhető el? Ügyes, de így sajnos nem használhatók a demói, mivel csak a végeredmény látszik.

Előzmény: m54-b (38494)
m54-b Creative Commons License 2025.04.12 0 0 38494
Előzmény: Sheeny (38492)
Fferenc50 Creative Commons License 2025.04.12 0 0 38493

Szia!

Az a valami más megoldás egy makró. Beépített függvény nincs rá.

Üdv.

Előzmény: Sheeny (38492)
Sheeny Creative Commons License 2025.04.11 0 0 38492

Sziasztok, lehet, hogy a fórum életében már felmerült ez a kérdés, pár oldalt át is néztem de nem találtam.

Szóval az lenne a kérdés, hogy makró nélkül megoldható-e az, hogy ha beírok egy cellába egy számot (számokkal), akkor mondjuk alá/mellé kiírja, betűvel is ?

Létezik erre beépített függvény, vagy valami más megoldás ?

Köszi

pimre Creative Commons License 2025.04.09 0 0 38491

Miért jobb a fapados?

 

Amit a körlevél funkció csinál, az a következő:

 

A munkalapot meg kell megtervezned (nem úgy mint én, hanem formázva)

 

 

 

 

 

Előzmény: Amilovas (38490)
Amilovas Creative Commons License 2025.04.09 0 0 38490

Mindenkinek köszönöm a segítséget a wordös verziónál maradtam. Mert azt meg tudom oldani, no nem úgy ahogy pimre írta, csak ilyen fapados verzióban.

Még egy szer köszi. az exceles verziót elrakom mert ki tudja.......

Előzmény: pimre (38489)
pimre Creative Commons License 2025.04.09 0 0 38489

A Word körlevélre én is gondoltam, csak nem akartam belemenni a részletekbe. Ez a technika akkor lehet érdekes, ha rendszeresen és tömegesen kell ilyen munkalapokat kiállítani. Ebben az esetben nem közvetlenül írod a munkalapba az adatokat (a fejlécbe a szerelést végző és egyéb 8 adatot, valamint a listában lévő 30-40 adatot), hanem egy egyszerű Excel táblába (itt majd minden sor egy munkalap adatait tartalmazza). Munkalapként pedig készítesz egyetlen Word dokumentumot (munkalap sablon) ebben jelölöd ki, hogy az Excel tábla melyik oszlopának adata kerüljön a munkalap megfelelő rubrikájába. 

 

Innentől pedig a Word levelező egyetlen paranccsal készíti el a több száz/ezer munkalapot. Akár közvetlenül nyomtatóra, akár fájlba (ez biztonságosabb), amiben kinyomtatás előtt még egyszer tudod ellenőrizni, hogy jó lett-e a kitöltés.

 

Ebben tudnék segíteni, ilyenekkel rendszeresen dolgozom.   

Előzmény: Amilovas (38485)
m54-b Creative Commons License 2025.04.09 0 0 38488

Ilyen jutott az eszembe

(felvett makró, módosítással)

 

Sub Makró1()

For i = 1 To 1000
    Range("C2").Select
    ActiveCell.FormulaR1C1 = i

    ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
Next i

End Sub

Előzmény: Garashan (38487)
Garashan Creative Commons License 2025.04.09 0 0 38487

Makróval meg lehet oldani viszonylag egyszerűen. A "gyors" megoldással lassú a nyomtatás szerintem. Van bonyolultabb makrós megoldás is, azzal gyors is a nyomtatás.

 

Az egyszerű makróval csak a sorszámokat módosítod egyesével és egyesével küldi rá a nyomtatóra. Szerintem ilyenkor lassú lesz a nyomtatás.

A bonyolultabb megoldás, hogy megszerkeszted, ahogy szeretnéd majd a makró csinál belőle egy másik munkalapra mondjuk 200 másolatot és megkérdezi (valamint felajánlja a következő) sorszámot. Ilyenkor a formázási beállítások is másolhatóak.

Persze azt is meg lehet oldani, hogy ne 200 darabot nyomtasson, hanem csak 1 db-ot, ami mondjuk elázott a kávétól.

Előzmény: Amilovas (38486)
Amilovas Creative Commons License 2025.04.09 0 0 38486

De ez, hogy csináljam meg wordben nem annyira vonz :(

Előzmény: Thibi (38484)
Amilovas Creative Commons License 2025.04.09 0 0 38485

Az ötlet nem rossz de küzdök a beillesztéssel mert nem akar ráférni egy A4-es lapra. B terv, hogy megcsinálom wordben és úgy 

Előzmény: Thibi (38484)
Thibi Creative Commons License 2025.04.09 0 0 38484

Esetleg wordbe átmásolni, a sorszámok meg egy külön excelben legyenek,

ezekből a wordben már lehet körlevelet csinálni/nyomtatni

Előzmény: Amilovas (38483)
Amilovas Creative Commons License 2025.04.09 0 0 38483

Köszönöm igen pontosan ezt szeretném.

A többit javítottam. :) 

Előzmény: Garashan (38482)
Garashan Creative Commons License 2025.04.09 -1 0 38482

Én már tudom mit szeretnél, egy "szigorú számadású" szervíz jegyzőkönyvet nyomtatni, ahol a jegyzőkönyv sorszáma változik csak, a többi nem.

Viszont nem vagyok gép közelben, és fejből nem tudok rá megoldást... Ha estig nem jön megoldás, akkor foglalkozok vele.

 

De ha már így megosztottad ezt a dokumentumot, akkor "belekötök" két dologba.

A kondenzátor mértékegysége előtt a prefixum nem M (mega), hanem m (milli).

A gumivezetékeknél pedig, ha tartalmaz zöld/sárga eret, akkor 3G1,5 a jelölés, nem pedig 3X1,5. (És nem kábel, hanem vezeték, mert a szabvány szerint a kábel az, ami közvetlenül mehet földbe. Ezt tömlőszerű vezetéknek hívja a szakirodalom)

Előzmény: Amilovas (38480)
pimre Creative Commons License 2025.04.09 0 0 38481

Sajnos erre Excellel nincs ötletem. Remélem, valaki tud segíteni.

Előzmény: Amilovas (38480)
Amilovas Creative Commons License 2025.04.09 0 0 38480

Szóval megpróbálom megfogalmazni. Van egy A4 lap méretű munkalap(ezt adnám a szerelő fiúk kezébe) erre kellene egy emelkedő sorszám. Nem tudom, hogyan kellene rárakni, úgy hogy legyen belőle legalább

1000 db eltérő sorszámú.

Előzmény: pimre (38479)
pimre Creative Commons License 2025.04.09 0 0 38479

Számomra nem derül ki a kérdésedből, hogy a sorrendezéssel van-e a problémád, vagy a nyomtatással. Na meg mit is jelent, hogy A4 méretű a munkalapod? Ha azt, hogy A4-es lapra szeretnéd nyomtatni, az beállítható. Ha azt szeretnéd, hogy a fejlécet (első sor) minden lapon nyomtassa ki, az is beállítható.

Előzmény: Amilovas (38478)
Amilovas Creative Commons License 2025.04.09 0 0 38478

Sziasztok !

 

Olyan kérdésem lenne, hogy van egy A4 méretű "Munkalapom".

Ezt kellene valahogy úgy kinyomtatnom, hogy legyen rajta egy emelkedő sorszám raktárszám/év/emelkedő sorszám 00001-től legalább 2000-ig. 

Őszinte leszek lövésem sincs, hogyan fogjak hozzá.  Kb ott tartok, hogy 100X egymás alá másolom a munkalapot és úgy számozom be, de ez így egy kicsit sziszifuszinak tűnik.

Köszönöm

Andyyy42 Creative Commons License 2025.04.01 0 0 38477

Szia,

 

Javítottam és rendben működik.

Köszönöm szépen! 

Előzmény: Fferenc50 (38476)
Fferenc50 Creative Commons License 2025.04.01 0 0 38476

Szia!

Ezzel az utasítással:

".SetRange Range("B2:B" & LastRow)"

a B oszlop rendezésére utasítod.

Itt meg kell adnod a teljes sorbarendezni kívánt tartomány címét. Pl. Range("A2:X" & LastRow)

Üdv.

Előzmény: Andyyy42 (38475)
Andyyy42 Creative Commons License 2025.04.01 0 0 38475

Sziasztok,

 

Van egy változó sorszámú táblázatom.

VBA-val próbálom dátum szerint csökkenő sorrendbe rendezni. 
A dátum oszlop a "B" oszlop.

 

Ezt úgy csinálom, hogy mindig megszámoltatom a "B" oszlop sorait és aztán rendezem csökkenőbe.
De valamiért nem "bővíti a kijelölést" és a táblázaton belül csak a "B" oszlop adatait rendezi sorba.

(a táblázat nincs táblázatos formában)

 

 

Dim LastRow As Long

 

LastRow = Worksheets("ADAT").Cells(Rows.Count, "B").End(xlUp).Row
Worksheets("ADAT").Range("B2:B" & LastRow).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Worksheets("ADAT").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("ADAT").Sort.SortFields.Add2 Key:=Range("B2:B" & LastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("ADAT").Sort
.SetRange Range("B2:B" & LastRow)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

 

Mi a gond? 

 

Köszi! 

 

Takeoff. Creative Commons License 2025.03.25 0 0 38474

Köszönöm!

Előzmény: Fferenc50 (38473)
Fferenc50 Creative Commons License 2025.03.25 0 1 38473

Szia!

2019-es verzió óta van MINHA függvény.

Ha ettől régebbi, próbáld az alábbi tömbfüggvényt:

=MIN(HA(D2:J2<>0;D2:J2;""))

a minimum érték meghatározására.

A tömbfüggvényt Ctrl + Shift + Enter kombóval kell lezárni, az Excel kapcsos zárójelbe teszi.

Üdv.

Előzmény: Takeoff. (38472)
Takeoff. Creative Commons License 2025.03.25 0 0 38472

Sziasztok!

 

Több cella közül szeretném feltételes formázással kiemelni a legkisebb értéket. Erre használom a 

 

=D2=MIN($D$2:$J$2)

 

képtetet. Viszont vannak olyan cellák, ahol az érték 0 (nulla) ezeket figyelmnen kívűl kellen hagynom és az összhasonlítást csak >0 kellene megtenni. 

 

Kiegészíthető ez a képlet erre? 

hellsing Creative Commons License 2025.03.25 0 0 38471

Üdv, Pivotban kellene egy nagyon alap segítség (30+ év Excel, 30 perc Pivot tudás :).

 

Forgalmi adatokból létrehoztam az első pivotomat. Az egyik soromban dátumok vannak. Az Excel a csoportosításnak (hónapok) automatikusan mmm, a bontásnak (napok) nn-hhh (pl. 02-jan) formátumot adott, nekem viszont hhhh (pl. január) és hhhh nn, nnn (pl. január 25, kedd) kellene.

 

Rámegyek a sorra, ott Mezőbeállítások -> Számformátum, kiválasztom a megfelelőt, OK -> OK és nem történik semmi, továbbra is nn-mmm formátumban jelennek meg az adatok.

 

Az adatforrásban Excel dátumok vannak (pl. 45741) éééé-hh-nn formázással, az Excel magyar és a területi beállítások is magyarországiak (ezért sem értem, hogy miért jön a 02-jan formátummal). Mit csinálok rosszul?

 

Vax Creative Commons License 2025.03.23 0 0 38470

Projekt védelem (Project protection)

Több fórumon is olvastam, hogy ez a probléma másnál is felmerült több Excel verziónál. Én egy 2016-os verziót tudtam kipróbálni, de volt aki 2007-esen tapasztalta. Nem tudom, hogy az eredeti fájlok melyik Excelben készültek, mert később változtattam a fájltípust, de  klónoztam is őket.

Talán a Windows-ban kell keresni a hibát, de ez magas nekem, mint libának a kerítés.

Amit most kipróbáltam: Egy fájlt, amin volt projektvédelem, átneveztem, a régi lapokat kitöröltem, új lapkat, új funkciót adtam a fájlnak, megváltoztattam a projekt védelem jelszavát, és működik. Ugyanakkor mellette kreáltam egy új munkafüzetet, ugyanúgy berendeztem, mint a másikat, és nem tudom rá kiadni a projekt védelmet. Néztem az Excel beállításait is, de látszólag minden ugyanaz.

 

Előzmény: Vax (38458)
Fferenc50 Creative Commons License 2025.03.20 0 1 38469

Szia!

Nem tudom, kaptál-e esetleg privátban választ. Az AdvancedFilter CriteriaRange tartalma alapvetően a következőképpen nézhet ki:

ÉS feltétel esetén egymás mellé ugyanabba a sorba kell írni a feltételeket.

VAGY feltétel esetén viszont külön sorokat kell használni.

Ha pedig egy oszlopban nem szeretnél szűrni, akkor nem az X a megoldás, hanem üresen kell hagyni az adott oszlop feltétel sorait.

Ha csak a B típusra vagy kíváncsi és az Oszlop7 15 értékére, akkor 2 sor a feltétel range:

1. sor a fejlécek

2. sor a Típus alatt B, Osztály7 alatt 15, a többi fejléc alatt NINCS semmilyen érték (a képleted eredménye legyen "" és nem X)

Üdv.

 

Előzmény: Andyyy42 (38464)
pimre Creative Commons License 2025.03.18 0 0 38468

Időközben megtaláltam a Képlet függvényt. Ez megoldja a gondomat.

Előzmény: pimre (38467)
pimre Creative Commons License 2025.03.18 0 0 38467

Van egy munkafüzetem, ahol egy fő munkalapra kerülnek számok, majd ezeket a további munalapokra függvény olvassa be onnan, hogy véletlenül se kerüljön a helyestől eltérő szám oda, ahol a fő munkalapról kell a helyes értéket bemásolni. 

Sajnos előfordul, hogy a felhasználók elfelejtkeznek erről, és a függvényt átírják számra, ami tévedésekhez vezethet.

 

Sajnos nem tudok olyan ellenőrzést, hogy egy adott cella még függvényt tartalmaz-e, vagy már tévedésből át lett-e javítva számmá.

 

Van erre valamilyen megoldás?

Garashan Creative Commons License 2025.03.16 0 0 38466

Én nem teljesen értem, hogy mit is szeretnél.

Tölts fel egy anonimizált példát és akkor valószínűleg fogunk tudni segíteni.

Előzmény: Andyyy42 (38464)
Andyyy42 Creative Commons License 2025.03.15 0 0 38465

Előzmény: Andyyy42 (38464)
Andyyy42 Creative Commons License 2025.03.15 0 0 38464

Sziasztok,

 

Advanced filter makróval.

 

A CriteriaRange "táblázatot" függvényekkel töltöm fel, különböző szabályok szerint, többnyire egybeágyazott HA + ÉS/VAGY függvényekkel.

 

Ha beadok minden adatot, akkor mondjuk kijön az alábbi táblázat, mint CriteriaRange = A1:H6

 

 

 

Ahol "X"-ek vannak, ott a függvény eredménye X, mivel nincs feltétele a szűrésnek.
Jelen példa szerint az összes adatot, ami Típus = B és oszlop7=15 kellene, h kilistázza eredményül.
De vmiért semmit nem hoz eredményül.

 

Nem tudom miért nem :-(

(az X nem szerepel az adathalmazban, mint érték, azért rakatom be a függvényekkel, hogy azokra a sorokra ne keressen rá)

 

Szerintetek?

Garashan Creative Commons License 2025.03.14 0 1 38463

Évek óta használom az excelt a parancssor meghívására. Viszont most beleütköztem abba a problémába, hogy olyan parancsot szerettem volna futtatni amihez rendszergadaként kell futtatni a parancssort.

Kis kutatómunkával találtam rá megoldást. Ha esetleg másnak is szüksége lenne rá, akkor itt van a kód.

 

Private Sub RunAsAdmin(ByVal parancs As String)
Dim oShell As Object
Set oShell = CreateObject("Shell.Application")
oShell.ShellExecute "cmd.exe", "/k " & parancs, , "runas", 1
End Sub

 

A munkám folyamán sokszor kell IP címet módosítanom, amit eddig kézzel oldottam meg, de meguntam, így írtam rá excelben makrót :) Egy listából kiválasztom a megfelelő paramétert és a makró teszi is a dolgát.

 

A references részen nálam 4 dolog van bekapcsolva:

-visual basic for applications

-Microsoft Excel 16.0 object library

-OLE Automation

-Microsoft Office 16.0 object library

 

 

Ha jól emlékszem, akkor az object library-ket most kapcsoltam be hozzá, de nem vennék már rá mérget.

RJancsi Creative Commons License 2025.03.08 0 1 38462

Köszi! A legegyszerűbb megoldásra nem is gondoltam. :(

Előzmény: Garashan (38461)
Garashan Creative Commons License 2025.03.07 0 0 38461

Az érvényesítés beállításakor a hibajelzés lapon kiveszed a pipát. Ekkor kiválasztod a listából a neked megfelelő sablont, majd utána módosítod, ahogy akarod.

Előzmény: RJancsi (38460)
RJancsi Creative Commons License 2025.03.07 0 0 38460

Sziasztok! Lassan időpontot foglalhatok a hülye kérdések minisztériumába (Monty Python után szabadon). A mostani agymenésem az, hogyan lehetne valami prediktív szövegbevitel szerűséget létrehozni az excelben. Arra gondolok, hogy adatérvényesítés jelleggel egy legördülő listából ki tudnám választani egy cella szövegének általános tartalmát, de utána hibaüzenet nélkül módosítani tudjam a szöveget. Nyilván ilyenkor az adatérvényesítés hibát jelez. 

 

Nagyon meredek a kérdésem? 

hellsing Creative Commons License 2025.03.06 -1 0 38459

Ezt csak úgy itt hagyom, a köz okulására. Az Excel 2021 fantasztikus, többszálú feldolgozása (igen, be van kapcsolva az összes mag). Ez egy 10 magos, 20 szálon dolgozó 10900KF és 64GB RAM. Az Excel képes 2 magon és 4 szálon futni, azon is csak hézagosan. Ha én lennék a Microsoft, az Excel rég a grafikus procin (3080Ti) futna, meg az összes CPU magon.

 

Vax Creative Commons License 2025.03.05 0 0 38458

Találtam egy 2019-es beszélgetést erről a problémáról. Ők nem találtak rá megoldást.

 

https://answers.microsoft.com/en-us/msoffice/forum/all/unable-to-lock-vba-window/9f1352af-7139-400f-afc3-c6d2bc3b73a6

 

https://answers.microsoft.com/en-us/profile/7174c62f-a522-48b9-b8d3-7bcd4c7a258f

 

(Valamikor lehetett ide normálisan is linkelni.)

Előzmény: Vax (38457)
Vax Creative Commons License 2025.03.04 0 0 38457

Sajnos nem segít. Valóban üres volt még a projekt, de hiába írtam bele, nem tudom lezárni betekintés elől. Még annyit, hogy találtam egy régi fájlt, amiről azt írta az Excel hogy megbízhatatlan és csak akkor nyissam meg, ha..., mivel a fájlnévből egyértelmű, hogy az enyém volt, megnyitottam, de a projektbe nem tudok belenézni. Rá se kérdez a jelszóra, csak kiírja, hogy "project is unviewable".

Köszönöm. Üdv.

Előzmény: Garashan (38456)
Garashan Creative Commons License 2025.03.03 0 0 38456

Jómagam WIN10-et és Excel2021-et használok. Nem bírtam reprodukálni a hibát.

Egy esetben nem állított be jelszót, ha teljesen üres volt a VBA project. De amint írtam bele valamit, akkor már be tudtam állítani rá jelszavas védelmet.

Előzmény: Vax (38455)
Vax Creative Commons License 2025.03.02 0 0 38455

Üdvözlök Mindenkit,

Meg tudná mondani valaki, hogy a VBA projektvédelem miért nem működik: WIN10, Excel2019.

VBA-Tools-VBA Project Properties-Protection, Beállítom, beírom a jelszót, és hatástalan.

Régen is használtam, és azok a projektek védve is vannak. Mit rontok el?

Köszönöm szépen.

 

webhifi1 Creative Commons License 2025.02.28 0 1 38454

Nagyon szépen köszönöm! Sima Liba nagyon jól működik!

Előzmény: Garashan (38452)
RJancsi Creative Commons License 2025.02.28 0 0 38453

Köszönöm!

Előzmény: Fferenc50 (38448)
Garashan Creative Commons License 2025.02.27 0 0 38452

Most már nem kell. Megfejtettem a dolgot :-)

A színezés relációs jeleivel voltak gondok.

Sub FormatDate(cell As Range, diff As Long)
Debug.Print "Színezés - diff: " & diff
If diff = 0 Then
cell.Interior.Color = RGB(0, 0, 255) ' Kék - pontos egyezés
Debug.Print "Kék: " & cell.Address
ElseIf diff > 0 Then
cell.Interior.Color = RGB(255, 0, 0) ' Piros - már lejárt
Debug.Print "Piros: " & cell.Address
ElseIf diff >= -30 Then
cell.Interior.Color = RGB(255, 255, 0) ' Sárga - 30 napon belül
Debug.Print "Sárga: " & cell.Address
Else
cell.Interior.Color = RGB(0, 255, 0) ' Zöld - 30 napon túl a jövőben
Debug.Print "Zöld: " & cell.Address
End If
End Sub

 

Előzmény: Garashan (38451)
Garashan Creative Commons License 2025.02.27 0 0 38451

Küldj róla egy minta fájlt e-mailben, ami anonimizálva van. Az e-mail címem publikus.

Előzmény: webhifi1 (38449)
webhifi1 Creative Commons License 2025.02.27 0 0 38450

Lemaradt:Lemaradt

webhifi1 Creative Commons License 2025.02.27 0 0 38449

A kérdést sem tudom feltenni:( De nem működik a színezés:( A lényeg ogy évváltás szökőév stb figyelembevételével valami miatt nam az igazi.

A lejárt dátum piros

ami hamarosan lejár sárga (ez esetben 30 napos intervallum)

aznapi kék;

ami meg több mint 30 napig érvényes legyen zöld:)  Aktuális dátumhoz viszonyítva 

Köszönöm! 

 

 

Sub LejaroEllenorzes()
Dim wsTotal As Worksheet
Dim wsLejaro As Worksheet
Dim lastRowTotal As Long
Dim lastRowLejaro As Long
Dim i As Long
Dim currentDate As Date
Dim cellValue As String
Dim diffK As Long, diffL As Long, diffO As Long, diffR As Long
Dim találatCount As Long
Dim dateK As Date, dateL As Date, dateO As Date, dateR As Date

' Munkalapok beállítása
Set wsTotal = ThisWorkbook.Sheets("Total")
Set wsLejaro = ThisWorkbook.Sheets("Lejárat")

' Az aktuális dátum meghatározása
currentDate = Date

' Lejárat munkalap törlése a korábbi adatok eltávolításához
wsLejaro.Cells.Clear

' Az oszlopfejlécek másolása a Total munkalapról a Lejárat munkalapra
wsLejaro.Cells(1, 1).value = "Név"
wsLejaro.Cells(1, 2).value = "Szül. dátum"
wsLejaro.Cells(1, 3).value = "EBK alap"
wsLejaro.Cells(1, 4).value = "EBK MIR"
wsLejaro.Cells(1, 5).value = "Orvosi érvényes"
wsLejaro.Cells(1, 6).value = "Poliol spec. oktatás érv."

' A Total munkalapon az utolsó sor meghatározása
lastRowTotal = wsTotal.Cells(wsTotal.Rows.Count, "Y").End(xlUp).row
Debug.Print "Utolsó kitöltött sor az Y oszlopban: " & lastRowTotal

' Az Lejárat munkalapon az első üres sor meghatározása
lastRowLejaro = 2 ' Az adatok a második sortól kezdődnek

' Találatok számlálója
találatCount = 0

' A Total munkalapon végigiterálunk
For i = 2 To lastRowTotal
' Ellenőrizni, hogy az Y oszlop "aktív" vagy "inaktív"
cellValue = wsTotal.Cells(i, "Y").value
Debug.Print "Row " & i & ", Y oszlop értéke: " & cellValue

If cellValue = "Aktív" Then
' Ellenőrizni, hogy a dátumok valódi dátumok és nem üresek
If IsDate(wsTotal.Cells(i, "K").value) And wsTotal.Cells(i, "K").value <> "" Then
dateK = DateValue(wsTotal.Cells(i, "K").value)
diffK = DateDiff("d", dateK, currentDate)
Debug.Print "K oszlop dátuma: " & dateK & ", diffK: " & diffK
Else
diffK = -9999 ' Ha nincs érvényes dátum, beállítunk egy nem létező eltérést
Debug.Print "K oszlop érvénytelen dátum"
End If

If IsDate(wsTotal.Cells(i, "L").value) And wsTotal.Cells(i, "L").value <> "" Then
dateL = DateValue(wsTotal.Cells(i, "L").value)
diffL = DateDiff("d", dateL, currentDate)
Debug.Print "L oszlop dátuma: " & dateL & ", diffL: " & diffL
Else
diffL = -9999 ' Ha nincs érvényes dátum, beállítunk egy nem létező eltérést
Debug.Print "L oszlop érvénytelen dátum"
End If

If IsDate(wsTotal.Cells(i, "O").value) And wsTotal.Cells(i, "O").value <> "" Then
dateO = DateValue(wsTotal.Cells(i, "O").value)
diffO = DateDiff("d", dateO, currentDate)
Debug.Print "O oszlop dátuma: " & dateO & ", diffO: " & diffO
Else
diffO = -9999 ' Ha nincs érvényes dátum, beállítunk egy nem létező eltérést
Debug.Print "O oszlop érvénytelen dátum"
End If

If IsDate(wsTotal.Cells(i, "R").value) And wsTotal.Cells(i, "R").value <> "" Then
dateR = DateValue(wsTotal.Cells(i, "R").value)
diffR = DateDiff("d", dateR, currentDate)
Debug.Print "R oszlop dátuma: " & dateR & ", diffR: " & diffR
Else
diffR = -9999 ' Ha nincs érvényes dátum, beállítunk egy nem létező eltérést
Debug.Print "R oszlop érvénytelen dátum"
End If

' Ha bármelyik dátum 30 napon belül van, vagy már lejárt és 30 napon belül volt
If (diffK >= -30 And diffK <= 30) Or (diffL >= -30 And diffL <= 30) Or (diffO >= -30 And diffO <= 30) Or (diffR >= -30 And diffR <= 30) Then
' A találatokat átmásolni a Lejárat munkalapra
wsLejaro.Cells(lastRowLejaro, "A").value = wsTotal.Cells(i, "A").value ' Név
wsLejaro.Cells(lastRowLejaro, "B").value = wsTotal.Cells(i, "E").value ' Szül. dátum
wsLejaro.Cells(lastRowLejaro, "C").value = wsTotal.Cells(i, "K").value ' EBK alap
wsLejaro.Cells(lastRowLejaro, "D").value = wsTotal.Cells(i, "L").value ' EBK MIR
wsLejaro.Cells(lastRowLejaro, "E").value = wsTotal.Cells(i, "O").value ' Orvosi érvényes
wsLejaro.Cells(lastRowLejaro, "F").value = wsTotal.Cells(i, "R").value ' Poliol spec. oktatás érv.

' Dátumformátum beállítása
wsLejaro.Cells(lastRowLejaro, "C").NumberFormat = "yyyy.mm.dd"
wsLejaro.Cells(lastRowLejaro, "D").NumberFormat = "yyyy.mm.dd"
wsLejaro.Cells(lastRowLejaro, "E").NumberFormat = "yyyy.mm.dd"
wsLejaro.Cells(lastRowLejaro, "F").NumberFormat = "yyyy.mm.dd"

' Dátumok formázása színnel
Call FormatDate(wsLejaro.Cells(lastRowLejaro, 3), diffK) ' 3 = C oszlop
Call FormatDate(wsLejaro.Cells(lastRowLejaro, 4), diffL) ' 4 = D oszlop
Call FormatDate(wsLejaro.Cells(lastRowLejaro, 5), diffO) ' 5 = E oszlop
Call FormatDate(wsLejaro.Cells(lastRowLejaro, 6), diffR) ' 6 = F oszlop

' Sorok növelése a következő találatra
lastRowLejaro = lastRowLejaro + 1
találatCount = találatCount + 1
End If
End If
Next i

' Ellenőrizzük, hogy van-e találat
If találatCount = 0 Then
MsgBox "Nincs találat!"
Debug.Print "Nincs találat!"
Else
MsgBox találatCount & " találat van."
Debug.Print találatCount & " találat van."
End If

' Oszlopok szélességének beállítása a Lejárat munkalapon
wsLejaro.Columns("A:F").AutoFit
End Sub

Sub FormatDate(cell As Range, diff As Long)
Debug.Print "Színezés - diff: " & diff
If diff = 0 Then
cell.Interior.Color = RGB(0, 0, 255) ' Kék - pontos egyezés
Debug.Print "Kék: " & cell.address
ElseIf diff < 0 Then
cell.Interior.Color = RGB(255, 0, 0) ' Piros - már lejárt
Debug.Print "Piros: " & cell.address
ElseIf diff <= 30 Then
cell.Interior.Color = RGB(255, 255, 0) ' Sárga - 30 napon belül
Debug.Print "Sárga: " & cell.address
Else
cell.Interior.Color = RGB(0, 255, 0) ' Zöld - 30 napon túl a jövőben
Debug.Print "Zöld: " & cell.address
End If
End Sub

 

Fferenc50 Creative Commons License 2025.02.27 0 0 38448

Szia!

Sajnos csak makróval megy a módosítás, mert csak úgy lehet összekötni a változásokat.

A munkalap kódlapjára másold be ezt:

 

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 11 And Target.Column = 1 Then
Target.Offset(0, 1).Value = Application.Names(Target.Value).RefersToRange.Cells(1)
End If
If Target.Row = 11 And Target.Column = 2 Then
Target.Offset(0, 1).Value = Application.Names(Target.Value).RefersToRange.Cells(1)
End If
End Sub

 

(Lapfülön jobb egérgomb - kód megjelenítése)

Ezután engedélyezned kell a makrók futtatását és makróbarátként kell mentened a fájlt.

Üdv.

Előzmény: RJancsi (38447)
RJancsi Creative Commons License 2025.02.27 0 0 38447

Ha küldesz egy mailt privátba (az én címem publikus), el tudom küldeni az excel fájlt. 

Előzmény: Fferenc50 (38445)
RJancsi Creative Commons License 2025.02.27 0 0 38446

Mindegyikben egyszerű "listás" adatérvényesítés A11-ben (A2;A3), a B11-ben "=INDIREKT(A11)", a C11-ben "=INDIREKT(B11)" 

A listák mezőnevekkel vannak ellátva ezért tudok névvel hivatkozni rájuk. 

Előzmény: Fferenc50 (38445)
Fferenc50 Creative Commons License 2025.02.26 0 0 38445

Szia!
Milyen képletet használsz az A11 - B11 - C11 cellákban?

Légy szíves mutasd meg.

Üdv.

Előzmény: RJancsi (38444)
RJancsi Creative Commons License 2025.02.26 0 0 38444

Sziasztok!

Többszintű lista adatérvényesítésével kapcsolatban van kérdésem. Megoldható-e, ha egy magasabb szintű listaelemet módosítok, hogy az alacsonyabb rendűek törlődjenek? Na ez még nekem sem érthető... Inkább egy példa. Csináltam egy példa táblázatot. Első nekifutásra kiválasztottam a "Gyümölcs"-"Körte"-"Vilmos" adatsort. Eddig OK. Ám ha a legfelső szinten a Gyümölcsöt Zöldségre változtatom, a kiválasztás többi eleme (Körte-Vilmos) változatlan marad ami nyilván nem jó. Mit lehet tenni ez ellen? 

 

 

Fferenc50 Creative Commons License 2025.02.25 0 0 38443

Szia!

Nem szeretném most arra terelni az eszmecserét, hogy mi lesz akkor, ha elmész/elküldenek a cégtől. Nélkülözhetetlen/pótolhatatlan ember nincs. :(

A védelemről:

Az Excel védelme alapvetően a felhasználók "véletlen"  módosításainak megakadályozását szolgálja, elég szofisztikált módon, de nem megkerülhetetlenül/feltörhetetlenül.

A makrókat is lehet védeni a VBA nézet Tools - VBA project Properties - Protection fülön jelszóval is. De ez sem feltörhetetlen.

Ezért biztosabb az, ha magát a fájlt olyan környezetbe helyezzük, ahol a hozzáféréseket, láthatóságot vagyis a külső védelmet lehet erős eszközökkel megoldani, amire minden rendszerben, így MS-nél is megvannak a szabványos lehetőségek.

Nem küldözgetjük a fájlt, csak a végeredményt, pl. PDF formátumban mentve.

Lehet azt tenni, hogy az adatokat, amire szüksége van, külön fájlban tartjuk és csak a szükséges értékeket kérdezzük le a feldolgozáshoz. Sőt azt is lehet, hogy ez a feldolgozás is külön fájlban van. Az első fájl csak arra szolgál, hogy a hozzáférést ellenőrizzük és elindítsuk a másik /akár rejtett/, érdemi részt tartalmazó munkafüzetet.

De ezek is csak ötletek.

Üdv. 

Előzmény: Andyyy42 (38441)
Andyyy42 Creative Commons License 2025.02.25 0 0 38442

Szia!

 

Ez egyrészt így van!
A fórum segítsége nélkül, olyan formában, ahogyan kérik tőlem, nem tudtam volna mindezt összerakni, hiszen hiányzó láncszemek voltak a folyamatban, amiket a fórumozók oldottak meg. Ezért baromi nagy köszönet Nekik!

 

Másrészt, ha nagyon le akarjuk sarkosítani a dolgot, akkor kellett hozzá az excel, ami a Microsoft szellemi terméke, szóval az érdem az övé, ha így nézzük.
Persze ahhoz meg kellett egy gép, amin futnak a Microsoft termékek és a gép sem úgy született, hogy valaki egyik este lefeküdt, majd másnap meg felébredt és összerakott egy komplett, használható számítógépet, hanem több száz ezer ember folyamatos ötletei, fejlesztése, „szellemi termékének” a végeredménye.
+  a rengeteg youtubos video és feltöltőjük, amiket átnéztem, mert ha kicsi is az excel tudásom, én sem úgy születtem meg, hogy ez már a rendelkezésemre állt és bizony ők is segítettek benne az évek alatt…

Persze kellett hozzá egy keresőmotor is az interneten, hogy te is és én is rátaláljak a fórumra, az is szellemi termék.
Meg persze az idex.hu is, ahol én is és te is együtt használva más szellemi termékét, tudunk most beszélgetni egymással.

Előzmény: arkilaszlo (38440)
Andyyy42 Creative Commons License 2025.02.25 0 0 38441

Szia,

 

"Főnökeid mit szólnának ahhoz....."

Alapvetően a levédés nem az enyém, hanem az ő ötletük volt. Itt nyílván elsősorban ők féltik a céges adatokat.
Szóval, ha nekik ez a megoldás jó, akkor nekem mindegy igazából.

"(béremelés, egyszeri jogdíj...stb.)"
Ez sajnos nálunk nem kivitelezhető.
Nagyon le vagyunk még maradva vállalati kultúrában a németektől / USA-tól.
Ilyenért itt nem adnak nekem jogdíjat.... :(

egyelőre csak a cégen belüli pozíciómat tudom növelni vele, ami összefügg a fentiekkel is, hogy mi lesz akkor ha elmegyek.

Én örülök, hogy alapvetően olyan szituban vagyok most kicsit, hogy nekik van most rám szükségük elsősorban.

 

Ez egy kb 25-30 lépcsőből álló adathalmaz rendezés, átalakítás, műveletek elvégzése rajta,  szűrés stb, ahol a lépések értelem szerűen egymásra épülnek és a sorrend nem változtatható. - Ez az, amit én raktam össze. És igazából maga az ötlet is tőlem származott, mert annyira ismertem az excelt, hogy átlássam, ezt vele meg lehetne csinálni. Ez az, amit viszont én nem feltétlenül szeretnék, hogy mások átlássanak és rajtam kívül más is össze tudja rakni, itt megint visszacsatolva a cégen belüli értékemre.

 

Alapvetően én örülök neki, hogy tudok segíteni a cégnek, ahol dolgozom, ahonnan a megélhetésem jön.
Azzal, hogy ezt lehetőleg le kell védeni, nekem is azonosulnom kell, hiszen én ilyenkor mindig mint alkalmazott szerepelek, nem pedig mint egy külső szoftverfejlesztő mondjuk és követnem kell a vezetőség kérését.

 

 

 

 

 

Előzmény: Fferenc50 (38439)
arkilaszlo Creative Commons License 2025.02.25 0 0 38440

"tudod létezik a szellemi termék tulajdon"

 

ez pedig a fórumé és nem az övé....

Előzmény: Fferenc50 (38439)
Fferenc50 Creative Commons License 2025.02.24 0 0 38439

Szia!
Csak egy kérdésem van: Főnökeid mit szólnának ahhoz, ha bejelentenéd, hogy holnaptól nem dolgozol a cégnél, aminek következtében a szuperül kidolgozott, titokban tartott remek excel tábládat nem tudnák tovább használni? HIszen senki sem ismerheti, hogyan és milyen logikával működik.

Szerintem nem jó úton indultál el. Tárgyald meg a vezetőiddel, hogy az általad/általatok kifejlesztett rendszert milyen feltételekkel használhatja a cég - tudod létezik a szellemi termék tulajdon és annak védelme, ezért milyen juttatás (béremelés, egyszeri jogdíj...stb.) jár neked ezért.

Egyébként a munkafüzetbe építhetsz be jogosultságokat, ami alapján eldöntheti a makró, ki mire jogosult.

Az összes adatot tartalmazó munkalapot átteheted egy külön munkafüzetbe és a háttérben megnyitva számolhatsz vele.

Ha pedig igaz az, amit Garashannak írtál a munkatársak Excel ismeretéről, akkor semmi félnivalód nincs.

Üdv.

Ps. Azt gondolom tudod, hogy minden szoftverhez használati útmutatót illdomos adni írásban. Sőt a jövőbeni fejlesztések/esetleges javítások érdekében nem ártalmas egy pontos rendszer leírás készítése sem. 

Előzmény: Andyyy42 (38437)
Andyyy42 Creative Commons License 2025.02.24 0 0 38438

Szia,

 

Igen, alapvetően hasonló dolgokban gondolkozom én is.

 

"bár azt nekem 10-15 mp eltüntetni"
Szerencsére vagy nem szerencsére, alapvető, nagyon kezdő excel tudás van mindenkinek, ezért automatizálok mindent, gombokra lesarkítva.
Nem tudják mi az, hogy makró stb. 
Kicsi az esélye, hogy bárki külsőst megkérnek, nem lehet-e feltörni a makrókat stb, mivel foglmuk sincs róla... így szerintem nem mennek tovább majd, hanem elfogadják, hogy oké, ezzel nem lehet mit kezdeni, csak "használni".
Legalábbis ebben bízunk, ebből indulunk ki.

Előzmény: Garashan (38435)
Andyyy42 Creative Commons License 2025.02.24 0 0 38437

Szia,

 

használni kell a file-t több mindenkinek.
többfajta lekérdezésekből rakunk össze adatokat/információkat, amit aztán szűréssel kinyerve, csak a lényegi információt - eredményt használunk tovább.
De ezt napi szinten változtatva.

 

Azt nem akarjuk, hogy össze tudják rakni, hogy hogyan jön ki a végeredmény + az alap adathalmazokat se lássák, hogy miből jön össze a végeredmény.
(mi a folyamata az alap adatokból összeállításnak)

+ ha vki elmegy a cégtől, akkor ezt tovább vigye és felhasználja

 

 

Viszont az eredményt meg a napi munkához tudják használni, hogy vki könnyebb, gyorsabb, hatékonyabb legyen, mint az, ahogyan most dolgoznak.

 

Így nehéz elmondani, konkrétumok nélkül.

Előzmény: Fferenc50 (38436)
Fferenc50 Creative Commons License 2025.02.24 0 0 38436

Szia!

Nem egészen értem ezt a "titkolózási cunamit". Ha nem szeretnéd, hogy megnyissák a fájlt, ne küldjék el, akkor ne tedd közzé.

Ha pedig közzé akarod tenni, akkor konvertálhatod PDF -be, amit nem tudnak módosítani.

Üdv.

Előzmény: Andyyy42 (38434)
Garashan Creative Commons License 2025.02.24 0 0 38435

Sejtem hogy arra gondolsz, hogy a pl. gmail asztali gépen betölti az excel előnézetét, ha csatolmányban van. Szerintem ez ellen nem igazán lehet védekezni. Legalábbis makró szinten egész biztosan nem, mert legjobb tudomásom szerint makrókat nem futtat a gmail.

De ha már úgyis telepakoltad makróval és azok szükségesek a működéshez is, akkor csináld meg úgy, hogy csak 1 darab munkalap van megjelenítve a munkafüzetben, az összes többit rejtsd el és jelszavazd le őket (bár azt nekem 10-15 mp eltüntetni) és makrók segítségével másolj át minden adatot arra az egy darab munkalapra. Lehet futtatni makrót automatikusan mentés előtt is, azzal pedig ki lehet pucolni azt az 1 darab munkalapot.

Előzmény: Andyyy42 (38434)
Andyyy42 Creative Commons License 2025.02.24 0 0 38434

Sziasztok,

 

Most már tudom, hogyan lehet megcsinálni, hogy ne lehessen "másként menteni", ne lehessen "lementeni" + tudom azt is, hogy csekkolja, hogy csak akkro nyíljon meg a  file, ha az elérési helye nincs megváltozva.

 

Most már csak arra kellene egy ötlet, hogy azt hogyan lehetne megcsinálni, ha e-mailben elküldi vki, akkor se működjön.

 

Lementeni nem lehet az e-mailből a gépre, de a levelező rendszerből, mit csatolmány,  megnyílik az excel és mindig azt megnyitva tudják használni.

 

Esetleg erre vmi ötlet / módszer?

Mondjuk vmit szintén csekkoljon, ami nélkül nem nyílik meg, mert az is le van mentve valahová és azt is kellene mondjuk ugyan úgy elküldeni az emailben, de ezt nyilván nem tudja senki és azt nem küldik el.
Esetleg vmi ilyesmi vagy hasonló? Szerintetek? 

 

 

 

Előzmény: Fferenc50 (38421)
Takeoff. Creative Commons License 2025.02.23 0 0 38433

Köszönöm!

 

Előzmény: Garashan (38430)
Takeoff. Creative Commons License 2025.02.23 0 0 38432

Köszönöm!

Előzmény: Fferenc50 (38428)
Fferenc50 Creative Commons License 2025.02.23 0 1 38431

Szia!

Igazad van, elnéztem (nem tudom miért, a szóközből indultam ki).

A keresésnél szerintem ilyen esetben célszerű a KARAKTER függvényt használni.

Üdv.

Előzmény: Garashan (38429)
Garashan Creative Commons License 2025.02.23 0 0 38430

Illetve nem tudom, hogy a kérdezőnek mennyire tiszta a $ jel használata.

Ha az én vizualizált példámnál maradunk, akkor láthatod, hogy a szabály megadásánál nem használtam se az "A", se a "1" karakterek előtt dollár jelet. Ezáltal az érvényességben megadott első cellában, azaz a C1-ben a szabály az A1 tartalmát vizsgálja, míg a második cellában, a C2-ben pedig az A2 tartalmát vizsgálja.

 

Ha a képletem =A$1="igen" lett volna, akkor C1-ben, C2-ben, ... és C9-ben is az A1 cellát fogja vizsgálni. Azaz C1:C9 végig zöld lenne.

Vagyis a dollár jellel lefixáltuk az 1. sort.

Ha az A elé került volna dollár jel, akkor az az én példámat nem befolyásolta volna.

Viszont ha C1:D9 tartományt szerettem volna színezni az A oszlop értékeinek megfelelően, akkor kellett volna az "A" elé is dollár jel.

 

Másrészt, ha C1:D9 tartományt szerettem volna színezni a C oszlopot az A szerint, a D oszlopot pedig a B szerint, akkor nem kell elé dollár jel.

Előzmény: Garashan (38429)
Garashan Creative Commons License 2025.02.23 0 0 38429

Szia!

Gondolom csak elírás volt a részedről, az új sor kódja a 10-es.


Hogy a kérdező is értse, hogy miről beszélünk mindkét változatot megcsináltam neki.

A1 cellában van a szétszedendő szöveg

C1-ben az alt+enteres keresés, míg D1-ben a karakter(10)-es. Alatta pedig a használt képletek. Úgy ahogy a szerkesztő lécben is látszódnak. Azaz C2-ben van egy új sor.

 

Illetve vizualizáltam az automatikus formázás lépéseit is a kérdezőnek.

Előzmény: Fferenc50 (38428)
Fferenc50 Creative Commons License 2025.02.23 0 0 38428

Szia!

1. A képletet próbáld meg így írni: =bal(A1, Szöveg.keres(Karakter(160), A1)-1). Karakter(160) az Alt+Entert jelenti.

2. A feltételes formázást arra a cellára kell megadnod, amelyiknek változtatni szeretnéd a színezését. A formázás alapja viszont az a cella lesz, amelyikben a legördülő lista van!

Ha az A1 cellát formáznád és a legördülő a D1-ben van:

Kijelölöd az A1 cellát, utána Kezdőlap - feltételes formázás - új szabály - a formázandó cellák kijelölése képlettel

Tehát a feltételes formázás képletébe a legördülő cella címe legyen: pl. =$D$1=Igaz() zöld kitöltés. OK

Ezután - még mindig ki van jelölva az A1 cella,  ismét új szabály  =$D$1=Hamis() piros kitöltés OK

Azaz az A1 cellára két szabály van érvényben.

A szabályok szerkesztésében megnézheted, melyik szabály melyik tartományra vonatkozik.

Üdv.

Előzmény: Takeoff. (38426)
Garashan Creative Commons License 2025.02.23 0 0 38427

Az idézőjelek közé kell egy alt+enter és csak az. Késő délután beülök majd a gép elé, ha addig nem oldódna meg, akkor megírom részletesebben is.

Előzmény: Takeoff. (38426)
Takeoff. Creative Commons License 2025.02.23 0 0 38426

Köszönöm, biztosan működnek, de én teljesen amatőr vagyok ezért bvbalami nem sikerül. :(

A képletedet gondolom egybe kell írni:  =bal(A1, Szöveg.keres("", A1)-1) itt a két idézőjel között akár van akár nincs egy szünet (de gondolom nem az az ALT+ENTER) akkor is hibát jelez kijelölve már az első A1-t. 

 

A szinezésnél az IGEN működik, csak nekem megjelenik a cellában az IGAZ felirat is, ami nem jó, mert az a cél, hohyha a NEM jelenik meg, akkor azért legyen pirossal szinezve a cella, hogy oda írjon be a kitöltő egy magyarázatot, hogy miért lett NEM a válasza. Azt nem értem, ha megcsinálom az IGEN-re, ugyanabban a cellában hogyan lehet megcsinálni a NEM-re is? 

Előzmény: Garashan (38424)
Garashan Creative Commons License 2025.02.23 0 0 38425

u.i.: remélem nem írtam el semmit, mert nem gépről írtam, hogy teszteljem is közben.

 

Az előző témához, pedig köszönjük a kedves szavakat. Utólag nem bánom, hogy a vissza pert kiírtam szóval is, mert csak most vettem észre, hogy a fórum motor kitörölte az összeset a hozzászólásomból... Olyan ritkán kell leírni, hogy el is felejtettem már, hogy azok törlődnek.

Előzmény: Garashan (38424)
Garashan Creative Commons License 2025.02.23 0 0 38424

Ha képlettel akarod átmásolni, akkor arra van egyszerű megoldás:

Legyen az A1-ben a másolandó cella, akkor a függvény a következő:

=bal(A1, Szöveg.keres("

", A1)-1)

 

Nem elírás tényleg ALT+enter karakterre keresünk rá. A "-1" pedig azért kell, hogy az új sor karaktert ne másolja át az új cellába.

 

igen/nem alapján színezés másik cellában: a feltételes formázás lesz a barátod. Azon belül is a képlettel megadott változat. Először is jelöld ki azokat a cellákat, amiket színezni akarsz.

A függvényhez írd be, hogy '=A1="igen" ' A formázásnál pedig állítsd be a neked megfelelő formázást. Majd ugyan ezt csináld meg a "nem"-es változatra is.

Nem emlékszem, hogy melyik verziója az excelnek, de valamelyik a leokézés után átírta a függvényt új automatikus formázás létrehozásánál. De ha szerkeszted és újra beírod, akkor már jó lesz. Nyilván az A1 cellában feltételeztem az igen/nem szavakat.

Előzmény: Takeoff. (38423)
Takeoff. Creative Commons License 2025.02.23 0 0 38423

Sziasztok!

 

Két dologban szeretnék segítséget kérni:

 

Ha a cellában ALT+ENTER sortörés van, akkor hogyan tudom csak az első sort átmásolni egy másik cellába?

 

Ha egy cellánál választható legördülő lista van (pl. IGEN, NEM), hogyan tudom egy másik cella kitöltési színét megváltoztatni IGEN-nél Zöldre, NEM-nél Pirosra?

 

Előre is köszönöm. 

Andyyy42 Creative Commons License 2025.02.22 0 1 38422

kipróbáltam és hiba nélkül lefutott
Szóval nem tudom Garashan kódjával miért nem ment az előbb

valamit nyilván én toltam el

 

 

AMÚGY!
Mindkettőtöknek köszönöm ismételten.

Nagyon nagy tudással rendelkeztek

+ segítően álltok mindenkihez

 

Ez a kettő egyben baromi ritka!

 

Nagyon hálás vagyok ( és szerintem a többiek nevében is szólhatok) az önzetlen és azonnali segítségért, amit itt ti ketten adtok (+ a többiek is, de ti ketten ahogyan követem egy ideje, viszitek a prímet)

 

Szóval nagy Respect!  

Előzmény: Fferenc50 (38421)
Fferenc50 Creative Commons License 2025.02.22 0 1 38421

Szia!
Akkor mégsem megfelelően adtad meg az elérési utat.

A vizsgálathoz első lépés Excel beállításokban letiltod a makrókat.

Ezután megnyitod a fájlod.

If ThisWorkbook.Path <> "C:UsershalasDesktoptemp" Then
MsgBox "Hiba a fájlban, a fájl bezáródik!"
Application.DisplayAlerts = False
ActiveWorkbook.Close SaveChanges:=False
End If

részt így módosítod:

If ThisWorkbook.Path <> "C:UsershalasDesktoptemp" Then
MsgBox ThisWorkbook.Path & vblf & "C:UsershalasDesktoptemp"  ' ide a saját magad által használt elérési utat írd be.
'Application.DisplayAlerts = False
"ActiveWorkbook.Close SaveChanges:=False

Stop
End If

Ezután engedélyezed a makrók futtatását. Mented a fájlt. Lefuttatod az ellenorzes makrót.

Így látnif fogod, helyesen írtad-e be a feltételt. Ezt kijavítod a megfelelőre.

Ezután ismét lefuttatod.

Ha nem jelenik meg az üzenet, akkor jól csináltad.

Visszaírhatod az eredeti figyelmeztetést és kiveheted az aposztrofot a sorok elől ill. a Stop utasítást.

Mented. Kilépsz. 

Ismét elindítod. 

Üdv.

 

Előzmény: Andyyy42 (38420)
Andyyy42 Creative Commons License 2025.02.22 0 0 38420

Szia,

 

Köszi!
sajnos vmiért nem megy, állandóan bezáródik :-(
Pedig úgy adtam meg mindent, ahogyan mondtad
nincs visszaper az utolsó mappa után
elérési utat az információ - elérési út másolásából vettem

Előzmény: Garashan (38419)
Garashan Creative Commons License 2025.02.22 0 0 38419

A ThisWorkbook-ba írd bele ezt

 

Private Sub Workbook_Open()
ThisWorkbook.ellenorzes
End Sub

Sub ellenorzes()
If ThisWorkbook.Path <> "C:UsershalasDesktoptemp" Then
MsgBox "Hiba a fájlban, a fájl bezáródik!"
Application.DisplayAlerts = False
ActiveWorkbook.Close SaveChanges:=False
End If
End Sub

 

Nyilván a C:... részt cseréld ki a te elérési útvonaladra. az utolsó mappa után ne tegyél vissza pert, ahogy látod a mintámban.

Ha elírod és úgy mented el, akkor csak a makrók letiltása után fogod tudni ismét megnyitni.

 

Ha biztosra akarsz menni, akkor az összes worksheet fülre is illeszd be ezt:

Private Sub Worksheet_Activate()

ThisWorkbook.ellenorzes

End Sub

 

Így elvileg nem csak megnyitáskor ellenőrzi az elérési utat, hanem ha aktiválod a munkalapokat is.

Előzmény: Andyyy42 (38418)
Andyyy42 Creative Commons License 2025.02.22 0 0 38418

Szia,

 

vannak benne makrók, szóval rendben lenne.
Csak nem tudom megcsinálni :( :-)

Előzmény: Garashan (38414)
Andyyy42 Creative Commons License 2025.02.22 0 0 38417

Szia,

 

hát ezt sehogy nem tudom összehozni... :-(
Nem tudnál kérlek egy minta VBA kódot leírni, ami alapján meg tudom csinálni?

 

Köszönettel,
András

Előzmény: Fferenc50 (38413)
Garashan Creative Commons License 2025.02.18 0 0 38416

Igazad van valószínűleg. Szerintem is létezik hozzá kész program. Csak sok volt még az első hozzászólásomkor a nyitott pont is. Pl. az áruház nyitva tartása nem befolyásol semmit sem, ha előtte és utána is bent kell lennie a dolgozóknak, mivel számukra az pont ugyan úgy a munkaidejük része, csak éppen az nem derült ki, hogy előtte 1 órával kell-e érkezniük vagy éppen mennyivel.

Másrészt, ha az ember beosztás készítő programra adja a fejét, akkor utána kell olvasnia az aktuális jogszabályoknak, hogy ne legyen benne semmilyen törvénybe ütköző. Bár én azt vallom, hogy az átlag munkavállalónak amúgy is tudnia kellene a jogait és a kötelezettségeit is. Nagy részükkel én is tisztában vagyok, de amióta egyszemélyes EV-ként tevékenykedek azóta nem frissítem a tudásomat. Előtte volt olyan munkahelyem, ahol dolgoztam munkaügyisként is (ami kimerült munkaszerződés írásában és EFO-ban többnyire).

 

Tegnap éjjel elkezdtem "kézzel" csinálni beosztásokat. Hogy mégis hogyan jönne ki a matek. Olyan 6-8 ember kellene hozzá, de mivel sok a nyitott kérdés, így nagyobb energiát nem öltem bele.

Előzmény: pimre (38415)
pimre Creative Commons License 2025.02.18 0 0 38415

Bocs, de ha jól értelmezem, a kérdező nem azért az Excel fórumba jött, hogy megismerje a munkaügyi kérdések problémáit (Legalábbis az első 7 pont alapján ez a gyanúm, bár a 7. pont utáni sort olvasva ebben elbizonytalanodtam).

 

Szóval inkább azt sejtem, hogy egy Excel makrót szeretne, ami megoldja ezeket. Viszont munkaügyi szoftver kérdésében laikusként az a sejtésem, hogy erre léteznek kész programok a piacon, és most a semmiből írni erre programot, meglehetősen nehezen lenne megoldható. Én biztos nem mernék belevágni.

Előzmény: Garashan (38411)
Garashan Creative Commons License 2025.02.18 0 0 38414

Igen, ez járható út lehet. De megkerülhető, ha letiltásra kerülnek a makrók.

Persze, ha a makrók aktívan kellenek a dokumentum használatához, akkor nem tilthatóak le. Viszont, ha nem, akkor minden további nélkül letilthatóak és utána megnyitható a dokumentum az áthelyezés ellenőrzése nélkül.

Előzmény: Andyyy42 (38412)
Fferenc50 Creative Commons License 2025.02.18 0 0 38413

Szia!

Eltárolod az elérési utat pl. a VBA makróban egy szöveg állandóban.

A Workbooks_Open eseménykezelőben megnyitáskor összehasonlítod a Workbook.Fullname tulajdonságot az eltárolt értékkel.

Ha nem egyezik, akkor üzenet és bezárás.

Üdv.

Előzmény: Andyyy42 (38412)
Andyyy42 Creative Commons License 2025.02.18 0 0 38412

Sziasztok,

 

abban tudnátok segíteni, hogy az excel file csak akkor legyen megnyitható, ha nem helyezték át?

Szóval ahová le van mentve, csak onnan.
Ha áthelyezik, akkor hibára fusson és ne nyíljon meg.

 

Az elérési út beállítására gondolok, hogy azt csekkolja vba-ban, vagy valahogy gondolom így kellene, de nem igazán tudom, hogyan...
Vagy ha más módszer?

 

Köszi

Garashan Creative Commons License 2025.02.17 0 0 38411

OFF:

Igen, én is így tudtam és a HR is elfogadta, amikor mondtam nekik, hogy a 6 órás műszakban nem szeretnék kivenni munkaközi szünetet, csak azért, hogy üldögéljek az öltözőben a kijelentkezésig még 20 percet.

Másik munkahelyemen pedig a munkaidő részét képezte. Azaz 8-tól 16-ig voltunk bent és 8 órát számoltak el ledolgozott időnek. (Papíron mondjuk 16:30-ig voltunk bent, nem is értem, hogy miért úgy írtuk a munkaszerződéseket...) Ott így mi sem éltünk vissza a helyzettel és akkor mentünk el kajálni, amikor úgymond nem volt sürgős dolog és ha kellett, akkor megszakítottuk az ebédet. Kicsi cég volt, összesen 3-an voltunk alkalmazottak és kialakult az a szokás, hogy reggelente munkaidő előtt együtt reggeliztünk és együtt is ebédeltünk. Addig úgymond megállt a munka. Nagyker volt a cég, így ha éppen nem esett be személyes vásárló vagy nem csörgött a telefon, akkor két feladat között meg tudtunk állni kajálni.

Előzmény: hellsing (38409)
hellsing Creative Commons License 2025.02.17 0 1 38410

Bocs, látom, hogy te is ismerted a szabályt :) Végig kellett volna olvasnom :o)

Előzmény: hellsing (38409)
hellsing Creative Commons License 2025.02.17 0 0 38409

OFF:

 

3: munkaidő-közi szünetet csak akkor kell tartani, ha több mint 6 órás a műszak. Legjobb tudásom szerint hat órásnál mondhatod a szünetre, hogy no, thanx.

 

:ON

Előzmény: Garashan (38408)
Garashan Creative Commons License 2025.02.17 0 0 38408

Reagálva a pontjaidra:

  1. Azt határozd meg, hogy egyszerre hány főnek kell bent tartózkodnia, akár sávosan is. Mert ennyi erővel mehetne reggel 2 ember, majd néhány óra múlva további 2 és le is van tudva a teljes nyitva tartás és a 4 fő.
  2. OK
  3. OK (Bár a franc se akar, csak azért +1 órát a munkahelyén dekkolni, mert annyi az ebéd szünet. Én biztosan kiharcolnám, hogy vigyék le a törvényi minimumra (20 percre). Egyszer dolgoztam egy helyen 6 órás műszakban, reggel 5:30-ra jártam. A HR mondta, hogy akkor 6 óra + 20 perc a bent töltendő idő. Én meg mondtam, hogy a 6 óra felett kötelező kiadni a munkaközi szünetet, így én azzal nem kívánok élni. Utána néztek a törvénynek, elfogadták, így otthon tudtam ebédelni)
  4. Akkor határozd meg, hogy a dolgozó mennyivel menjen be hamarabb, mint a nyitva tartás és mennyivel maradjon tovább. Mivel az a rendes munkaidő része a számára.
  5. Heti 2 pihenőnap kötelező, maximum 6 egymást követő nap után kötelező 1 nap pihenőidő.
  6. Ezzel nehéz előre kalkulálni (értem mire gondolsz, de ha heti 40 órában foglalkoztatsz embereket, akkor ha napi 5-öt osztasz be, akkor jön ki a -20%-al a napi 4 ember. Nyilván lesz olyan, amikor 5 lesz bent egyszerre és olyan is, amikor csak 4.)
  7. OK (törvényileg havi 1 vasárnap kötelező)
Előzmény: vutek (38407)
vutek Creative Commons License 2025.02.17 0 0 38407

Üdv

 

 

Tudnátok eben segíteni,  csinálnom kell egy munkaerő  tervezésimodeltt exelben  a következő paraméterekkel. 

 

1. Legalább 4 fő szükséges egy nap.

2. Az áruház nyitvatartási ideje 10:00-20:00-ig.

3. 8+1 órás műszakokban dolgoznak a kollégák, amiből 1 óra szünet, az nem számít munkaidőnek.

4. Reggelente számolj előkészületi idővel, zárásnál pedig rendrakási idővel.

5. A pihenőnapokra figyelj, vedd figyelembe, hogy hétvégén is dolgoznak a kollégák.

6. Számolj távolléti aránnyal is (minden kollégának a szerződött munkaórájának átlagosan a 20%-a szabadság és táppénz egy hónapban)

7. Szeretnénk, ha minden kollégának minden 2. hétvégéje szabad lenne!

Lehetőség szerint tegyél javaslatot, hogy hány teljes munkaidős és hány részmunkaidős kolléga a legoptimálisabb az osztály működéséhez!

 

 

 

 

Köszönöm ha tud valaki segíteni. 

 

 

 

 

Andyyy42 Creative Commons License 2025.02.16 0 0 38406

Köszönöm! 

Előzmény: Fferenc50 (38397)
Fferenc50 Creative Commons License 2025.02.12 0 0 38405

Szia!

Az Excel korábbi változataiban ezeket tömbképletként kellett bevinni (Ctrl + Shift + Enter). Az új verziókban így az O365-ben is már saját maga felismeri, hogy tömbképletként kell megoldani, nem kell a külön billentyűkombó.

Üdv.

Előzmény: RJancsi (38404)
RJancsi Creative Commons License 2025.02.12 0 1 38404

Már csak az volt a bajom, hogy ha beírtam a példaképletet, #ÉRTÉK! hibaüzenetet kaptam. Aztán rájöttem, hogy a magyar excel más elválasztó karaktereket használ mint az angol (tizedes pont helyett vesszőt, elválasztó vessző helyett pontos vesszőt stb.). Nagy sokára találtam egy példa táblázatot, ahol kiderült, hogy a hatványok együtthatóit (a kapcsos zárójelben levő számokat) a magyarban hanyatt törtvonallal "" (alt-Q) kell beírni. És szuper jól működik a függvény, nem kell tömb képletet használni, ha simán egy cellába beírja az ember a lin.ill függvényt és a képletben megadja hányadfokú trendvonalra kíváncsi, az együtthatókat automatikusan egymás melletti cellákba írja. 

 

 

 

Előzmény: Fferenc50 (38403)
Fferenc50 Creative Commons License 2025.02.12 0 0 38403

Szia!

Ez szerintem szuper. Még nem találkoztam korábban a LIN.ILL függvénnyel, most ránéztem a helpre. Ott is van róla szó a legvégén, de ez a magyarázat kifejezetten tetszik. Dícsérjük meg a MS-t, ritkán adódik rá lehetőség. Ez sokkal egyszerűbb, mint makrókkal operálni.

Üdv.

Előzmény: RJancsi (38402)
RJancsi Creative Commons License 2025.02.12 0 0 38402

Köszi, kipróbálom! Időközben írtam a Microsoft supportnak is, és csodák csodája 24 órán belül válaszoltak. Még nem próbáltam ki, de valami olyat írtak, hogy a lin.ill függvény csak nevében lináris (elsőfokú), valójában tetszőleges fokszámra paraméterezhető. Ez elég elegéns megoldás lenne. Részlet a levelükből:

 

1. Készítse elő az adatokat:

Tegyük fel, hogy az "x" értékek az "A" oszlopban, az "y" értékek a "B oszlopban" vannak, és az adatok a 2. sortól a 100. sorig terjednek (pl. "A2:A100" és "B2:B100").

 

2. Számítsa ki az állandókat a LIN.ILL függvénnyel:

Válasszon ki egy üres területet (pl. "D1:G1"), és írja be a következő képletet:

 

=LIN.ILL(B2:B100;A2:A100^{1;2;3};IGAZ;IGAZ)

 

Itt az 'A2:A100^{1,2,3}' azt jelenti, hogy illeszkedjen egy köbös polinomhoz ( 'y = c1 + c2x + c3x² + c4x³'). - Nyomja meg a 'Ctrl + Shift + Enter' billentyűkombinációt a tömbképlet megadásához. Az Excel egy tömböt ad vissza, amely a "c1, c2, c3, c4" állandókat tartalmazza.

 

3. Dinamikus állandók használata képletekben:

Feltételezve, hogy a "LIN.ill" által visszaadott állandók a "D1:G1" tartományban vannak tárolva, ezeket az állandókat más cellákban is használhatja. Például az "x=2" előrejelzett értékének kiszámításához:

 

= $D$1 + $E$1*2 + $F$1*2^2 + $G$1*2^3

 

Ily módon az adatok frissítésekor a "LIN.ILL" automatikusan újraszámítja az állandókat, és frissíti a képleteket.

Előzmény: Fferenc50 (38401)
Fferenc50 Creative Commons License 2025.02.11 0 0 38401

Bocs, a nagy igyekezetben lemaradt a makró:

Sub TrendlineEquation()
Dim objTrendline As Trendline
Dim strEquation As String
With ActiveSheet.ChartObjects(1).Chart
Set objTrendline = .SeriesCollection(1).Trendlines(1)
With objTrendline
.DisplayRSquared = False
.DisplayEquation = True
strEquation = .DataLabel.Text
Range("A5") = strEquation
End With
End With
End Sub

 

Üdv.

 

Előzmény: Fferenc50 (38400)
Fferenc50 Creative Commons License 2025.02.11 0 0 38400

Szia!

Ezt az oldalt találtam:

How to Use VBA to Access the Equation of a Trend Line on Microsoft Excel

Ez a makró az A5 cellába írja a trend egyenletet (a cellát tudod változtatni természetesen), ami szöveg formátumban tartalmazza az egyenletet.

Ebből szöveg darabolással ki tudod hámozni a számodra megfelelő megoldást, ha nem menne, légy szíves írj ide egy valós egyenlet szöveget, mert polinom függő a szétdarabolás.

Arra is lehet makrót írni és akkor egy futással lehet az egyenletnek megfelelő együtthatókat megadni.

A munkafüzetet természetesen makróbarátként kell menteni.

Üdv. 

Előzmény: RJancsi (38399)
RJancsi Creative Commons License 2025.02.11 0 0 38399

Lehet, hogy rosszul kérdeztem (vagy a válaszodat értem félre). Nem azt szeretném, hogy egy meglévő trendvonalat kibővítsek az adathalmazt megelőzően vagy utána. A problémám az, hogy az adathalmazomban mérési eredmények (az X tengelyen ultrahang sebesség, az Y tengelyen a hozzá tartozó szilárdság) van. Idővel ezek a mérési eredmények egy adott értéktartományon belül "sűrűsödnek", az x értékek egy tartományon belül változnak, tehát a táblázatban nincsenek érték szerint sorbarendezve, lehetnek ismétlődések is. Ahogy egyre több pontpár kerül a táblázatba a trendvonal (ami harmadfokú polinom) ezzel együtt változik.

Azt szeretném, ha egy szerkezetnél csak ultrahang sebességet mérek, a legutóbbi (aktuális) trendvonal függvényével tudjak szilárdságot becsülni. Ha újabb UH sebesség/szilárdság pontpárral bővül a táblázat (és ezzel módosul a trendvonal) a korábbinál pontosabb becslést lehetne kapni. 

Előzmény: Fferenc50 (38398)
Fferenc50 Creative Commons License 2025.02.10 0 0 38398

Szia!

Sajnos nem látom, hogy közvetlenül lehetne paramétert kiolvasni a trend egyenlethez. Viszont a Trendline objektumhoz van Backward2 és Forward2 tulajdonság, amivel léptetni tudod a trendet az általad meghatározott egységgel.

Trendline.Backward2 property (Excel) | Microsoft Learn

Üdv.

Előzmény: RJancsi (38396)
Fferenc50 Creative Commons License 2025.02.10 0 0 38397

Szia!

Az Environ("COMPUTERNAME") megadja az adott gép nevét. Ezt azonban csak a fájl megnyitása közben (a makró futtatásakor) tudod lekérdezni és összehasonlítani az általad engedélyezettel. 

Célszerűen a Workbook_Open eseménykezelőben lenne értelme elhelyezni. A fájlt rejtett ablakban nyitod meg és ha nem jogosult gépről nyitják meg, akkor üzenettel bezárod, ha pedig jogosult, akkor láthatóvá teszed az ablakot.

A jogosult gépek nevét persze tárolni kell valahol egy munkalapon vagy "fixen" beírni a makróba vagy egy külső fájlba, amit jogosultság ellenőrzésnél megnyitsz.

Üdv.

Előzmény: Andyyy42 (38395)
RJancsi Creative Commons License 2025.02.09 0 0 38396

Sziasztok!

Az a kérdésem, hogyan/honnét lehet a trendvonal paramétereit kiolvasni? Ha van egy táblázatom, az abból készített grafikonhoz tudok olyan trendvonalat rendelni ami viszonylag jól illeszkedik. A trendvonal egyenletét is meg tudom jeleníteni amivel szeretnék számítást végezni (egy "x" változóhoz a trendvonal egyenletével kiszámolni "y"-t). Jelenleg csak úgy tudom megoldani, ha kézzel beírom a trendvonal egyenletét egy függvénybe. Ez egészen addig jó, amíg az adatokat tartalmazó táblázatban nem történik változás pl. új adatsor kerül bele. Ilyenkor a trendvonal változhat, de a kézzel bepötyögött képlet nyilván nem. Tudtok rá valami megoldást? Általános esetben kérdezem, ismerem a trend függvényt de az csak a lineáris regresszióhoz jó, általános (többfokú polinom) trendvonalhoz nem. 

Andyyy42 Creative Commons License 2025.02.09 0 0 38395

Sziasztok,

 

Azt meg tudtam csinálni, hogy ne engedje az excel bezárás előtt menteni a változtatásokat ás ne is lehessen lementeni "mentés másként"-el.

Így csináltam:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

ThisWorkbook.Saved = True

If SaveAsUI.Saved = True Then

Cancel = True

MsgBox ("Nem lehet másként menteni")

ElseIf ThisWorkbook.Saved = True Then

a = InputBox("Jelszó:", "Tudnod kell a jelszót, h engedje a mentést")

If a = "123" Then

MsgBox ("Mentve")

Else

Cancel = True

MsgBox ("Nem lehet menteni")

End If

End If

End Sub

 

Ezzel egyidejűleg, azt hogyan oldom meg, hogy csak én és mondjuk a megadott felhasználók tudják megnyitni?
Environ-ra gondolok, hogy gépneveket adok meg, akiknek így adok jogosultságot a megnyitásra.
Fontos, h gépnév legyen, ne felhasználó név.

 

Ezt még, hogyan és hová teszem hozzá?

 

 

Illetve még annyi, hogy gépneven azt a vezérlőpulton belül kikeresve - "teljes eszköznév" mellett szereplő nevet értjük, vagy az excelnek van egy "belső" gépneve, amit saját magának használ?

 

Köszönettel, 

András

Ketele69 Creative Commons License 2025.02.06 0 0 38394

Szia!

Most tudtam csak este megnézni.

Működik, tökéletes!!!

Nagyon köszönöm!

Üdv,

Előzmény: Fferenc50 (38393)
Fferenc50 Creative Commons License 2025.02.05 0 0 38393

Szia!

Megnézhetnéd az alábbi képletet:

A beviteli munkalapon az A oszlopban vannak a partnerek, B oszlopban a hozzájuk tartozó kiadások, a másik munkalap neve Munka2 és az A1:B200 tartományban vannak a partnerek és a keretek, akkor a képlet a 2. sor első üres cellájába:

= SZUMHATÖBB($B$2:$B100;$A$2:$A100;$A2)-FKERES($A2;Munka2!$A$2:$B$200;2;0)

A képlet lefelé hüzható.

Ha táblázattá alakítod az adatbeviteli részt, akkor a függvény minden új sornál automatikusan megjelenik. (Ehhez a beállítások - speciális - adattartomány végén a formázás és képletek folytatása.

Üdv. 

Előzmény: Ketele69 (38392)
Ketele69 Creative Commons License 2025.02.05 0 0 38392

Kedves Fórumtársak!
Az alábbiakban kérnék tanácsot.

 

Az egyik munkalapon van egy tábla, melyben a partnerek és kifizetési adataik kerülnek folyamatosan rögzítésre.
A másik munkalapon van a partnerlista és az adott partnerhez tartozó keretösszeg.

A cél az lenne, hogy a kifizetési adatok rögzítésekor azonnal lehessen látni, ha az adott partner kerete elfogyott.

Ezt most úgy oldottam meg, hogy készítettem egy a partnereket csoportosító és a kifizetési adataikat összegző kimutatást, melyet minden egyes tétel rögzítése után frissítek.

1.Az első kérdésem, van erre valamilyen függvényes megoldás? (Groupby függvényt nem találtam.)
2. Ha nincs, akkor automatizálható a frissítés, úgy makróval, hogy ha az A2:A1000 tartomány nem üres celláinak száma változik fusson le a "kimutatás frissítése" (Alt+F5) parancs? (A kimutatás ua. oldalon van, ahol a tételek rögzítése történik.)

 

Köszönöm,

pimre Creative Commons License 2025.01.29 0 0 38391

Igen, ezt a lehetőséget nem vettem észre. Ezért pótlólag a végére beszúrtam, hogy ha L6>X6, akkor a 8. hét legyen a találat.

=HAELSŐIGAZ(P6>L6;0;SZUM(P6:Q6)>L6;1;SZUM(P6:R6)>L6;2;SZUM(P6:S6)>L6;3;SZUM(P6:T6)>L6;4;SZUM(P6:U6)>L6;5;SZUM(P6:V6)>L6;6;SZUM(P6:W6)>L6;7;L6>X6;8)

Előzmény: Fferenc50 (38390)
Fferenc50 Creative Commons License 2025.01.29 0 0 38390

Szia!

Logikus amit írsz és ez nyilván a sima HA egymásba ágyazásra is igaz. Viszont próbáld ki lsz. hogy az utolsó értéknél is nagyobbat írsz az L6 cellába. Ekkor hibaüzenet lesz a HAELSŐIGAZ eredménye. Ezért van az első felételnél  a ">6" nálam.

Üdv. 

Ps. Örültem, hogy az általam mutatott verziót kitaláltam. :))

Előzmény: pimre (38389)
pimre Creative Commons License 2025.01.29 0 0 38389

Érdekes ez a HAELSŐIGAZ függvény. Kicsit próbálgattam a sajám mintaadataimmal, hogy nem lehet-e leegyszerűsíteni a VAGY(B2=A2;SZUM(B2:C2)>A2...stb. formula helyett VAGY(SZUM(B2:C2)>=A2 alkalmazásával. Aztán egyszer csak meglepetés ért. A függvény az egyenlőségjel nélkül is megtalálta a helyes eredményt. Azt állítottam be, hogy a kumulált érték az 5. hétnél pontosan legyen egyenlő az L6 értékével. Ezt írtam be:  =HAELSŐIGAZ(P6>L6;0;SZUM(P6:Q6)>L6;1;SZUM(P6:R6)>L6;2;SZUM(P6:S6)>L6;3;SZUM(P6:T6)>L6;4;SZUM(P6:U6)>L6;5;SZUM(P6:V6)>L6;6;SZUM(P6:W6)>L6;7), mire kiadta az 5. hetet.

Az eredmény persze logikus, hiszen a 6. hét az első, ami nagyobb, mint az L6 értéke, így az 5. hét a jó eredmény, akár kisebb, akár egyenlő L6 értékével.

 

Íme a kép:

 

Előzmény: Fferenc50 (38386)
bé.laci Creative Commons License 2025.01.29 0 0 38388
Előzmény: Fferenc50 (38386)
bé.laci Creative Commons License 2025.01.29 0 0 38387

Csináltam egy új munkalapot a kumulatív vevői igényeknek (mert végülis ez egyönmagában is hasznos infó), és azon a lapon már probléma nélkül működik a dolog:)

 

Előzmény: pimre (38385)
Fferenc50 Creative Commons License 2025.01.29 0 1 38386

Szia!

Nem feltétlenül kell hozzá segédsor, egymásba ágyazott ha függvényekkel is megoldható, ha rövidebb időszakra tekintesz előre. A példában 6 napra van a képlet összeállítva, ha ennél messzebb szeretnél látni, akkor folytatni kell a HA(VAGY képlettel a ">6" helyén és az utolsó napra kerül a hamis ágra ">x"

A B4 cella képlete:

=HA($B2>A2;0;HA(VAGY(B2=A2;SZUM(B2:C2)>A2);1;HA(VAGY(SZUM(B2:C2)=A2;SZUM(B2:D2)>A2);2;HA(VAGY(SZUM(B2:D2)=A2;SZUM(B2:E2)>A2);3;HA(VAGY(SZUM(B2:E2)=A2;SZUM(B2:F2)>A2);4;HA(VAGY(SZUM(B2:F2)=A2;SZUM(B2:G2)>A2);5;HA(VAGY(SZUM(B2:G2)=A2;SZUM(B2:H2)>A2);6;">6"))))))) & " napra elég"

Ha 2019-esnél frissebb verziód van, akkor létezik a HAELSŐIGAZ függvény, amellyel a képlet így néz ki (M2 cella) :

=HAELSŐIGAZ(SZUM(B2:H2)=A2;">6";$B2>A2;0;VAGY(B2=A2;SZUM(B2:C2)>A2);1;VAGY(SZUM(B2:C2)=A2;SZUM(B2:D2)>A2);2;VAGY(SZUM(B2:D2)=A2;SZUM(B2:E2)>A2);3;VAGY(SZUM(B2:E2)=A2;SZUM(B2:F2)>A2);4;VAGY(SZUM(B2:F2)=A2;SZUM(B2:G2)>A2);5;VAGY(SZUM(B2:G2)=A2;SZUM(B2:H2)>A2);6)&" napra elég"

Ebben a képletben elsőként kell beírni azt az összegképletet, amely a még látni kívánt időszakon túl mutat és a végén folytatni a VAGY képletekkel.

Remélem, sikerül adaptálnod.

Üdv.

 

 

 

Előzmény: bé.laci (38384)
pimre Creative Commons License 2025.01.28 0 1 38385

"Ha jól értem egy kumulatív vevői igény segédsort készítesz." Pontosan. És ahogy írtam, bármelyik sorba kumulálhatod az igényeket. És akkor a P7:W7 helyett a megfelelő sor számát írod. 

Ha végképp nincs a közelben üres sor, akkor írhatod a nullát akár az Akár AA oszlopba, a kumulált adatokat meg az AB-től, és akkor a képletben a P7:W7 helyett AB7:AO7, illetve amelyik oszlopig tartanak az adataid. 

Előzmény: bé.laci (38384)
bé.laci Creative Commons License 2025.01.28 0 0 38384

Ha jól értem egy kumulatív vevői igény segédsort készítesz.

 

Nem tudom ez nekem miért nem jutott eszembe :S

Előzmény: pimre (38382)
bé.laci Creative Commons License 2025.01.28 0 0 38383

Köszönöm! Sajnos nálam a hatodik sortól lefelé sok cikk készletadata szerepel, de elemzem emit írtál mennyire tudnám átalakítani.:)

Előzmény: pimre (38382)
pimre Creative Commons License 2025.01.25 0 1 38382

Meg lehet oldani képlettel, de kell egy kis ügyeskedés. 

 

1. a 7. sorban (ha üres, egyébként lehet a 8., 9., stb.) az O oszlopba írj nullát, majd a P oszlopba az =O7+P6 képletet, majd ezt töltsd ki jobbra végig.

2. Az M6 oszlopba írd be a következő képletet: =HOL.VAN(L6;P7:W7;IGAZ) Az általam hasraütéssel beírt mintában ez a 6. hét.

 

Nálam így néz ki:

 

 

 

Előzmény: bé.laci (38381)
bé.laci Creative Commons License 2025.01.24 0 0 38381

Sziasztok!

 

A segítségeteket szeretném kérni.

 

Egy olyan problémám van, hogy L6 cellában van egy készletadatom.

 

P6 cellától kezdve jobbra vannak heti vevői igények.

 

A kérdésem, hogy milyen képletet írjak M6 cellába, ha azt akarom megszámolni a készletem hány hét alatt fogy el/hány hét vevői igényt fedez.

 

Ezt meg lehet képlettel, makró nélkül oldani?

 

Előre is köszönöm a segítséget!

Fferenc50 Creative Commons License 2025.01.21 0 0 38380

Szia!
A kérdező 2000-es Excelében levő KEREK függvény pedig magasabb verziókban már nem létezik, pedig az a magyar szabályok szerint kerekített... Az "új" Kerekítés függvény erre sajnos nem alkalmas.

Üdv.

Előzmény: m54-b (38376)
Gyulus1954 Creative Commons License 2025.01.21 0 0 38379

Köszönöm mindenkinek a segítséget!

Úgy néz ki, így megoldódik.

=HA((MARADÉK(A1;5)=0);A1;KEREK(A1/10;0)*10)

Az "5Ft-ra" kerekítés (a szabályok szerint)

=KEREK(A1/5;0)*5

 

Előzmény: m54-b (38374)
Gyulus1954 Creative Commons License 2025.01.21 0 0 38378

Szia!

Köszönöm, ez jött ki.

Előzmény: Fferenc50 (38373)
Gyulus1954 Creative Commons License 2025.01.21 0 0 38377

Szia!

Ilyen MROUND nincs nekem. :(

Előzmény: Fferenc50 (38375)
m54-b Creative Commons License 2025.01.21 0 0 38376

Az van!

(Lehet, az eredeti kérdezőnek is az kell majd, mert 2000-es Officet emlegetett.)

Előzmény: Fferenc50 (38375)
Fferenc50 Creative Commons License 2025.01.20 0 0 38375

Szia!

Esetleg MROUND függvényt látsz-e a verzióban?

Mert nem minden függvényt magyarítottak akkoriban.

Üdv.

Előzmény: m54-b (38374)
m54-b Creative Commons License 2025.01.20 0 0 38374

A 2007-es Excel nekem ilyen

=HA((MARADÉK(B4;5)=0);B4;KEREKÍTÉS(B4/10;0)*10)

Előzmény: Fferenc50 (38373)
Fferenc50 Creative Commons License 2025.01.20 0 0 38373

Szia!

Nézd meg lsz. ezt:

=HA(MARADÉK(A1;5)=0;A1;TÖBBSZ.KEREKÍT(A1;10))

Üdv.

Előzmény: Gyulus1954 (38372)
Gyulus1954 Creative Commons License 2025.01.20 0 0 38372

Üdvözlet fórumtársak!
Nem bírok egy feladattal, és ehhez kérek segítséget.
A feladat: az A oszlopban lévő szám kerekítése, hogy az 5 alatt végződőt lefelé, az 5-re végződő marad 5-ön, az 5 felett végződőt felfelé.
A "B" oszlopban lévő függvény "=KEREK(A2/5;0)*5" a "C" oszlopban "=KEREK(A2/10;0)*10"
Létezik ilyen függvény, vagy trükk? A "C" oszlopban majdnem jó, de az 5-re végződőt is kerekíti.

Office2000
Köszönöm.

NeomatiK Creative Commons License 2025.01.07 0 0 38371

Bemásolom neked is :)

 

Sajnos még nem kerültem megint a táblázat elé. Ezért nem reagáltam az írásodra. Köszi, hogy foglalkoztál vele.

 

Hogy mire jutottam a megoldásaitokkal, majd jelenetkezem. Már átszerkesztettem akkor, ahogy írtam az OFSZET-tel. De ha ezek vaslamelyike élhetőbb, akkor variálok rajta.

Előzmény: pimre (38361)
NeomatiK Creative Commons License 2025.01.07 0 0 38370

Sajnos még nem kerültem megint a táblázat elé. Ezért nem reagáltam az írásodra. Köszi, hogy foglalkoztál vele.

Előzmény: Garashan (38359)
Gyuri2299 Creative Commons License 2025.01.06 0 1 38369

Nagyon szépen köszönöm, Garashannak is!

Előzmény: Fferenc50 (38368)
Fferenc50 Creative Commons License 2025.01.06 0 1 38368

Szia!

Jó szívvel ajánlom az Excel Súgó menüpontját. Minden függvényhez van elég jól érthető magyar nyelvű leírás.

A képletet tartalmazó cellára ráállsz, az Fx gombot megnyomod, a párbeszédablak alján ott a link a súgóhoz.

 

Üdv.

Előzmény: Gyuri2299 (38366)
Garashan Creative Commons License 2025.01.06 0 0 38367

Az FKERES a következő paraméterekkel rendelkezik:

1. mit keressen

2. a tartomány amiben keressen (ha több oszlopból áll, akkor az első oszlopban keres)

3. hanyadik oszlopban lévő értéket adja vissza, ha találat van az első oszlopban

4. IGAZ/HAMIS vagy 1/0: HAMIS vagy 0 érték esetén pontos értéket keres, míg IGAZ vagy 1 érték esetén közelítő értéket keres.

Azaz a te példádban: FKERES(C3;$L$2:$N$9;3;1)

1. C3 értéket keressük
2. L2:N9 tartartományban (a példában a húzhatóság miatt rögzítve van dollár jellel a tartományt meghatározó két cella)
3. a 3. oszlopban lévő adatot adja vissza
4. 1, azaz IGAZ érték, így közelítő értéket fog visszaadni

 

Ha nincsenek növekvő sorrendben az értékek, akkor rosszul fog működni a képlet. Illetve valójában az M oszlopra nincs is szükség. Illetve ha az általad megadott adatokat vesszük alapul és 0-nál kisebb számot keresnénk, akkor #HIÁNYZIK hibát adna a képlet. Mivel 0-tól indul a keresendő érték megadása.

Előzmény: Gyuri2299 (38366)
Gyuri2299 Creative Commons License 2025.01.06 0 0 38366

Szia! Tökéletes, nagyon szépen köszönöm! 
Csak egy apróság még, a 3;1 paraméter a végén, mi célt szolgál?

A többi részét értem. :D

Előzmény: Fferenc50 (38365)
Fferenc50 Creative Commons License 2025.01.06 0 0 38365

Szia!
Így akkor csak egyszerű FKERES, a negyedik paraméter 1 

A példádban D3 képlete:

=FKERES(C3;$L$2:$N$9;3;1)

Fontos, hogy a húzhatóság érdekében az L:N oszlop címe rögzítve ($) legyen.

Megjegyzés: Ebben az esetben az M oszlop nem szükséges, hiszen a határok az L oszlopban megfelelően meg vannak adva. Amire figyelni kell, hogy a határok növekvő sorrendben legyenek.

Üdv.

Előzmény: Gyuri2299 (38364)
Gyuri2299 Creative Commons License 2025.01.06 0 0 38364

Szia, bocsánat, most láttam csak, hogy nem csatolta a képet.

Most csatolom!

Előzmény: Fferenc50 (38363)
Fferenc50 Creative Commons License 2025.01.06 0 0 38363

Szia!

Sajnos nem egyértelmű a példád.

Ha 26000 a szám, akkor miért 24-24500 ill. 24500-25-höz tartozó értékeket adsz meg példának. Jó lenne egy nagyobb részét látni az L-M oszlopnak, a valódi formátumban (persze nem a tényleges számokkal). Milyen értékek vannak az L és milyen értékek az M oszlopban?

Egyébként valószínűleg egymásba ágyazott függvényeket kell használni majd. Pl. Fkeres függvénnyel megkeresni az első értéket, ezután INDEX függvénnyel meghatározni a keresési tartományt és utána ismét Fkeres függvénnyel a kívánt értéket. (Xkeres is működik hasonlóképp), de verzió függő, milyen függvényt lehet még használni, O365-ben pl. van SZŰRŐ függvény is.

Üdv.

Előzmény: Gyuri2299 (38362)
Gyuri2299 Creative Commons License 2025.01.06 0 0 38362

Sziasztok! 

Az lenne a kérdésem, hogy a következő feladathoz milyen függvényt kellene használni? Próbáltam sok mindent, de nem sikerült megoldást találnom.

Adott az L-M oszlop, mint két határérték / tartomány, adott egy szám, jelen esetben a 26000 és szeretném mellérendelni az N oszlopból azt, ami éppen igaz rá. Ha 24-24500akkor -2000, ha 24500-25 akkor -1000 stb.

Erre van esetleg valami megoldás?

 

Előre is köszönöm a segítséget!

pimre Creative Commons License 2025.01.04 0 1 38361

1. Tegyük fel, hogy az első sorban vannak a havi értékek az A oszloptól kezdve. A példámban a 2. sort meghagyom fejlécnek, pl.: 2001, 2002 2003 stb.

 

2. A 3. sor A oszlopába bemásolod a következő képletet:

 

=INDIREKT(CÍM(1;1+(OSZLOP()-1)*12-3+SOR();1;HAMIS);HAMIS) ' A megvastagított egyesről még beszélek

 

3. Ezután a 3. sor A oszlopától jobbra kitöltöd a a bemásolt függvényt addig, amíg vannak új éveid.

4. Végül a 3. sortól lefelé kitöltöd az így kapott oszlopokaz 1-12-ig.

 

És voilá megvan a teljes átrendezett lista.

 

Megjegyzés: Ha az első sor nem az A oszlopban kezdődik, akkor először a 2. pontban bemásolt képletben a vastagon szedett 1-est átírod arra a számra, ahányadik oszlopon kezdődnek a havi értékek.

 

ezután hajtod végre a 2.és 3. pontot.

 

Íme az eredmény képe (én csak 3 évi mintát csináltam:)

 

 

 

 

 

 

 

 

Előzmény: NeomatiK (38357)
Garashan Creative Commons License 2025.01.03 0 0 38360

 A13 cella képlete helyesen: =INDEX($10:$10;1;SOR()-12+(OSZLOP()-1)*12)

Előzmény: Garashan (38359)
Garashan Creative Commons License 2025.01.03 0 1 38359

Én másképpen futnék neki.

Szóval a 10. sorban vannak az adatok. Ha jól értelmeztem, akkor így követik egymást. Az 1/1 jelenti az első év januárját, 2/3 pedig a 2. év márciusát, stb...

 

A13 cella képlete: =INDEX($10:$10;1;SOR()-12+(OSZLOP()-1)*2)
Ezt a következő képen kell módosítani:

  • $10:$10: ide menjen az a sor, szigorúan $ jellel, ahol az adatok vannak
  • 1: mivel egy sorban helyezkednek el az adatok, így ide 1-es kerül
  • SOR()-12+(OSZLOP()-1)*12: mivel a 13. sorba van a képletem, így az aktuális sorból ki kell vonni 12-t, hogy megkapjuk a hónap sorszámát. Az oszlop-1 kifejezés pedig meghatározza az év eltolását. Azaz az egymás melletti oszlopok pontosan 12 hónappal lesznek eltolva. Nyilván, ha nem az A oszlopban kezded a kimutatást, akkor nem 1-et kell kivonni az oszlop sorszámából, hanem annyit amennyi az első oszlop sorszáma. Pl. ha az M oszlopban kezded a kimutatást, akkor 13-at kell kivonni.
Előzmény: NeomatiK (38357)
NeomatiK Creative Commons License 2025.01.03 0 0 38358

Találtam egy OFSZET függvényt. Ezzel elleszek szerintem.

Előzmény: NeomatiK (38357)
NeomatiK Creative Commons License 2025.01.03 0 0 38357

Sziasztok!

 

Egy sorban vannak egymást követően számok. Egy adott évhez tartozó havi értékekkel. Tehát 12 szám van (január - decemberi érték). Aztán tőle jobbra a következő cellában a következő év 1. havi, majd 2. havi értékei stb.

 

101 / 102 / 103 / 104 / ....... 111 / 112 / 201 / 202 / ..... 212 / 301 / 302 / ....

 

Ugyanezen munkalapon szeretném valami függvénnyel rendezni, hogy egymás alatt legyenenk az adott év hónapjainak értékei, aztán a mellette oszlopban a következő év hónapjainka értékei.

 

101 / 201 / 301

102 / 202 / 302

103 / 203 / 303

.

.

.

112 / 212 / 312

 

 

Jelenleg nem találtam rá függyvényt, Excel 2007-es.

Ha a oszloponként egy cellába bele kell nyúlni, az nem baj. De jelenleg egyesével mozgatom a függvény "négyzetét", hogy így nézzen ki a függvény:

 

 

=AA10     =AM10     =AY10

=AB10     =AN10     =AZ10

=AC10     =AO10     =BA10

...            ...             ...

=AL10     =AX10     =BJ10

 

Tehát valami olyan függvény kéne, ami lépteti a meghivatkozandó cella azonosítóját. Nem találtam ilyet. Makrós megoldás nem lenne jó, mert nem akarom bonyolítani.

 

 

 

 

PitLer Creative Commons License 2025.01.02 0 0 38356

Nagyon köszönöm!
Már összevissza képleteztem mindent ész nélkül...

Remek vagy!

p.

Előzmény: Fferenc50 (38355)
Fferenc50 Creative Commons License 2025.01.02 0 0 38355

Szia!
O365 esetében használható a SZŰRŐ függvény.

Korábbi verzió esetében érdemes megnézned az Adatok - Speciális (lánykori nevén Irányított szűrő) - menüpontot.

Vagy az eredeti munkalapról csinálsz másolatot - a másolaton Autoszűrő és már látod is az összes kívánt adatot.

Üdv.

Előzmény: PitLer (38354)
PitLer Creative Commons License 2025.01.02 0 0 38354

Sziasztok!
Létrehoztam egy táblázatot a telephelyünk elektromos hálózatáról. (honnan, mi, milyen leágazás jelről, milyen védelemmel, milyen kábelen keresztül van megtáplálva) 'Szekrény - leágazás név - leágazás jel - védelem - kábel'
Szükségem van egy olyan megoldásra, hogy a táblázat adatai alapján másik munkalapon megjelenjen (a táblázat egyedi szekrénynév értékeit tartalmazó engedélyezési listából) kiválasztott szekrényhez tartozó összes (nem csak az elsőként megtalált) belőle induló, közvetlen betáplálás adata.
Segítségetek köszönöm! Pit

Andyyy42 Creative Commons License 2024.12.27 0 0 38353

Szia,

 

Értem, köszönöm szépen!

Előzmény: Fferenc50 (38352)
Fferenc50 Creative Commons License 2024.12.27 0 0 38352

Szia!

A helyettesítő karakterek csak szövegben működnek, szám esetében nem!

Ha a számok szövegformátumban vannak, akkor működhet, de csak 1 db csillag kell a végére.

A helyettesítő karaktereknél ugyanis a csillag (*) akárhány karaktert helyettesít, az lehet 1 és lehet akár 100 is:

Pl. *10* minden olyan tételt kiválaszt, amiben előfordul a 10 karaktersorozat (szándékosan nem a 10 számot írtam, mert ugye szövegről van szó!!!)

10* minden 10-zel kezdődő szöveget kiválaszt, *10 minden 10-zel végződő szöveget választ ki.

Ha egy karaktert szeretnél helyettesíteni, arra a kérdőjel (?) való. Ahány kérdőjelet teszel a keresésbe, annyi karakter helyet kvázi figyelmen kívül hagy.

Ezeket megfigyelheed, ha az autoszűrőben a szövegszűrést választod és tanulmányozod a szűrés eredményét és a létrehozott szűrő feltételeket.

Tehát a számoknál a számtani műveleteket kell használni, szövegnél lehet a helyettesítő karakteres formát is.

Üdv.

Előzmény: Andyyy42 (38351)
Andyyy42 Creative Commons License 2024.12.27 0 0 38351

Advanced filterben kritériumok

Előzmény: Andyyy42 (38350)
Andyyy42 Creative Commons License 2024.12.27 0 0 38350

Előzmény: Andyyy42 (38349)
Andyyy42 Creative Commons License 2024.12.27 0 0 38349

Sziasztok,

 

Megint segítség kellene :-(

 

Nem bírok rájönni, hogy miért van a következő:

 

első esetben szűri manuálisan és makróval is

 

Második esetben viszont se manuálisan, se makróval sem szűri.
Mi az oka?

 

 

Andyyy42 Creative Commons License 2024.12.26 0 0 38348

Mármint :-)

Előzmény: Andyyy42 (38347)
Andyyy42 Creative Commons License 2024.12.26 0 0 38347

Szia,

 

Köszönöm, pár adattal kipróbálva működik :-(
Beteszem majd VBA is.

 

Köszönöm!

Előzmény: Fferenc50 (38346)
Fferenc50 Creative Commons License 2024.12.26 0 0 38346

Szia!

"Hogyan tudom az alap adatsorban átalakítani a szöveges formátumú cellákat szám formátumúvá, hogy megtartsa a kezdő nullákat?"

Két lépésben:

1. lépés

Kijelölöd az oszlopot - Adatok - Szövegből oszlopok - 1.párbeszéd ablakban:tagolt - befejezés

2. lépés

Kijelölöd az oszlopot -  jobb egérgomb - cellaformázás - szám fülön - egyéni  - formátum kódba bemásolod:

_*0#########

Annyi # legyen benne, amennyi a maximális számhosszad.

Ezután a számaid - minden szám a kijelölésben! -  mindig egy db vezető 0-val fognak megjelenni - de számként lehet rájuk keresni.

Üdv.

Előzmény: Andyyy42 (38345)
Andyyy42 Creative Commons License 2024.12.26 0 0 38345

Sziasztok, Boldog Karácsonyt!

 

Advanced filter multiple criteria-val szűrök makroval adatokat.
A szűrés szám formátum alapon működik.

 

Az adatsoromban viszont szöveges formátumok is vannak, amik számokat tartalmaznak. Ez azért van, hogy ha egy számsor nullával kezdődik az adatsorban, akkor maradjanak meg a kezdő nullák is az adatsorban, hiszen ha számformátumban van tárolva, akkor a kezdő nulla /nullák elvesznek.

 

 

Így viszont az advanced filter nem működik ezeken a szöveg alapú cellákon (amik egyébként számokat tartalmaznak).

 

Hogyan tudom a kettőt összehozni?

Vagy
Hogyan tudom az alap adatsorban átalakítani a szöveges formátumú cellákat szám formátumúvá, hogy megtartsa a kezdő nullákat?

 

 

Ha vakinek van kedve foglalkozni ezzel esetleg, így a bejglik között :-)

 

Köszi! 

 

Andyyy42 Creative Commons License 2024.12.20 0 1 38344

Szia,

 

OK - átnézem ezeket a lehetőségeket.

Köszönöm szépen az ötleteket.

 

 

Előzmény: Garashan (38342)
Andyyy42 Creative Commons License 2024.12.20 0 0 38343

Szia,

 

Ha megcsinálom, amit szeretnék, akkor magunkat és így magamat is védem.

Természetesen el fogom tudni vinni az adatokat, ha akarom, mert én csinálom meg az excelt, így nekem lesz hozzáférésem.

Ellenben, ha akarom, már most is le tudnám menteni, hiszen az adatsorokhoz most is hozzáférek (mint egyébként mindenki más a cégnél).

 

 

Összességében az alap adatokat, akinek van hozzáférése és nem védik, bárki, bárhol bármilyen cégnél el tudja vinni.

(kérdés van-értelme). - Ezért nem értem a megjegyzésed :-(

 

Viszont ha más jellegű a kommented és nem a fentiekre gondoltál, akkor elnézést, de nekem ez jött le belőle.

 

 

 

Előzmény: arkilaszlo (38341)
Garashan Creative Commons License 2024.12.20 0 0 38342

Ha makróval van az adatbázis kapcsolat megoldva, akkor a "Application.ActiveWorkbook.Path" kóddal lehet lekérni az elérési útvonalat a fájl neve és kiterjesztése nélkül. Míg a "Application.ActiveWorkbook.FullName" kóddal az elérési utat és a nevet is lekéri. Attól függően, hogy az ember mit szeretne ellenőrizni.

Persze ez csak akkor működik, amíg otthon nem "ugyan oda" másolja az ember a fájlt. Vagyis teszem azt a pendrive meghajtóját otthon átnevezi Z: meghajtóra (mert pl. a cégnél is az a becsatolt hálózati meghajtó) és ugyan olyan mappa szerkezetet hoz létre, akkor nem működik az ellenőrzés.

 

Valamint van lehetőség számítógép nevet is ellenőrizni. Azt a "Environ("computername")" kód adja vissza. Nyilván ennek a hátránya, hogy új gép (vagy újratelepítés esetén) módosítani kell a kódon, hogy beengedje azt az eszközt is.

Előzmény: Andyyy42 (38340)
arkilaszlo Creative Commons License 2024.12.20 0 0 38341

"ellenben fenn áll a veszély, ha bárki távozik a cégtől, akkor ezt az adatsort + információkat viszi magával és a jövőben egy másik cégnél használva"

 

pont így viselkedik aki maga is lopta az adatokat, mert

tudja hogyan kell, mert

tudja mit veszíthet

 

Előzmény: Andyyy42 (38299)
Andyyy42 Creative Commons License 2024.12.19 0 0 38340

Helyesbítem:

 

Szóval: Azt, hogy lehet megcsinálni, hogy ha a "B" fájlt áthelyezik vagy átmásolják más mappába, akkor már megszakadjon az "A" adatbázis excellel a kapcsolata?

Előzmény: Andyyy42 (38339)
Andyyy42 Creative Commons License 2024.12.19 0 0 38339

Sziasztok,

 

"Másik lehetőség: külső adatbázist használsz, amiben az adatok vannak. Access-el hozod létre és jelszóval véded már megnyitás ellen is. Nyilván ezt sem vered nagydobra  Mellé XLSB-be mented a munkalapot és csak egy darab kört raksz le, ami futtat egy makrót. Minden funkciót zárolsz és csak jelszóval engeded szerkeszteni a munkafüzetet és a makrókat is jelszóval véded.

Makróval nyitod meg az access fájlt és userformokkal kéred le belőle az adatokat. Nyilván sokkal macerásabb, a prtacr-t szerintem nem lehet letiltani. Az XLSB-t viszont nehezebb feltörni."

 

Van két excel fájlt.
Az "A" egy adatbázis, ami folyamatosan frissül.
A "B" pedig össze van kötve az "A" adatbázissal és annak az adatait használja.
Ezek két különböző helyen vannak, különböző mappákban.

Azt, hogy lehet megcsinálni, hogy ha a "B" adatbázist áthelyezik vagy átmásolják más mappába, akkor már megszakadjon az "A" excellel a kapcsolata?

Előzmény: Garashan (38301)
Ketele69 Creative Commons License 2024.12.12 0 0 38338

Szia!

Kipróbáltam, sajnos nem működött.

Majd addig variáltam a beállításokkal, míg egyszer csak jó lett.

 

Nem tudom mi lehetett a hiba, mert nekem úgy tűnik ugyanazok a beállítások. :)

 

Üdv,

Előzmény: Ketele69 (38337)
Ketele69 Creative Commons License 2024.12.11 0 0 38337

Szia!

Holnap tudom már csak kipróbálni,

Köszönöm,

Előzmény: Fferenc50 (38336)
Fferenc50 Creative Commons License 2024.12.11 0 0 38336

Szia!.

Szerintem töröld ki az oldaltöréseket, utána állítsd az oldalbeállításnál a legyen 1 oldal széles és 2/3/4 oldal magas.

Üdv.

Előzmény: Ketele69 (38335)
Ketele69 Creative Commons License 2024.12.11 0 0 38335

Sziasztok!

A nyomtatási kép beállításakor problémába ütköztem.

Van egy táblázatként formázott 50 soros tábla 4 oszloppal. (nem én készítettem az eredeti táblát.)
A Nyomtatási terület meghatározásakor kijelölöm az egész táblát (4 oszlop 50 sor)
Amikor megnézem a nyomtatási képet akkor először csak 3 oszloppal(?), majd (a kijelölésnek megfelelően) 4 oszloppal mutatja ugyanazt a táblát. (Tehát normálisan 4 oldal lenne, de 8 lesz belőle)

Ha a Nézet/Oldaltörés megtekintését bekapcsolom, látom a 3. oszlop után a szaggatott vonalat, ami alapján  a nyomtatási képen  először a "3 oszlopos" változat látszik. Ha a szaggatott vonalat áthúzom a "helyére" már csak a 4 oszlopos táblát jeleníti meg, de kicsi méretben, összenyomva és az Oldalbeállítás/Nagyítás menüpontban hiába növelem oldalszámban a szélességét/magasságát nem történik semmi.

Office 365-ös Excel.

Nem találkoztam még ilyennel.  

Köszönöm,

Andyyy42 Creative Commons License 2024.12.10 0 0 38334

igen, kezdem én is látni....

Előzmény: XNC (38332)
Andyyy42 Creative Commons License 2024.12.10 0 1 38333

Szia,

 

Köszi, h ilyen részletesen leírtad a véleményed.

Igen, lehet érdemes lenne akkor megismerkedni vele... csak nem sok időm van még azzal is külön foglalkozni, mert az excellel is bőven el vagyok maradva, ahhoz képest amit kellene tudnom (bár az excel kb pont az, amit örökké lehet tanulni, annyi sok minden van benne és kimeríthetetlen- tipikusan, minél jobban megismered, annál jobban jössz rá, hogy igazából semmit se tudsz még belőle:-) ) és akkor most kezdjem az Access-t is :) :-) :-)

Előzmény: Garashan (38331)
XNC Creative Commons License 2024.12.09 0 0 38332

" Az Access-t meg egyáltalán nem ismerem :-( "

.

Pedig meg kéne tanulni, csak mert amit meg akarsz csinálni, abban lenne a legegyszerűbb.

Előzmény: Andyyy42 (38330)
Garashan Creative Commons License 2024.12.09 0 0 38331

Az Accesst kb. úgy képzeld el mint egy Excel táblázatot.

Csak abban az oszlopoknak nem betű jelei vannak, hanem nevei.

Pl. egy partnertörzs esetén:

  • cég kód
  • cég név
  • adószám
  • cím
  • weblap
  • kapcsolat tartó
  • telefonszám
  • e-mail cím

Alapértelmezetten két féle táblázat létezik (legalábbis így éjfél után több nem jut eszembe). Az egyiknél van egy úgynevezett egyedi azonosító érték. Ez az én példámban a "cég kód" nevű oszlop. Ide nem kerülhetnek be ismétlődő elemek, így a táblázat egy-egy sora egyértelműen azonosítható.
A másik féle táblázatban pedig nincs ilyen egyedi azonosító. Hogy erre is mondjak egy példát: ha egyedi árakat akarsz rendelni valamelyik termékhez és valamelyik vevődhöz, akkor a következő oszlopokra lesz szükséged: termék kód, cég kód, ár. Itt egyik sem rendelkezik egyedi azonosítóval, mert lehet benne ismétlődés. Pl. a termék kód ismétlődik, ha ugyan annak a terméknek több vevőhöz is van egyedi ár rendelve. A vevőkód szintén ismétlődik, ha több termékből is kap egyedi árat. Az ár meg ismétlődik, ha több terméknek is ugyan az lesz az egyedi ára.

Az egyedi azonosítós arra jó, hogy rögtön az azonosítóval tudd azonosítani az adott sort. Én pl. sok helyen a vevő kóddal azonosítom a vevőinket. Fejből nem tudom semelyik vevőnknek sem a kódját (kivéve a sajátomat (nyilván mint magánszemély szereplek a számlázóban) :D, mert amúgy szabadon módosítható a számlázóban a kód), azt a számlázó generálja.

A régi vevőinknek (akiket úgy importáltunk a számlázó váltás előtt még csak számból állt a vevőkódja. Az újaknak van előtte egy "v" betű is. Amúgy pedig egy szám.

 

Ha van egy Access táblázatot, akkor abból SQL parancsokkal és makró segítségével tudsz végrehajtani lekérdezéseket. Ezeket úgy kell elképzelni, mint egy fajta szűrés. Pl. ha a cím mező nem egy mezőből áll, akkor tudsz szűrni könnyedén vármegyére is. És az egészben az a jó, hogy egy lekérdezésben akárhány feltételt összekapcsolhatsz. Azaz le tudod kérdezni azokat, aki Zala megyeiek, az e-mail címük "*@google.com" végződésű és a telefonszámúk "+36 83*" kezdetű. Ha megvan ez a lekérdezés, akkor tudsz vele dolgozni. Pl. ki tudod listáztatni csak a cég neveket és a hozzájuk tartozó várost. A többi adat is ott van a lekérdezésben, mert "lejön" az is azzal együtt, de neked nem muszáj minden egyes "oszlopot" kiírni egy cellába (vagy akárhova).

 

Az Access adatbázis annyiban különbözik az Exceltől, hogy abban statikus adatok vannak. Pl. ha csinálsz egy olyat, ahol "A" és "B" oldalakat, valamint a területet tűnteted fel, akkor neked a terület nem fog automatikusan átíródni, ha "A" vagy "B" oldalak megváltoztak. Sok esetben származtatott adatokat nem is nagyon szoktak eltárolni adatbázisban. (Vagyis ez már inkább optimalizáció függő. Ha bonyolult a számítás (mármint erőforrás igényes), akkor lehet, hogy jobban megéri beáldozni azt a néhány bájtot a végeredmény eltárolására, mint mindig kiszámolni azt). Ha meg nem erőforrás igényes a számítás, de rengeteg adatod van (viszont nem kell mindig az összes), akkor inkább számoljon a gép, ne pedig statikusan legyen ott a végeredmény.

 

Pl. van egy honlapon, ahova csináltam magamnak menet táblázatot (egyelőre csak metrikus normál és metrikus finom menetekhez). Gyakorlatilag elegendő a menet típust (metrikus vagy metrikus-finom), a névleges átmérőt és a menetemelkedést elmenteni. Az összes többi adatot ki lehet ezekből számolni. Mint. pl. az orsó átmérőjét, a menet mélységét, lekerekítést, magfuratot, stb. Így feleslegesen nem terheltem az adatbázist ezekkel. Úgyis, ha szeretnék egyszer egy beviteles kalkulátort csinálni, akkor már megvannak a számítások, csak át kell őket emelni a kalkulátorba.

 

 

A VBA-hoz és az SQL lekérdezésekhez kell egy kis programozási szemlélet. De rengeteg hasznos információ fent van a neten, ha az ember fia/lánya beszél angolul. Illetve az itteni közösség segítőkész, szerintem nem igazán szoktak lenni megválaszolatlan kérdések, ha azok jól vannak feltéve. Csak tudni kell, hogy miből mit szeretnél kihozni.

Előzmény: Andyyy42 (38330)
Andyyy42 Creative Commons License 2024.12.08 0 0 38330

Sziasztok, Fferenc50 és Garashan,

 

VBA-ban még elég gyerekcipőben járok, de egyelőre, amire nekem kell/kellett, +a  net segítségével (beleértve Titeket is), többé - kevésbé elboldogultam.
Az Access-t meg egyáltalán nem ismerem :-(
(nem tudom egyébként mennyi idő lenne annyira megismerni, amennyire nekem kell)

 

Átgondolom a javaslatokat, köszönöm szépen! 

 

 

Előzmény: Garashan (38329)
Garashan Creative Commons License 2024.12.08 0 0 38329

Szerintem is egyszerűbb lenne minden adatot Accessben tárolni.

 

Nekem van egy ilyen lekérdező makróm.

A bal felső userformban ki lehet választani a vevőt, illetve a témakört. A userform hívja meg az adatbázis lekérdező makrót (kap 3 paramétert is bemenetnek)

Végül kilistázza az utolsó 10 darab e-mailt ami az adott vevőnek lett kiküldve az excelből.

A rec.Fields("NÉV").Value adja vissza az adott sorhoz tartalmazó NÉV oszlopban lévő adatot. Így csak azokat az adatokat íratom bele az "ertek" nevű változóba, amire szükségem van. Végül a MsgBox segítségével van kilistázva. Nekem ennyi elegendő volt.

 

Itt maga a táblázat adja hozzá az adatbázis elemeket is az Access dokumentumhoz automatikusan. Ahhoz másik függvény van meghívva.

 

Az alap makró nem tőlem származik azért is vannak benne angol kommentek (: viszont elég jól testre szabtam. Illetve most vettem észre, hogy el is van írva a függvény neve, de nem módosítom, mert tudja a franc, hogy hol hivatkoztam már rá.

Jó pár dolgot szerintem te is tudnál belőle meríteni.

 

Itt le van írva az is, hogyan lehet jelszavas adatbázist megnyitni vele: https://stackoverflow.com/questions/25808368/how-to-connect-excel-with-locked-access-database-using-vba

Előzmény: Andyyy42 (38327)
Fferenc50 Creative Commons License 2024.12.08 0 0 38328

Szia!

Nézetem szerint a Listbox - ugyanúgy mint a Combobox - alapvetően a szűrési paraméterek bevitelére szolgáló eszköz. Az eredmény megjelenítésére mást érdemes használni.

Annál is inkább, mert a Listbox annyi oszlopot jelenít meg a forrásból, amennyit beállítasz, ami lehet csak egy, de lehet több egymás melletti oszlop is.

Amire te gondolsz, annak inkább a lekérdezés felel meg, ami az adatokból annyit jelenít meg, ami a feltételeknek megfelel. Lekérdezést létre hozhatsz Excel verziótól függően manuálisan ill. VBA-val, az újabb Excel verziókban pedig Power Queryben, szintén manuálisan és M nyelven "makróval".

Javaslom az Adatok - Lekérdezések menüpont tanulmányozását akár makrórögzítéssel is. Közös használatú munkafüzetekben vannak korlátozások, de talán ez nem érinti a lekérdezéseket.

Másrészt, ha már több felhasználó és közös adatállomány, miért nem ACCESS-t (ami adatbáziskezelő!) használsz az adatok tárolására, amihez adatbevitelhez és lekérdezéshez is használható és hozzákapcsolható azh Excel? Cégnél ez szerinten nem lehet nagy probléma. Ráadásul nagyon nem is kell az ACCESS makrózást megismerni, minden működhet Excelben, az ACCESS pedig elvégzi a konzisztencia és egyéb ellenőrzéseket. A jogosultságokat is be lehet állítani benne az adatbázis szerkezet létrehozásakor akár.

Üdv.

Előzmény: Andyyy42 (38327)
Andyyy42 Creative Commons License 2024.12.08 0 0 38327

A lényeg az, hogy tudjanak szűrni, de ne álljon nekik össze a háttéranyag (amit berögzítenek adatbázis) szerkezete.
Több tulajdonságot beviszünk egy ID-hoz (kb 15-öt).  Ellenben a szűrés közben kb 5 tulajdonságra szűrnek le maximum.
Csak a szűrés eredményét akarom, h lássák, ami a leszűrt 5 tulajdonság + még 1-2 adat a maradék 15-ből.

(itt jön a  jogos kérdés, hogy akkor minek kell 15 féle tulajdonság, de élő példa nélkül nehéz elmondani, miért kell a maradék adat, ha azokra nem szűrűnk és nem is jelenítjük meg szűrés alkalmából, de maradjunk annyiban, h kell)

 

Ezért rögzíttetem be az adatokat Userformmal, nem pedig csak soronként manuálisan az adatsorba, + soronként beszúrva, hogy ne lássák a teljes adatbázis.
A userform majd hogy nem a mi helyzetünkben csak ezért kell.

 

Illetve ha a listboxban látják a szűrés eredményét, az a teljes adatsor megjeleníti,  az ID mind a 15 tulajdonságát, amit pont nem akarunk, h lássanak, mert akkor ugyan ott vagyunk ismét, mintha az adatbázisban rögzítenének manuálisan. - vagy ezt nem jól gondolom? 
(Még nem próbáltam ki egyelőre csak elméletben gondolkozok.)


Szóval a lényeg, hogy a bevitt 15 adatsort soha ne lássák egyben az egyes ID-k hoz.

Előzmény: Fferenc50 (38326)
Fferenc50 Creative Commons License 2024.12.08 0 0 38326

Szia!

"ne lehessen semmit látni, se a userform munkalapon, se a userform listbox-ban sem."

Akkor nem értem, mire szolgál a listbox?

Üdv.

Előzmény: Andyyy42 (38325)
Andyyy42 Creative Commons License 2024.12.08 0 0 38325

Szia,

 

"A Userformot úgy kell kialakítanod, ne fedje el a munkalap azon részét, ahova a szűrés eredményét szeretnéd megjeleníteni."
Úgy szeretném, hogy egyik munkalapon lesz a Userform és nem ugyan oda jeleníti meg az adatokat, hanem ha elvégezzük a leszűrést, akkor a szűrés eredményét egy másik munkalapon lehet megnézni.
Szóval, hogy a userform használata közben ne lehessen semmit látni, se a userform munkalapon, se a userform listbox-ban sem.

"A szűrt adatokat pedig átmásolod erre a területre - akár pl. a Range:AdvancedFilter használatával - másik helyre másolással."
Igen, úgy gondolom én is, hogy a Userformmal csak megadom az advance filternek a szűrési feltételeit és aztán csináltatom meg az adnavce filterrel a leszűrést egy másik munkalapra, mint szűrési eredményt.

Szóval alapvetően a userformmal kialakított szűrési feltételek, amit majd használok az advance filterrel, kerüljön egy külön munkalapra és a listboxban se jelenítsen meg eredményt az userform.

 

"Egyébként milyen műveleteket szeretnél még a szűrt adatokkal végezni?"
A leszűrt eredményből majd csak e-mailcímek és telefonszámok kellenek, amit használni kell tovább.

Előzmény: Fferenc50 (38324)
Fferenc50 Creative Commons License 2024.12.08 0 0 38324

Szia!

A Userformot úgy kell kialakítanod, ne fedje el a munkalap azon részét, ahova a szűrés eredményét szeretnéd megjeleníteni.

A szűrt adatokat pedig átmásolod erre a területre - akár pl. a Range:AdvancedFilter használatával - másik helyre másolással.

Egyébként milyen műveleteket szeretnél még a szűrt adatokkal végezni?

Üdv.

Előzmény: Andyyy42 (38323)
Andyyy42 Creative Commons License 2024.12.08 0 0 38323

Sziasztok,

 

Olyat tervezek csinálni,  h minden egyéni felhasználónak legyen egy saját excel-file a gépén, névreszólóan, amivel adatot tud bevinni (userformmal).
Ezek az adatok, amiket a felhasználók, személyenként a saját, névreszóló excellel berögzítenek, egy, a szerveren lévő "gyűjtő" file-ba kerülnek.
Eddig ezt, azt hiszem, meg tudom csinálni.

 

Az egyéni exceleknek, lenne egy olyan felülete, ahol az adatbevitel mellett, a már bent lévő adatsorban lehetne adatokat kinyerni.
Erre szűrő funkció is kell.
Ezt szintén userformmal akarom megoldani, listboxxal.
Úgy gondolom, ez is menni fog.

 

Viszont, amit szeretnék, hogy a leszűrés alkalmával, a leszűrés eredménye, ne a listboxon belül jelenjen meg, hanem egy másik munkalapon.
Ezt, hogyan kell?
Tudnátok benne segíteni? 

 

Netről gyorsan kifotóztam egy listboxot, csatolva, hogy mire gondolok.

Köszönöm

Eredő Vektor Creative Commons License 2024.12.06 0 0 38322

Köszönöm.

Előzmény: Garashan (38321)
Garashan Creative Commons License 2024.12.06 0 0 38321

Hát próbáld ki.


A volt főnököm szeret több munkalapot is nézni egyszerre. Általában nem elmenti a munkalapokat és utána zárja be őket, hanem a bezárásra kattint és ha kérdezi, hogy menti a módosításokat, akkor menti csak el azokat.

Ha több ablak is nyitva van, akkor addig nem tesz fel ilyen kérdést az Excel, amíg az utolsót be nem zárod. Vagyis, ha nem jó sorrendben zárod be őket, akkor a szűrő és a rögzítés beállításait bukod.

 

Előzmény: Eredő Vektor (38320)
Eredő Vektor Creative Commons License 2024.12.06 0 0 38320

Bár nem győződtem róla, de had kérdő jelezzem ezt meg.

Bármelyiken bármilyen módosítást eszközöl, ugyanazt kell látnod mindegyiken. Munkafüzet szinten ezek egymás tükörképei. (Épp ez a lényege ennek a funkciónak)

Vagy lehet, hogy ez a szűrőnél direkt  így működik, hogy több konstellációt is lehessen nézni pl ugyanazon a munkalapon? ... Hmm... nem tudom.

 

Előzmény: Garashan (38319)
Garashan Creative Commons License 2024.12.05 0 1 38319

A funkció hasznos tud lenni, de okoz bosszúságot is.

Pl. alap esetben a szűrések az 1-es ablakban fognak megjelenni. Illetve az ablaktábla rögzítés is. A 2-es ablak ilyen szempontból szűz lesz. Ha a kolléga nem figyel és az 1-est zárja be hamarabb és úgy menti a doksit, akkor ugrottak ezek a beállítások

Előzmény: pimre (38318)
pimre Creative Commons License 2024.12.05 0 0 38318

Sose használtam ezt a funkciót, de bizony  nem kizárt ez a lehetőség, ami ebben az esetben nem is rendellenesség. Hanem lehet, hogy hzs65 olvtársunk valamelyik kollégája így használta, és mentette el az 1-es fájt, ami a leírt módon nyílt meg, mikor hzs65 használni akarta. Hiszen hálózati meghajtóról közösen dolgoznak.

 

Ebben az esetben a következő megjelenés igazolhatja ezt a feltevést: Az alábbi képen a képernyő tetején a megnyitott fájl neve (nálam Teszt.xlsx) mögött :1 kell hogy látsszon, alul pedig mindkét fájl megjelenik :1 és :2 kiegészítéssel. Ha ez történik akkor megtaláltad az okot. És az is érthető, hogy ha hzs65 lezárja a 2-es fájlt (:2 kiegészítéssel), majd menti 1-est, akkor utána már nem nyílik meg mindkét ablak az újabb nyitáskor. Egészen addig, amíg az a bizonyos kolléga nem nyitja meg, majd menti az általa használt módon.

 

 

 

Előzmény: Eredő Vektor (38317)
Eredő Vektor Creative Commons License 2024.12.05 0 0 38317

Szia!

Nézet menüpont ablak csoportjában aktív az "Új ablak" opció.

Ha így van elmentve a munkafüzet, akkor tapasztalható az, amit leírsz.

Amikor a másodlagos ablak bezárásra kerül és így mented el a munkafüzetet, onnantól már nem jelenik meg megnyitáskor.

Előzmény: hzs65 (38306)
hzs65 Creative Commons License 2024.12.05 0 0 38316

Nem, sajnos nem. :-) 

Előzmény: pimre (38315)
pimre Creative Commons License 2024.12.05 0 0 38315

"...most hiába nyitom meg, csak az a munkafüzet nyílik meg, amit kértem." Még a végén megjavult😀

Előzmény: hzs65 (38314)
hzs65 Creative Commons License 2024.12.05 0 0 38314

Köszönöm. A rendszergazdánál már próbálkoztam. :-) Mindegy, egyelőre marad így,  hátha majd a későbbiekben sikerül cégen belül találni valakit, aki tud is és hajlandó is segíteni. :-(

 

Ha sikerül egy olyan fájl megnyitásakor is reprodukálni, ami nem titkos, megpróbálom az egész fájlt becsatolni, a most hiába nyitom meg, csak az a munkafüzet nyílik meg, amit kértem.

 

Köszi.

Előzmény: pimre (38312)
hzs65 Creative Commons License 2024.12.05 0 0 38313

Ez a munkafüzet egy kollegától érkezik e-mail csatolmányként. Ez minden megnyitáskor új munkafüzetként pluszban megnyitja az 1. munkalapot. Az újonnan megnyitott munkafüzetről készült a kép.

 

Előzmény: Fferenc50 (38309)
pimre Creative Commons License 2024.12.05 0 0 38312

Nem könnyű így távolból találgatni, de azért próbálkozom. Tehát az 1-es munkafüzet első megnyitásakor jelentkezik az, hogy nem csak az 1-es nyílik meg, hanem valami más is, ha jól értem.

Ilyenkor jó lenne megtudni, hogy maga az 1-es dolgozik-e, vagy a háttérben valami. Erre én is javaslom Fferenc50 tanácsát alkalmazni, és Alt + F11-el megnézni, hogy mit mutat a VBA képernyő. Hátha van egy makró (azaz egy program), ami ami ezt a jelenséget okozhatja.

 

Azt írod még, hogy ez a jelenség az irodai gépeken is előfordul. Ha tényleg több gépen is jelentkezik, akkor érdemes lenne felvenned a kapcsolatot a rendszergazdával, és megkérdezni, hogy ő tud-e erről, és esetleg valami szándékos kiegészítésről van-e szó. Különös tekintettel arra, hogy mint írod hálózati meghajtón lévő fájlokról van szó, amihez VPN-en keresztül van hozzáférésed.

 

Előzmény: hzs65 (38310)
hzs65 Creative Commons License 2024.12.05 0 0 38311

Köszönöm, megpróbálom. Ma azt tapasztaltam, hogy ugyanazon munkafüzet másodszori megnyitásakor nincs ez a probléma. Valahova mentettem egy képet tegnap, de nem találom. :-) Teszek majd fel képet, amikor újra előfordul.

Előzmény: Fferenc50 (38309)
hzs65 Creative Commons License 2024.12.05 0 0 38310

Nagyon köszönöm a válaszod. Igyekszem majd elküldeni az egyik munkafüzetet. Több munkafüzet megnyitásakor tapasztaltam. Ezekből nem tudom mindet elküldeni, mert munkahelyi adatokat tartalmaznak. De amiben nincs, vagy úgysem azonosítható, azt elküldöm. Ma például azzal szembesültem, hogy ugyanazt a munkafüzetet ha másodszor nyitom meg, akkor már nem nyílik meg egy üres munkafüzet új fájlként. Ha legközelebb előfordul, akkor töltök fel screenshot-ot. Még azt nem írtam, hogy hálózati meghajtón lévő fájlokról van szó, amihez VPN-en keresztül van hozzáférésem. Ez előfordul az irodai gépeken is (asztali gép, laptop - Windows op.rendszerrel). Azt most nem tudom megmondani, hogy milyen Windows verzió van rajtuk. A laptopon azt hiszem Windows7, az asztali gépen nem tudom. Itthon Windows10 van. A munkafüzetek kiterjesztése vagy .xls vagy xlsx. Kösz a helyreigazítást, hirtelen nem jutott eszembe a munkalap szó, azért írtam füzetlap-ot.

 

1. Az egyik megnyitni kivánt munkafüzetben (nevezzük 1-es-nek), több munkalap van, abból a legelső munkalapot még pluszban megnyitja új munkafüzetben. Egy másik munkafüzetben (nevezzük 2-esnek) csak 1 munkalap van, ott egy üres munkalapot nyit meg pluszban új munkafüzetként.

 

2. Az újonnan megnyitott munkafüzetben nincs több munkalap, akár az 1-es munkafüzetben lévőt nyitja meg, akár a 2-es munkafüzetet akarom megnyitni, ott csak egy üres munkalap van az új munkafüzetben.

Előzmény: pimre (38308)
Fferenc50 Creative Commons License 2024.12.03 0 0 38309

Szia!

Elképzelhető, hogy van egy (rejtett) makró az Excel applikációdban, amelyik munkafüzet megnyitásakor ismételt megnyitást hajt végre.

Érdemes lenne megnézned a VBA nézetben - ide Alt + F11 kombóval juthatsz el, hogy a bal oldalon milyen VBA projectek vannak felsorolva.

Jó lenne, ha egy hasonló képet be tudnál tenni.

Üdv.

Előzmény: hzs65 (38306)
pimre Creative Commons License 2024.12.03 0 0 38308

Tudnád példákkal - képekkel - szemléltetni, hogy mikor mi történik? Esetleg magát a problémát okozó munkafüzetet elküldeni, ha nem tartalmaz bizalmas adatokat. (Felhőbe másolva, és onnan a linket elküldve)

 

Ugyanis egy-két dolog nem világos a leírásodban:

 

1. "...a megnyitni kívánt munkafüzetben több füzetlap is található, a legelső lapot nyitja meg új fájlban. " Pontosítsuk: az általad megnyitott munkafüzetet (hívjuk 1-esnek) nevezed megnyitni kívántnak, vagy amit az általad megnyitott 1-es munkafüzet által megnyitásra kerülő másikat (nevezzük 2-esnek). Az utóbbiban van több munkalap (ez a általában használt kifejezés a füzetlap helyett). 
2. A a 2-es munkafüzet megnyitásakor üres munkafüzetet nyit meg (ha jól értem egyetlen munkalapot látsz belőle), miből gondolod, hogy abban több munkalap is található? Abból nem következik, amit írsz, hogy ha ezt lezárod, akkor több lapot látsz. Abból az következik inkább, hogy talán még egy munkafüzet van nyitva, amit az 2-es lezárásáig nem láttál. 

 

Amit jó lenne tudni, hogy mi az 1-es munkafüzet kiterjesztése? .xlsx, .xlsm, esetleg más?

 

Ja persze, mielőtt elfelejtem, érdekes lehet, hogy milyen Windows van a gépeden, és milyen office verzió alatt jelentkezik a probléma. (Feltéve persze ,hogy windows operációs rendszert használsz, és office-t) 

Előzmény: hzs65 (38306)
bé.laci Creative Commons License 2024.12.03 0 0 38307

Köszönöm Kedves Ferenc!

 

Úgy néz ki ezzel jó:

 

 

=HA(ÉS(ISO.HÉT.SZÁMA(C9)=1;HÓNAP(C9)=12); ÖSSZEFŰZ(ÉV(C9)+1;" W";SZÖVEG(ISO.HÉT.SZÁMA(C9);"00"));  ÖSSZEFŰZ(ÉV(C9);" W";SZÖVEG(ISO.HÉT.SZÁMA(C9);"00")))

Előzmény: Fferenc50 (38305)
hzs65 Creative Commons License 2024.12.03 0 0 38306

Sziasztok!

Egy furcsa dolgot észleltem az excelben.

Egy excel munkafüzet megnyitásakor egy másik munkafüzetet is megnyit. Eddig azt tapasztaltam, hogy a megnyitni kivánt munkafüzetben több füzetlap is található, a legelső lapot nyitja meg új fájlban. Ha ezt bezárom, akkor látom az eredeti munkafüzetet, amiben benne van az a lap is, amit külön megnyitott. Egy másik munkafüzet megnyitásakor viszont egy teljesen üres munkafüzetet nyit meg, pedig abban a fájlban is több füzetlap található. Sajnos eddig senkinek sem volt ötlete, hogy miért van ez, és hogyan lehetne megszüntetni. Ha valakinek van ötlete, hálás lennék érte.

 

Köszönöm.

Fferenc50 Creative Commons License 2024.12.02 0 0 38305

Szia!

A problémát az okozza, hogy a feltételeknél az 1. hét esetén a cellában szereplő évhez hozzáadsz még egyet:

=HA(ÉS(ÉV(C9)=1900; ISO.HÉT.SZÁMA(C9)=1); "1900 W01"; HA(ISO.HÉT.SZÁMA(C9)=1; ÖSSZEFŰZ(ÉV(C9)+1;" W";SZÖVEG(ISO.HÉT.SZÁMA(C9);"00")); ÖSSZEFŰZ(ÉV(C9);" W";SZÖVEG(ISO.HÉT.SZÁMA(C9);"00"))))

Mivel az ISO hét szabálya szerint a hét mindig hétfővel kezdődik és ahhoz az évhez tartozik, amelyből több nap van benne.

Ha jan 01 hétfő-szerdára esik, akkor ez az új év első hete, ha  viszont csütörtök-vasárnap, akkor ez még az óév 52/53. hete lesz.

Mivel 2025.jan.1 szerda lesz, ezért a Hét.száma függvény már 1-et fog adni eredményül. Ezért nem kell hozzáadni az évhez +1-et.

Viszont 2024.12.30 esetében az a helyzet, hogy ez is már az új év első hetéhez fog tartozni - itt tehát jogos a +1 hozzáadás az évhez.

Vagyis a +1 hozzáadás az első hét esetén akkor szükséges, ha az új év első napja hétfő-szerda valamelyike, így az óév utolsó napjai már az új év első hetéhez tartoznak ISO szabály szerint.

Remélem sikerült jól megmagyaráznom.

Üdv.

Előzmény: bé.laci (38304)
bé.laci Creative Commons License 2024.12.02 0 0 38304

Kedves Fferenc50

 

 

A képlet látszólag jól működik minden más cellánál.

 

D10:

=HA(ÉS(ÉV(C10)=1900; ISO.HÉT.SZÁMA(C10)=1); "1900 W01"; HA(ISO.HÉT.SZÁMA(C10)=1; ÖSSZEFŰZ(ÉV(C10)+1;" W";SZÖVEG(ISO.HÉT.SZÁMA(C10);"00")); ÖSSZEFŰZ(ÉV(C10);" W";SZÖVEG(ISO.HÉT.SZÁMA(C10);"00"))))

 

 

D11:

=HA(ÉS(ÉV(C11)=1900; ISO.HÉT.SZÁMA(C11)=1); "1900 W01"; HA(ISO.HÉT.SZÁMA(C11)=1; ÖSSZEFŰZ(ÉV(C11)+1;" W";SZÖVEG(ISO.HÉT.SZÁMA(C11);"00")); ÖSSZEFŰZ(ÉV(C11);" W";SZÖVEG(ISO.HÉT.SZÁMA(C11);"00"))))

 

 

Előzmény: Fferenc50 (38287)
Andyyy42 Creative Commons License 2024.12.02 0 0 38303

Sziasztok,

 

Köszönöm a válaszokat, jött azért belőle ötlet.

 

Olyat tudok elképzelni mondjuk, hogy:
-az adatsort Access-ben tárolom a szerveren (jelszóval védve + esetleg rejtett fájlként tárolom - akkor az excel megtalálja amúgy?)

-a szűrést, ami az adatsoron egyetlen funkció, amit a felhasználok használnak, azt akkor userformokkal oldom meg
-a leszűrt adatsort valahogy úgy jelenítem meg, hogy ne lehessen tovább dolgozni vele (másolni, kijelölni stb) 

 

Aztán, ha azt prtscr-ezik már talán nem olyan nagy gond, nem hiszem, hogy fognak kb 100 féle szűrést végigcsinálni és mindent prtscr-ezni, hogy a teljes alap adatsoruk meglegyen és talán nem is olyan rafkósak.

 

Access-t még egyáltalán nem használtam, de amennyi nekem kell belőle, gondolom megtanulható
userformokat sem használtam még soha, de talán képes leszek rá megoldani

 


A fentieket működöképesek lehetnek?

Előzmény: Andyyy42 (38299)
XNC Creative Commons License 2024.11.30 0 0 38302

"prtscr-t szerintem nem lehet letiltani"

.

Teszem azt letiltod, erre valaki lefotózza a képernyőt.....

Valami egyedi szoftver kéne, ami nagyban megnehezítené a tolvaj dolgát.

Előzmény: Garashan (38301)
Garashan Creative Commons License 2024.11.30 0 0 38301

Szia!

Szerintem ez veszett fejsze nyele.

Ha jelszóval véded szerkesztés ellen, akkor az kb. ½ perc alatt megkerülhető. Volt beszállítónk, aki mindig levéste a munkalapokat. Se másolni, se kijelölni, se szerkeszteni nem lehetett. Kézzel meg macerás lett volna az adatokat átvinni a saját rendszerünkbe. A legegyszerűbb az volt, hogy töröltem a védelmet és utána már tudtam szerkeszteni. Aki kicsit mélyebben is benne van a számítógépes ismeretekben az meg tudja ezt csinálni. Átlag Julika viszont nem fogja tudni.

 

Olyat viszont nem fogsz tudni megcsinálni, hogy megnyitni megnyitod, de lementeni már nem fogod tudni. Oké, makróval sok mindent lehet tiltani, de a makrók seperc alatt tilthatók. Utána olyan, mintha ott se lennének.

E-mailes csatolás: szerintem nem megoldható, hogy konkrétan azt a táblát ne tudd becsatolni és minden mást pedig de.

 

Ha védeni szeretnéd az adatokat, akkor írni kell egy programot, ami külső forrásból emeli be őket automatikusan, de ezt nem hozza a felhasználó tudomására. Le kell tiltani a kijelölést és a prtscr-t. Így az exe-t hiába másolná az adatbázis nélkül használhatatlan lenne.

 

Másik lehetőség: külső adatbázist használsz, amiben az adatok vannak. Access-el hozod létre és jelszóval véded már megnyitás ellen is. Nyilván ezt sem vered nagydobra  Mellé XLSB-be mented a munkalapot és csak egy darab kört raksz le, ami futtat egy makrót. Minden funkciót zárolsz és csak jelszóval engeded szerkeszteni a munkafüzetet és a makrókat is jelszóval véded.

Makróval nyitod meg az access fájlt és userformokkal kéred le belőle az adatokat. Nyilván sokkal macerásabb, a prtacr-t szerintem nem lehet letiltani. Az XLSB-t viszont nehezebb feltörni.

Előzmény: Andyyy42 (38299)
Fferenc50 Creative Commons License 2024.11.30 0 0 38300

Szia!

Többféle védelem is létezik (munkafüzet, munkalap, VBprojekt, felhasználói engedélyek, stb) az Excelben, de "természetesen" ez csak a "mezei" felhasználók ellen véd. Ha valaki el akarja vinni, úgyis el fogja (tudom, ez nem vígasztal), de ez van. Nehezíteni lehet csak. Pl. Nem engeded menteni sajét gépre, másként menteni, csak adott felhasználók számára engeded megnyit stb. Ezeket mind makrókkal lehet megoldani.

Esetleg más progamon keresztül használni az Excelt védett módban. Ezzel kapcsolatban talán lesz itt is olyan, aki több tanácsot tud adni. A rendszergazdátok is tud biztosan tippet adni.

Más: Kérj a cégedtől jogvédelmet és valamennyi honoráriumot egy (szerzői jog) szerződés keretében, amiben meghatározzátok, milyen módon lehet használni amit alkottál.

Üdv.

Előzmény: Andyyy42 (38299)
Andyyy42 Creative Commons License 2024.11.30 0 0 38299

Sziasztok,

 

Van-e az alábbira lehetőség (véleményem szerint nincs, de nagyon örülnék neki ha lenne):

 

- céges adatokból összeraktam egy adattáblát, ami több dolgozó munkáját segítheti, növelheti az egyéni eredményességet, így a céges eredményeket is

  szeretném/szeretnénk úgy levédeni az adattáblát, hogy az mindenki számára hozzáférhető legyen, lehessen benne szűrni.

- ellenben fenn áll a veszély, ha bárki távozik a cégtől, akkor ezt az adatsort + információkat viszi magával és a jövőben egy másik cégnél használva,       növelve ezzel az ottani eredményességét + a versenyhelyzetet velünk szemben

Szóval mondjuk a jelenlegi cégnél közös szerverre lementeni, ahonnan saját gépre nem másolható a tábla-csak onnan megnyitva használható, emailben nem lehet csatolni, de a szerverről megnyitható legyen és szűrhető legyen 

 

Ez valamilyen formában megoldható?

 

Köszi!

bé.laci Creative Commons License 2024.11.30 0 0 38298

Szia!

Köszönöm a választ.

Munkahelyről írtam a kérdést, sajnos most nem férek hozz a fájlhoz, hétfőn vagy kedden bővebben válaszolnék, de a képlet alapvetően működött - ahogy az az alatta levő két értéken talán látszik - ez az első dátum, aminél hibát vettem észre, igaz nem régóta használom.

 

Chat GPT meg google segítségével írtam, mert a mezítlábas verziója nem kezelte jól a szökőéveket meg az 53 hetes éveket/évváltásokat.

 

Az alapszitu, hogy van egy SAP-s pdf-es előrejelzésem/rendelésem, ahol az igények ideje (e a G oszlopba van átemelve)  hol úgy van megadva, hogy Day 04.01.2025, hogy úgy, hogy Week 02.2025, hol úgy, hogy Month 05.2025 és ezeket akartam egységes forátumúvá varázsolni.

 

Hétfőn vagy kedden alaposabban ránézek.

Előzmény: Fferenc50 (38287)
dorogszu Creative Commons License 2024.11.30 0 0 38297

Köszönöm ez így nagyon alapos és jó megoldás. Használom! 

 

Előzmény: Fferenc50 (38295)
pimre Creative Commons License 2024.11.28 0 0 38296

Még egy utolsó off tbando ügyében. A tiltással (rootolás?) kapcsolatos tbandoo hozzászólások 2013-ban történtek. De ennek feltehetőleg lett foganatja, mert tbando később mégis tudott írni. Én egy 2014. június 1-i hozzászólást találtam utoljára: https://forum.index.hu/Article/viewArticle?a=130519045&t=9009340. Nem tudom, van-e frissebb. Talán nincs.

Előzmény: Garashan (38294)
Fferenc50 Creative Commons License 2024.11.28 0 0 38295

Szia!

Ide tettem fel egy megoldást.

Magyarázat:

1. Abból indultam ki, hogy mind a hosszúság mind a szélesség esetében oldalanként kell "lefedni" a méretet.

2. A méret minden esetben "lefedhető" az adott 6 méretű összekötővel

Ezekkel a feltételekkel használható az Excel Solver bővítménye.

A bővítményt a Fejlesztőeszközök - Excel bővítmények - Solver bővítmény bepipálásával kapcsolhatod be.

A makró futásához szükséges hozzá még egy referencia hozzáadása a VBA nézetben - Tools - References - ablakban megtalálod a Solvert, ide is kell egy pipa. 

Elvileg abban a fájlban, amit küldtem, ez a két lépés benne van, ha másik munkafüzetbe másolod át, akkor szükségesek a leírtak.

A kiszamolo makrót használhatod.

Mit csinál a makró:

A mintádban sárgával jelölt területre számítja ki az optimális megoldást az alábbi képlet alapján:

Az A3 cellában levő hosszúságra

=SUMPRODUCT($K$2:$P$2,$K3:$P3)-A3

A B3 cellában levő szélességrebe

=SUMPRODUCT($K$2:$P$2,$K3:$P3)-B3

A két számítást külön-külön egymás után végzi el és a kapott értékeket eltárolja tömbváltozókban.

Ha van megoldás, akkor mindkét eredményt megszorozza 2-vel és beírja a megfelelő helyre, majd szövegesen is kiírja az eredményt. Ha nincs megoldás, akkor azt a szöveget írja ki és az összekötők celláiből törli a benne levő adatokat.

Ezt végrehajtja a sárgával jelölt területen soronként, majd a végén a képletes cellákat törli az S:T oszlopokból.

A területet automatikusan határozza meg az A oszlopban levő adatok (azaz az első üres celláig), így fontos, hogy ne legyen üres cella közben az A oszlopban.

Ha látni szeretnéd a képleteket, akkor a

cter.Clear

sor elé tegyél egy aposztrófot ('). 

Ebben az esetben láthatod az S:T oszlopokban a használt képleteket. 

Természetesen a Solver manuálisan is használható - a T oszlop utolsó beképletezett cellájára állva az Adatok - Solver menüpontban láthatod a Solver beállításait. A Megoldás gombra kattintva majd elfogadva a megoldást a K-P oszlopok utolsó sorába bekerülnek az értékek (ez a szélességet egyszeresen lefedő kombináció lesz). 

FONTOS!

Ez a módszer csak akkor használható, ha az adott hosszúságot pontosan le lehet/kell fedni az összekötőkkel. Ha túlnyúlás is lehetséges/megengedett, akkor hibaüzenetet fogsz kapni. Ugyanakkor azt gondolom, hogy némi próbálgatással - hacsak nem tömeges a túlnyúlási eset - lehet a méreten változtatva megoldást találni.

Ha bármilyen gondod lenne, írj bátran, akár privátban is.

Üdv.

Előzmény: dorogszu (38282)
Garashan Creative Commons License 2024.11.27 0 0 38294

Ha rákeresel a nevére, akkor két Tbando is van. A Tbando nevűt rootolták (ez akármit is jelentsen, szerintem kb. banolták), akkor hozta létre a Tbandoo nevű nicket, de azzal se tudott írni az Excel topikba 

Legalábbis a bejegyzésekből nekem ez jött le.

Előzmény: pimre (38293)
pimre Creative Commons License 2024.11.27 0 0 38293

Tbando valamikor 2014-ben egyik pillanatról a másikra eltűnt. Pedig nagyon aktív és nagyon rokonszenves figura volt. Hogy él-e még, az nem derül ki itt a fórumon. Akkor is többen hiányoltuk. (https://forum.index.hu/Article/viewArticle?a=131382581&t=9009340)

Előzmény: Eredő Vektor (38290)
Garashan Creative Commons License 2024.11.27 0 0 38292

Tbando nevéről én még nem is hallottam, pedig már évek óta aktívan olvasom a különböző fórumokat.
Most, hogy rákerestem, Te állapítottad meg pár éve, hogy valószínűleg meghalt.

Sánta Kutyának volt 1-2 hete friss hozzászólása.

Előzmény: Eredő Vektor (38290)
Garashan Creative Commons License 2024.11.27 0 0 38291

Szia!

Köszönöm szépen a hozzászólásodat.

Az SQL szerveres dolognak még utána kell néznem, hogy nem-e akadna valamivel. Valamilyen adatbázis server már fut a szerveren, mert szükséges a számlázó program működéséhez. Az lehet nem jött le teljesen az írásomból, de szimultán1 kell az adatokkal dolgozni egyszerre több gépen. Van beállítva egy MS Server (franc se tudja melyik verzió éppen) és azt éri el az összes számítógép. Fel van csatolva hálózati meghajtóként, mindegyik gépen ugyan úgy, hogy a "parancsikonok" működjenek. Nyilván nem konkrét parancsikonnak kell működnie, hanem Excel hivatkozásoknak.
Idén lett lecserélve a szerver egy combosabbra és komolyabb biztonsági beállítások is lettek érvényesítve. Ebben a részében én már nem vettem részt aktívan, már csak bedolgozgatok a cégnek, nem vagyok náluk aktív állományban. De megőrjítettek az átállással. Egyrészt a gépnév megváltozott (jó ezen túllendültem, mert a hosts fájlba beírtam a megfelelő sorokat), de a benti gépek egy részén nem gépnévvel csatolták fel a hálózati meghajtókat, hanem IP címmel. Így meg nem lehet hozzáadni megbízható helyként az Excelhez és mindig letiltja a makrókat...

Igazság szerint PowerQuery-vel még sohasem foglalkoztam. Egész egyszerűen eddig még nem éreztem sohasem szükségét. Majd utána nézek.

 

SQL: egyetemen fel kellett venni informatika órákat is. Egyik félév programozás volt C-ben, a másik félév már nem tudom, hogy mi volt, de ott tanultunk Access-t is. Legalábbis érintettük, én gyűlöltem, mert szerintem egy logikátlan sz.r. Inkább feltettem a kérdést az első órán, hogy ha SQL parancsokkal is meg tudom oldani a feladatokat, akkor úgy is meg lehet-e csinálni azokat. Azt mondták, hogy nyugodtan, itt nem része az SQL nyelv megtanulása az órának, de ha tudom, akkor nyugodtan használjam. Így nekem az Access kimaradt. Bármilyen feladatot kaptunk megírtam rá a parancsot és töredéke idő alatt készvoltam mint a többiek.

 

1.: Nyilván az Excel korlátai miatt egyszerre csak egy ember szerkesztheti a dokumentumokat, de sok esetben nincs is szükség azok szerkesztésére. Pl. csak térfogatot vagy tömeget kalkulálnak vele a kollégák. Amúgy sem menti el az ember, mert megvan a végső adat az rögzítve van a futárszolgálat rendszerében és utána már amúgy sincs rá szükség. Vagy csak megvan nézve gyorsan, hogy éppen beférnek-e a rendelt cuccok a saját kocsinkba.

 

ChatGPT: Kb. egy évvel foglalkoztam vele aktívabban, illetve pár hete újra ránéztem. Sokat fejlődött, de még mindig sok baromságot állít. Simán megállapította, hogy a 441-nek nem osztója a 7. Miközben 63*7=441. Azt vettem észre, hogy egyre több embernek lett alapvető dolog, hogy valamilyen GPT-hez fordul, ha bármilyen problémája van, de nem ellenőrzik a kapott információt. Pedig rengeteg hülyeséget állítanak látszólag nagy magabiztossággal.
Én nem hiszek bennük feltétlenül, amikor makrókat írok vagy programozok sohasem használok GPT-t. Szeretem, ha átlátom és megértem, hogy mit miért és hogyan csinálok, mert akkor legközelebb már zsigerből fog menni. Oké, ha van egy problémám, akkor rákeresek a neten és általában találok is rá megoldást, de attól függetlenül értelmezni is szoktam a kapott dolgokat és a saját kódomra formázom azt.

 

u.i.: már az is megfordult a fejemben, hogy magam írok egy programot (-: de szabad időm és energiám.

Előzmény: Eredő Vektor (38288)
Eredő Vektor Creative Commons License 2024.11.27 0 0 38290

Tbando és SK(Sánta kutya) él még?

Eredő Vektor Creative Commons License 2024.11.27 0 0 38289

ezt had erősítsem meg, egész jól leírtad a lényeget az átállással kapcsolatban. De szerintem megéri.

És még egy dolog: Elérsz ERP-ket MSSQL-el, Acces-el is gondolom. Csak a teljesítmény nem mindegy. Közvetlenül megkapod az adataidat, nem kell excellel második lépcsőként vacakolni.

PQ-ban (PowerQuery) szintén ez lehetséges, de kell az sql alá.

Előzmény: Fferenc50 (38285)
Eredő Vektor Creative Commons License 2024.11.27 0 0 38288

Szia,

SQL Manager Studio:

https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16

 

Free SQL Server Express:

https://www.microsoft.com/en-us/sql-server/sql-server-downloads

 

Ez 1 felhasználós, tökéletes lesz a céljaidra. Inkább szerveralkalmazás, de megy lokálba is.

Tökéletesen kapcsolódik excelhez oda - vissza.

 

Tovább erősen ajánlom ekkora tömegehez az MS PowerQuery-t. Iszonyú sok munkát meg tudsz vele takarítani, gyors, átlátható, alapszinten érthető, doksi tengernyi. Integrált az excelbe (verziófüggő)

 

Együtt érzek veled, szóval szívesen segítek bármiben - de az út hosszú - mert bele kell merülnöd mssql-be.

ChatGpt is segít, használd. Elmagyaráz mindent - még ha néha f@ságokat is mond - de jó.

 

mailem publikus

 

 

Előzmény: Garashan (38283)
Fferenc50 Creative Commons License 2024.11.27 0 0 38287

Szia!

A képletedben az ÉV(C9)+1 értéke 2026 lesz, hiszen 2025.01.04 éve már 2025!

Üdv.

Előzmény: bé.laci (38286)
bé.laci Creative Commons License 2024.11.27 0 0 38286

Kedves szakik!

 

 

Valamiért az alábbi képlet (ami a D9 cellában található) C9 cella 2025.01.04-ös tartalmát 2026 W01 -nek jelzi ki.

Azt szeretném kérdezni hol lehet a hiba?

 

=HA(ÉS(ÉV(C9)=1900; ISO.HÉT.SZÁMA(C9)=1); "1900 W01"; HA(ISO.HÉT.SZÁMA(C9)=1; ÖSSZEFŰZ(ÉV(C9)+1;" W";SZÖVEG(ISO.HÉT.SZÁMA(C9);"00")); ÖSSZEFŰZ(ÉV(C9);" W";SZÖVEG(ISO.HÉT.SZÁMA(C9);"00"))))

 

 

Előre is köszönöm!

Fferenc50 Creative Commons License 2024.11.26 0 1 38285

Szia!

Én - jó régen volt már - használtam Accesst, nagyon nagy számú,  több milliós rekordszámmal. Akkor nem kellett Excellel foglalkozni hozzá. Ezzel együtt én úgy látom, simán lehet lekérdezéseket irányítani az Excelből az Access adatbázis felé. Így emiatt nem kellene nagyon átdolgozni az Excel rutinjaidat.

Az adatbázis igen nagy előnye nyilván a konzisztencia, megfelelő táblaszervezéssel hatékonyság és egyszerűség érhető el - de ezt neked nyilván nem kell ecsetelni.

Természetesen vannak az Access-nél bizonyára jobb adatbáziskezelők, de nem biztos, hogy azok megtanulása és folyamatba illesztett implementálása valószínűleg bonyolultabb lenne annál.

Üdv.

Előzmény: Garashan (38283)
Fferenc50 Creative Commons License 2024.11.26 0 0 38284

Szia!
Bocsi, most láttam, hogy már régebben feltetted, de nem jártam erre.

Megnézem és utána reagálok.

Üdv.

Előzmény: dorogszu (38282)
Garashan Creative Commons License 2024.11.26 0 0 38283

Évek óta toldozgatok-foldozgatok Excel adatbázisokat. A szó legszorosabb értelmében lehet nyugodtan adatbázisról beszélni. Annyi kereszt hivatkozás van a táblázatok között, hogy lassan már követhetetlenné válik minden.
A legnagyobb probléma, hogy az adatok egy része több táblázatban is szerepel önállóan. Azaz nem hivatkozásként, hanem sima beírásként. És ha frissíteni kell az adatot, akkor az esetek nagy részében nem igazán foglalkoznak vele, hogy mindenhol frissítsék azokat.

 

A felhasználók nem igazán értenek az Excelhez, némelyiket egy egyszerű két cella összeadása képlet is megizzasztja. Ez a sok szabadon álló táblázat részben emiatt a tudatlanság miatt alakult ki az elmúlt 20-25 évben. Sok táblázatot már egyé gyúrtam és kereszthivatkozásokkal átjárhatóvá tettem őket egymásba, de ez sem az igazi. Egyszerűen nem képesek megérteni, hogy csak úgy új oszlopokat nem illik beszúrni valahova középre, mert akkor szétcsúsznak a másik táblázatok. Az index-hol.van függvények nem játszanak, mert sok az adat és nagyon lassítanának (meg talán másik táblázatba se lehet velük hivatkozni, de erre most nem vennék mérget).

Az biztos, hogy Access adatbázisokat össze lehet kapcsolni Excel táblázattal. Még nem igazán jártam utána a mikénteknek. Nekem az is fontos lenne, hogy ha valamit módosítanak, akkor az frissüljön be az Access-be. Csak az Access nem jó, mert sokat kell számolni is az adatokkal.
Azt tudom, hogy makróval teljes hozzáférés van az adatbázisokhoz, olyat makróim már vannak, amik bizonyos adatokat kimentenek adatbázisba.

Az Excelt nem szeretném teljesen elengedni, mert ki van használva azon funkciója is, hogy meg lehet belőle hívni a parancssort. Ez által már automatizáltam e-mail küldést, ahol a táblázatban vannak nyilvántartva a nevek, e-mail címek, csatolmányok (amik címzettenként eltérők, nem csak fájl szinten, hanem mennyiség szintjén is).
Szóval elég jól ki van használva az Excel minden képessége.

 

A kérdésem, hogy szerintetek mit csináljak? Kezdjem el átszervezni a nyers adatokat Access-be és akkor mindenhonnan elérhető válnak majd és csak azokat húzzam be mindig, amikkel éppen dolgozni kell. Vagy tudtok esetleg valami alternatív programot, ami ki tudna szolgálni és nem bonyolult a kezelése?

Egyáltalán képes normálisan együtt működni az Excel az Access-szel?

dorogszu Creative Commons License 2024.11.21 0 0 38282

https://files.fm/u/ycr22mt9hh      ide feltettem

 

Előzmény: Fferenc50 (38281)
Fferenc50 Creative Commons License 2024.11.21 0 0 38281

Szia!

Szerintem érdemes lenne megnézned hozzá az Excel Solver bővítményét. Elég jó szokott lenni. Ha teszel fel egy pár adatot tartalmazó akár képet, de fájl még jobb lenne, akkor példát is megpróbálok csinálni belőle.

Kérdés, ill. észrevétel: Szerintem nem a 2x(H+SZ)(! - kell a zárójel) távolságot kell felosztani, mert a H és SZ külön-külön kell áthidalhatónak lenni a "sarkok" miatt. Pl. H 3 és SZ 2 nem rendezhetó összekötő 5 használatával. Kell egy legalább 2 és egy legalább 3 összekötő. De lehet, hogy nem jól gondolom.

Üdv.

Előzmény: dorogszu (38278)
dorogszu Creative Commons License 2024.11.21 0 0 38280

:) nemmegy a metek abból nem vagyok jó:)

 

Előzmény: _Nyuszi (38279)
_Nyuszi Creative Commons License 2024.11.21 0 0 38279

Szia!

Tulképp ez egy hátizsák-problémára visszavezethető, nem?

Mármint hogy a probléma inkább matematikai, mint Excel programozási, jól érzem?

Előzmény: dorogszu (38278)
dorogszu Creative Commons License 2024.11.21 0 0 38278

Sziasztok!   A B oszlop hossz és szélesség alapján számoljon a képlet úgy hogy a hossz és a szélesség adatai alapján felépül egy négyzet majd azok "vonalait számolja ki úgy hogy egy adott méret a fix összekötők adatait használja fel a leggazdaságosabban de ha van maradvány azt elhanyagolja 

  • Négyzet vagy téglalap felépítése:

    • Az A (H) oszlopban a hosszadatok,
    • B (SZ) oszlopban a szélességadatok vannak. Ezek alapján felépít egy kerületet, amit négy vonal (két hosszanti és két szélességi oldal) ad ki.
  • Összekötők optimalizált használata:

    • Az Összekötők (M, N, O) oszlopai különböző fix méretű összekötőket tartalmaznak (pl. 0,73; 1,09; 2,07 stb.), amelyeket a hosszanti és szélességi vonalak lefedésére használ.
    • A számítás az összekötőket a leghatékonyabb módon próbálja felhasználni (kevesebb darab, nagyobb összekötők).
    • Ha nem tudja pontosan lefedni a vonalakat (pl. maradék miatt), akkor a maradékot figyelmen kívül hagyja.
  • Számítás menete (példa):

    • Hosszanti oldalak = 2×H,
    • Szélességi oldalak =2×SZ,
    • Az összes oldal teljes hossza = 2×H+SZ
    • Ezt a teljes hosszt próbálja felosztani a megadott méretű összekötőkkel.
  • Összegzés:

    • Az összekötők darabszámát külön oszlopokban (pl. M, N, O) adja meg a méret szerint.

Ha több variáció van akkor a leghosszabb fix méret a releváns  Köszönöm!   

dorogszu Creative Commons License 2024.11.21 0 0 38277

Sziasztok!   A B oszlop hossz és szélesség alapján számoljon a képlet úgy hogy a hossz és a szélesség adatai alapján felépül egy négyzet majd azok "vonalait számolja ki úgy hogy egy adott méret a fix összekötők adatait használja fel a leggazdaságosabban de ha van maradvány azt elhanyagolja 

  • Négyzet vagy téglalap felépítése:

    • Az A (H) oszlopban a hosszadatok,
    • B (SZ) oszlopban a szélességadatok vannak. Ezek alapján felépít egy kerületet, amit négy vonal (két hosszanti és két szélességi oldal) ad ki.
  • Összekötők optimalizált használata:

    • Az Összekötők (M, N, O) oszlopai különböző fix méretű összekötőket tartalmaznak (pl. 0,73; 1,09; 2,07 stb.), amelyeket a hosszanti és szélességi vonalak lefedésére használ.
    • A számítás az összekötőket a leghatékonyabb módon próbálja felhasználni (kevesebb darab, nagyobb összekötők).
    • Ha nem tudja pontosan lefedni a vonalakat (pl. maradék miatt), akkor a maradékot figyelmen kívül hagyja.
  • Számítás menete (példa):

    • Hosszanti oldalak = 2×H,
    • Szélességi oldalak =2×SZ,
    • Az összes oldal teljes hossza = 2×H+SZ
    • Ezt a teljes hosszt próbálja felosztani a megadott méretű összekötőkkel.
  • Összegzés:

    • Az összekötők darabszámát külön oszlopokban (pl. M, N, O) adja meg a méret szerint.

Ha több variáció van akkor a leghosszabb fix méret a releváns  Köszönom!

dorogszu Creative Commons License 2024.11.21 0 0 38276

Sziasztok!   A B oszlop hossz és szélesség alapján számoljon a képlet úgy hogy a hossz és a szélesség adatai alapján felépül egy négyzet majd azok "vonalait számolja ki úgy hogy egy adott méret a fix összekötők adatait használja fel a leggazdaságosabban de ha van maradvány azt elhanyagolja 

  • Négyzet vagy téglalap felépítése:

    • Az A (H) oszlopban a hosszadatok,
    • A B (SZ) oszlopban a szélességadatok vannak. Ezek alapján felépít egy kerületet, amit négy vonal (két hosszanti és két szélességi oldal) ad ki.
  • Összekötők optimalizált használata:

    • Az Összekötők (M, N, O) oszlopai különböző fix méretű összekötőket tartalmaznak (pl. 0,73; 1,09; 2,07 stb.), amelyeket a hosszanti és szélességi vonalak lefedésére használ.
    • A számítás az összekötőket a leghatékonyabb módon próbálja felhasználni (kevesebb darab, nagyobb összekötők).
    • Ha nem tudja pontosan lefedni a vonalakat (pl. maradék miatt), akkor a maradékot figyelmen kívül hagyja.
  • Számítás menete (példa):

    • Hosszanti oldalak = 2×H,
    • Szélességi oldalak =2×SZ,
    • Az összes oldal teljes hossza = 2×H+SZ
    • Ezt a teljes hosszt próbálja felosztani a megadott méretű összekötőkkel.
  • Összegzés:

    • Az összekötők darabszámát külön oszlopokban (pl. M, N, O) adja meg a méret szerint.

Ha több variáció van akkor a leghosszabb fix méret a releváns  Köszönom!

 

 

 

 

Garashan Creative Commons License 2024.11.13 0 0 38275

Szia!


Köszi. Távoli asztallal belépve az egyik gépen 2016-os van, de nem azon próbálták. Azt tudom, hogy 2016-os beszerzések voltak a munkaállomások és jó darabig én is azon dolgoztam, amit jelenleg is elérek távolról. Azon én telepítettem egyszer újra az officet. Így lehet, hogy a másikon egyel régebbi fut még.

Szóval a 2016-os verzióban szépen lefutott a kód.

 

Azért köszi a tippet, átírtam "add"-ra "add2"-ről. Nincs szükségem olyan funkcióra, ami csak az "add2"-ben van benne.

Előzmény: Fferenc50 (38274)
Fferenc50 Creative Commons License 2024.11.13 0 1 38274

Szia!

Milyen verzió alatt nem fut? Hol áll meg a hibával?

Ránézésre ez a sor:

Valtozok.Sort.SortFields.Add2

okozhat problémát, mivel az Add2 tulajdonságot később vezették be, nem elérhető korábbi verziókban (nem tudom mikortól sajnos).

Használd helyette 

Valtozok.Sort.SortFields.Add

utasítást.

Üdv. 

Előzmény: Garashan (38273)
Garashan Creative Commons License 2024.11.13 0 0 38273

Sziasztok!

Készítettem egy makrós excel dokumentumot. Nálam 2021-es  verzió alatt szépen fut hiba nélkül, viszont azt a visszajelzést kaptam, hogy máshol "Object doesn't support this property or method" hiba üzenetet ad.

 

A fájlt feltöltöttem ide: https://drive.google.com/file/d/11N0EHaFQAWOH-RXm2a89u_lquo9JUIZO/view?usp=drive_link
Ha esetleg valaki érez rá ingerenciát rá tudna nézni, hogy nála szépen lefut-e?

 

Röviden a működése:

"Változók" lap:

  • A oszlop: Adat érvényesítéshez nevek
  • B oszlop: a makrónak egy segéd oszlop

"Készlet mozgás" lap:

 

  • Gondolom ez egyértelmű. Bekerül a megfelelő dátum, konténer szám, cikkszám és mennyiség, valamint ha szükséges, akkor megjegyzés is a megfelelő oszlopba.

"Kimutatás" lap:

  • Bal felső cellában lévő logóval lehet futtatni a makrót, ami a következőt csinálja:
  • Változók B oszlop törlése
  • Készlet mozgás C oszlop másolása a Változók B oszlopába
  • Változók B oszlop ismétlődő adatok törlése, fejléc figyelembe vételével
  • Változók B oszlop cikkszámok növekvő sorba rendezése
  • Kimutatás fülön minden cellából törli a benne lévő adatot
  • Kimutatás A oszlopába átmásolja a cikkszámokat a 2. sortól kezdődően
  • Kimutatás 1. sorába bemásolja a konténer neveket, miközben kiszámolja, hogy az adott cikkszámból mennyi található az adott konténerben. Valamint beállítja a cella formátumát, hogy a nullák ne jelenjenek meg
  • Az első sorban a konténer neve és a sorszáma közötti szóközt kicseréli sortörésre

 

Takeoff. Creative Commons License 2024.11.08 0 0 38272

Köszönöm. 

Előzmény: Garashan (38270)
Takeoff. Creative Commons License 2024.11.08 0 0 38271

Köszönöm

Előzmény: Eredő Vektor (38269)
Garashan Creative Commons License 2024.11.07 0 0 38270

Én is úgy csináltam, ahogy Eredő Vektor leírta. Egy jóval tágabb intervallumot adtam meg a lekérdezéshez. Pl. a számlázóban is 2999.12.31-re szoktam minden vevői állandó akció lejárati dátumát állítani. Valószínűleg a program sem fog már akkor működni, ha meg mégis, akkor majd az utódom átírogatja őket :)
Leltár készlet érték számításnál kell nekem is az MNB árfolyam. Decemberben szoktam aktualizálni benne a cikkszámokat, januárban pedig az árfolyamokat. Utána ráérek kitölteni a megfelelő adatokat. Ha meg benne van közben olyan árfolyam is, amire nincs szükségem, akkor sem zavar sok vizet. Pár évente a feleslegesen régieket szoktam törölni.
A futár szolgálatok díjszabása pedig függ a NAV üzemanyag árától. Ott úgy van beállítva a táblázat, hogy minden megnyitáskor húzza le az aktuális év adatait. Így csak évente egyszer kell módosítani a lekérdezésen, mert az aktuális év adatai mindig más URL-en érhetőek el a NAV weboldalán... És még logika sincs az URL-ek felépítésében. Ez mondjuk kicsit szívfájdalmam.

2022: https://nav.gov.hu/ugyfeliranytu/uzemanyag/2022_uzemanyagar
2023: https://nav.gov.hu/ugyfeliranytu/uzemanyag/2023-ban-alkalmazhato-uzemanyagarak
2024: https://nav.gov.hu/ugyfeliranytu/uzemanyag/2024-ben-alkalmazhato-uzemanyagarak
Oké az utolsó kettő már nagyon hasonló, de nem csak az évszám változik. Volt olyan év, amikor az URL-ben még benne volt egy január nap is, amikor gondolom az első adatot közzé tették. Szóval ezt egyáltalán nem lehet automatizálni.

Előzmény: Takeoff. (38266)
Eredő Vektor Creative Commons License 2024.11.07 0 0 38269
Előzmény: Eredő Vektor (38267)
Eredő Vektor Creative Commons License 2024.11.07 0 0 38268

szóval a lényeg, hogy ez a tábla frissül, a tág intervallumot figyelembevéve belekerül az épp aznapi. Ebből fkeressel vagy akármivel fel tudod szedni ahová kell.

Előzmény: Eredő Vektor (38267)
Eredő Vektor Creative Commons License 2024.11.07 0 0 38267

weblekérdezés tökéletesen működik.

Adj meg webcímnek egy tágabb -ig időintervallumot, onnantól jó lesz

Előzmény: Takeoff. (38266)
Takeoff. Creative Commons License 2024.11.07 0 0 38266

Sziasztok!

Tudnátok abban segíteni, hogy hogyan lehet valutaárfolyamot menteni a táblázatba. Vagyis az a cél, hogyha megnyitom a táblázatot, akkor az aznapi (vagy legutolsó) MNB árfolyammal számolja át az árakat? Ami videókat találtam a neten, azok a lejkérdezést mutatják, de az csak a lekérdezés napjáig ad adatot, utána nem frissül.

Ronon Creative Commons License 2024.10.17 0 0 38265

Szia, köszönöm választ és hogy mindkét lehetőséget leirtad

Előzmény: Fferenc50 (38263)
Ronon Creative Commons License 2024.10.17 0 0 38264

Szia, Köszi szépen

Előzmény: Delila_10 (38262)
Fferenc50 Creative Commons License 2024.10.17 0 0 38263

Szia!

Ha csak az egyik vagy másik oszlopban szerepelhet, akkor a képlet:

=HA(HIBÁS(FKERES(C1;$A$1:$A$5000;1;0)=C1);HA(HIBÁS(FKERES(C1;$B$1:$B$5000;1;0)=C1);"Hiányzik!";"kiszállítva");"szerver")

Az A és B oszlopnál ne a teljes oszlopot add meg, hanem csak azt a tartományt, amely a listát tartalmazhatja - megfelelő nagyságban.

Ha arra is szükség van, hogy a kiszállítás tényét is megmutassa - azaz ha mindkét oszlopban előfordul a tétel, akkor a keresést meg kell fordítani:

=HA(HIBÁS(FKERES(C1;$B$1:$B$5000;1;0)=C1);HA(HIBÁS(FKERES(C1;$A$1:$A$5000;1;0)=C1);"Hiányzik!";"szerver");"kiszállítva")

Így a kiszállított tételnél a kiszállítva jelenik meg, ha nincs kiszállítva az első oszlopban levő tétel akkor a szerver szöveg jelenik meg.

Viszont a kiszállítva akkor is megjelenik, ha az első oszlopban nem található a tétel, de a másodikban benne van.

Üdv.

 

Előzmény: Ronon (38261)
Delila_10 Creative Commons License 2024.10.17 0 0 38262

Szia!

 

=HA(DARABHA($A$2:$A$10;C2)>0;"szerver";HA(DARABHA($B$2:$B$10;C2)>0;"kiszállítva";"Hiányzik"))

 

A tartományoknál értelemszerűen a 10 helyett az utolsó sor számát kell megadnod.

Előzmény: Ronon (38261)
Ronon Creative Commons License 2024.10.17 0 0 38261

Sziasztok

 

Abban kérném a segitséget, hogy termék válogatás lenne. Remélem az excel és ti tudtok benne segiteni.

Feladat:

"A" oszlopba van egy dmc (számsor) aminek cime "szerver",  "B" oszlopba van egy másik dmc (számsor) aminek cime "kiszállitva". "C" oszlopba scannelnénk be termékeket, tehát adnánk be egy másik dmc "számsort". Azt szeretnénk hogy "D" oszlopba mindig a "C" oszlopba bescannelt dmc számsor mellé irja ki, hogy " szerver" vagy " kiszállitva" attól függően hogy az szerepel az "A" vagy "B" oszlopban megadott dmc között. Ha nem szerepel se "A" se "B" tökéletes a "HIÁNYZIK" kifejezés amit alapból az excel függvény kir ha nincs találat.

 

Köszönöm

Takeoff. Creative Commons License 2024.10.14 0 0 38260

Köszönöm szépen!

Előzmény: Fferenc50 (38259)
Fferenc50 Creative Commons License 2024.10.14 0 0 38259

Szia!

Ez nem ilyen egyszerű, az Excel kényes jószág sajnos :(

Próbáld ki ezt:

Kijelölöd az A oszlopot. 

Adatok - Szövegből oszlopok - Kattintás a befejezésre.

Ez minden számot számmá fog alakítani és így megtalálja a táblázatban.

Aminél továbbra is hiba jelentkezik, az nincs benne a listában.

Üdv.

Előzmény: Takeoff. (38258)
Takeoff. Creative Commons License 2024.10.14 0 0 38258

Átállítottam mindkét oszlopot "Szövegre" de így sem működik. 

Előzmény: Fferenc50 (38257)
Fferenc50 Creative Commons License 2024.10.14 0 0 38257

Szia!

Az egyik helyen számként, a másik helyen szövegként vannak tárolva az értékek. A keresés csak azonos tipusú értékek között működik. 

Üdv.

 

Előzmény: Takeoff. (38256)
Takeoff. Creative Commons License 2024.10.14 0 0 38256

Szervusztok!

 

Tudna valaki segíteni, hogy egyes cellákben miért nem működik az FKERES? 

SirmanTeco2024.xls

 

Előre is köszönöm. 

Andyyy42 Creative Commons License 2024.10.11 0 0 38255

Szia,

 

neked is köszönöm szépen, h foglalkoztál vele!

Előzmény: pimre (38254)
pimre Creative Commons License 2024.10.11 0 1 38254

Szia, 

 

"Nem akarom elvenni pimre elől sem a lehetőséget, ...". Nekem az nem gond, hogy találtál egyszerűbb megoldást, mint az enyém. És ahogy látom a 38253-as válaszból. hogy működik. Örülök neki. 

Előzmény: Garashan (38248)
Andyyy42 Creative Commons License 2024.10.11 0 0 38253

Működik rendben!
Nagyon szépen köszönöm! 

Előzmény: Garashan (38252)
Garashan Creative Commons License 2024.10.11 0 0 38252

Szia!

Az első számsorhoz tartozó kód:

=KÖZÉP(A2;HA(HOSSZ(C2)=2;HA(VAGY(KÖZÉP(A2;3;1)="-";KÖZÉP(A2;3;1)=" ");4;3);1);SZÖVEG.KERES(" ";A2;HA(KÖZÉP(A2;3;1)=" ";4;1))-1-HOSSZ(C2))

Az utolsó számsorhoz tartozó kód:

=KÖZÉP(KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" - ";"@";(HOSSZ(A2)-HOSSZ(HELYETTE(A2;" - ";"")))/HOSSZ(" - ")))+3;99);HA(HOSSZ(E2)=2;HA(VAGY(KÖZÉP(KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" - ";"@";(HOSSZ(A2)-HOSSZ(HELYETTE(A2;" - ";"")))/HOSSZ(" - ")))+3;99);3;1)="-";KÖZÉP(KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" - ";"@";(HOSSZ(A2)-HOSSZ(HELYETTE(A2;" - ";"")))/HOSSZ(" - ")))+3;99);3;1)=" ");4;3);1);SZÖVEG.KERES(" ";KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" - ";"@";(HOSSZ(A2)-HOSSZ(HELYETTE(A2;" - ";"")))/HOSSZ(" - ")))+3;99);HA(KÖZÉP(KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" - ";"@";(HOSSZ(A2)-HOSSZ(HELYETTE(A2;" - ";"")))/HOSSZ(" - ")))+3;99);3;1)=" ";4;1))-1-HOSSZ(E2))

Előzmény: Andyyy42 (38251)
Andyyy42 Creative Commons License 2024.10.11 0 0 38251

Szia,

 

Gyorsan megnéztem, amit találtam hirtelen, olyan esetekben ha a dupla nagybetű és számkód között szóköz van, nem hozza a számkódot.

Ilyen pont nem volt a mintában, amit megadtam.... :-(

(csak a felsorolásnál említettem)

 

Egyébként, igen a "az egyes tulajdonság között szóközgondolatjelszóköz van" - ez így van, megállja a helyét.
(A példában az említett helyen én rontottam el.)

Előzmény: Garashan (38248)
Andyyy42 Creative Commons License 2024.10.11 0 0 38250

Szia,

 

oké - köszönöm szépen, este megnézem!

Előzmény: Garashan (38248)
Andyyy42 Creative Commons License 2024.10.11 0 0 38249

Köszönöm előre is! 

Előzmény: pimre (38247)
Garashan Creative Commons License 2024.10.10 0 0 38248

Nem akarom elvenni pimre elől sem a lehetőséget, de van a makrónál egyszerűbb dolog is, ha "az egyes tulajdonság között szóközgondolatjelszóköz van:ez a rész valóban megállja a helyét.

Viszont a példa fájlban a 4. sorban ki van hagyva egy szóköz a gondolatjel után.
Ha ez most emberi hiba miatt került bele így a példa fájlba és a program szabályosan generálja ezt a részét, akkor nincs baj, mert akkor az alábbi képlet megadja az utolsó csoportot:

=KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" - ";"@";(HOSSZ(A2)-HOSSZ(HELYETTE(A2;" - ";"")))/HOSSZ(" - ")))+3;99)

 

Ebből kiindulva én az alábbi képleteket használnám:

Első rész (Első két karakter, ha azok betűk)

=HA(HAHIBA(SZÁMÉRTÉK(BAL(A2;1));HAMIS);"";BAL(A2;2))

Második rész (Első számsor)

=KÖZÉP(A2;HA(HOSSZ(C2)=2;HA(KÖZÉP(A2;3;1)="-";4;3);1);SZÖVEG.KERES(" ";A2)-1-HOSSZ(C2))

Harmadik rész (Utolsó két dupla karakter)

=HA(HAHIBA(SZÁMÉRTÉK(BAL(KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" - ";"@";(HOSSZ(A2)-HOSSZ(HELYETTE(A2;" - ";"")))/HOSSZ(" - ")))+3;99);1));HAMIS);"";BAL(KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" - ";"@";(HOSSZ(A2)-HOSSZ(HELYETTE(A2;" - ";"")))/HOSSZ(" - ")))+3;99);2))

Negyedik rész (Utolsó számsor)

=KÖZÉP(KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" - ";"@";(HOSSZ(A2)-HOSSZ(HELYETTE(A2;" - ";"")))/HOSSZ(" - ")))+3;99);HA(HOSSZ(E2)=2;HA(KÖZÉP(KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" - ";"@";(HOSSZ(A2)-HOSSZ(HELYETTE(A2;" - ";"")))/HOSSZ(" - ")))+3;99);3;1)="-";4;3);1);SZÖVEG.KERES(" ";KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" - ";"@";(HOSSZ(A2)-HOSSZ(HELYETTE(A2;" - ";"")))/HOSSZ(" - ")))+3;99))-1-HOSSZ(E2))

Előzmény: Andyyy42 (38236)
pimre Creative Commons License 2024.10.10 0 0 38247

"...ha kettőnél több al-tulajdonság van felsorolva, akkor az első al-tulajdonságból kell a két nagybetűs kód és a az első al-tulajdonság számkódja, illetve mindig az utolsó al-tulajdonság dupla nagybetűs kódja és számkódja."

 

Értem, de a programnak akkor is végig kell mennie az egészen, hogy kiderüljön, melyik az utolsó.

 

Majd hétvégén átgondolom az egészet, és jelentkezem.

Előzmény: Andyyy42 (38245)
Andyyy42 Creative Commons License 2024.10.10 0 0 38246

Előzmény: Andyyy42 (38245)
Andyyy42 Creative Commons License 2024.10.10 0 0 38245

Szia,

 

Igen, jogos, az kimaradt :-(

 

Meg nekem, ha kettőnél több al-tulajdonság van felsorolva, akkor az első al-tulajdonságból kell a két nagybetűs kód és a az első al-tulajdonság számkódja, illetve mindig az utolsó al-tulajdonság dupla nagybetűs kódja és számkódja.

 

A köztes tulajdonságok adataira nincs szükségem.
Az megoldható?

 

Előzmény: pimre (38244)
pimre Creative Commons License 2024.10.10 0 0 38244

Szia, még nem tudom küldeni, mert jött egy újdonság. A mintáidból azt hittem, hogy nem lesznek benne ékezetes magyar karakterek. Viszont az é betűk magzavarták a 7. 8. stb. sorokban lévő adatokat. Így most egy képet küldök a futtatás eredményéről, aztán holnap utánanézek, mit tudok tenni.

 

 

Előzmény: Andyyy42 (38243)
Andyyy42 Creative Commons License 2024.10.10 0 0 38243

Szia,

Vmiért nem boldogulok.
Beleteszed ebbe kérlek?

 

(office 16-om van)

 

https://data.hu/get/14349041/pelda.xlsx

 

Köszönöm

Előzmény: pimre (38242)
pimre Creative Commons License 2024.10.10 0 0 38242

Szia, kezdem azzal, hogy borzasztóan nehéz ennyire következetlen adatbevitellel kezdeni valamit.

 

Én mindenesetre megpróbálkoztam az általad írt minta alapján úgy szétszedni az adataidat, hogy lehessen kezdeni valamit. 

 

Nem vacakoltam azzal, hogy az eredményt összefűzzem, és + jeleket tegyek az egyes részek közé. Csak annyit tettem, hogy a 10. (J) oszloptól kezdődően külön oszlopokban tegyem az egyes adatrészeket.

Feltételeztem továbbá, hogy van fejléc, ezért a 2. sortól indítottam a keresést. És mivel kevés példa volt, csak 3 mintával foglalkoztam:

 

GK-8201 Bgkfdez - BZ-88888 Jobtagj -UU-87896 Hjulohdt

8201 Bgkfdez - BZ-88888 Jobtagj -UU-87896 Hjulohdt

GK8201 Bgkfdez - BZ-88888 Jobtagj -UU87896 Hjulohdt

 

 

Ezeknél a program jól szedi szét a sorokat. Nézd meg, hogy a többi is működik-e.

 

Ez a program:

 

 

Option Explicit

Const kezdooszlop As Long = 10 '  oszlop

Sub konvertal()

Dim ws As Worksheet, utolsosor As Long, i As Long, sor As Long, celoszlop As Long, forrasstring As String, adatstring As String

Set ws = ActiveSheet

utolsosor = ws.Range("A" & Rows.Count).End(xlUp).Row

For sor = 2 To utolsosor

    celoszlop = kezdooszlop

    forrasstring = ws.Cells(sor, 1)

    Do

        If Not karkeres(forrasstring) Then Exit Do

        If Asc(UCase(Left(forrasstring, 1))) > 64 And Asc(UCase(Left(forrasstring, 1))) < 91 Then

            ws.Cells(sor, celoszlop) = Left(forrasstring, 2) ' Ha az első karakter betű, akkor úgy veszem, hogy a második is az. Enélkül túl bonyolult lenne

            forrasstring = Mid(forrasstring, 3)

        End If

        celoszlop = celoszlop + 1 ' Ha betű volt, akkor jó, egyébként a céloszlop üresen marad, és jön a következő

        If Not karkeres(forrasstring) Then Exit Do

        If Asc(Left(forrasstring, 1)) > 47 And Asc(Left(forrasstring, 1)) < 58 Then ' Ha szám

            adatstring = Left(forrasstring, 1)

            i = 2

            While Asc(Mid(forrasstring, i, 1)) > 47 And Asc(Mid(forrasstring, i, 2)) < 58 ' Amíg folyamatosan számok jönnek

                adatstring = adatstring & Mid(forrasstring, i, 1)

                i = i + 1

                If i > Len(forrasstring) Then forrasstring = forrasstring & " " ' Hogy ne akadjon ki

            Wend

            ws.Cells(sor, celoszlop) = adatstring

            forrasstring = Mid(forrasstring, i)

        End If

        celoszlop = celoszlop + 1

        If Not karkeres(forrasstring) Then Exit Do

        If Asc(UCase(Left(forrasstring, 1))) > 64 And Asc(UCase(Left(forrasstring, 1))) < 91 Then ' Ha karakter

            adatstring = Left(forrasstring, 1)

            i = 2

            While Asc(UCase(Mid(forrasstring, i, 1))) > 64 And Asc(UCase(Mid(forrasstring, i, 1))) < 91 ' Amíg folyamatosan betűk jönnek

                adatstring = adatstring & Mid(forrasstring, i, 1)

                i = i + 1

                If i > Len(forrasstring) Then forrasstring = forrasstring & " " ' Hogy ne akadjon ki

            Wend

            ws.Cells(sor, celoszlop) = adatstring

            forrasstring = Mid(forrasstring, i)

        End If

        celoszlop = celoszlop + 1

    Loop Until Len(forrasstring) = 0

'    Wend ' azután az egész kezdődik előlről, amíg van újabb tétel a sorban

Next sor

End Sub

Function karkeres(forrasstring) As Boolean

    karkeres = True

    While Not (Asc(UCase(Left(forrasstring, 1))) > 64 And Asc(UCase(Left(forrasstring, 1))) < 91 Or Asc(Left(forrasstring, 1)) > 47 And Asc(Left(forrasstring, 1)) < 58)

        forrasstring = Mid(forrasstring, 2) ' Ha nem karakter és nem szám, akkor töröljük

        If Len(forrasstring) = 0 Then

            karkeres = False ' Jelzi, hogy vége

            Exit Function

        End If

    Wend

End Function

 

 

 

 

Előzmény: Andyyy42 (38236)
Garashan Creative Commons License 2024.10.10 0 0 38241

Ez pedig, ha nem Excelben van eltárolva a kép, hanem mappából kell beilleszteni:

 

If Len(Dir(mappa + CStr(Cells(i, kepNevekOszlopa)) + ".jpg")) = 0 Then

'Ide kell jönnie egy hiba kezelésnek, hogy mi legyen akkor, ha nem létezik a kép

Else
On Error Resume Next
Set kep = ActiveSheet.Shapes(CStr(Cells(i, kepNevekOszlopa))).Delete
On Error GoTo 0
ActiveSheet.Shapes.AddPicture _
(Filename:=mappa + CStr(Cells(i, kepNevekOszlopa)) + ".jpg", _
linktofile:=msoFalse, savewithdocument:=msoCTrue, _
Left:=x + x1, Top:=y + y1, Width:=meret, Height:=meret).Name = Cells(i, kepNevekOszlopa)
End If

 

"mappa": az a változó, amiben a mappa elérési útvonalát tárolom, sima string

"i": long típusú változó, ebben az esetben a sornak a sorszámát jelöli.

"kepNevekOszlopa": szintén string. Ebben tárolom, hogy melyik oszlopban vannak a képek nevei. (Kiterjesztés nélkül, mert a ".jpg" kiterjesztés később kerül hozzáadásra)

"x": horizontális irányú eltolás az adott oszlopig

"x1": a kép méretéből adódó eltolás, hogy az oszlop közepére kerüljön a kép

"y": vertikális irányú eltolás az adott sorig

"y1": a kép méretéből adódó eltolás, hogy a sor közepére kerüljön a kép

Azaz az x, x1, y és y1 változóknak köszönhetően pontosan a cella közepére fog kerülni a beillesztendő képem.

"meret": a cella magasságából és szélességéből kalkulált érték. Mivel nálam 1:1 arányú képeket kell beilleszteni, így csak ellenőrzöm, hogy melyik méret a kisebb és az lesz egyenlő a mérettel.

 

Nálam az "x" értékét cikluson kívül határozom meg, mert fentről lefelé haladva illesztem be a képeket.

"x1", "y1" és a "meret" változó cikluson belül kalkulálódik minden egyes sornál. Bár törekszem az egységes táblázat formátumra, így gyakorlatilag mindig ugyan azt az értéket veszi fel egy-egy táblázat esetén.

"y" értékét pedig minden egyes ciklus végén növelem az adott sor magasságának megfelelően.
"i" értékét is növelem a ciklus végén, hogy a következő sorra ugorjunk a kép beillesztéssel

Előzmény: Trike. (38238)
Garashan Creative Commons License 2024.10.10 0 0 38240

Ebben a makró részletben egy másik munkalapról másolok át képet:

 

Dim MyPicture As Object
Dim MyTop As Double
Dim BottomRightCell As Range
Dim aktivcella As String
Dim i As Long
Dim kepnev As String
Dim kep As Shape
aktivcella = ActiveCell.Address

...

Variables.Shapes(kepnev).Copy

Range("L1:M2").Select
ActiveSheet.Paste
Variables.Range("C1") = Variables.Range("B1")
Range(aktivcella).Activate
With ActiveWindow.VisibleRange
r = .Rows.Count
Set BottomRightCell = .Cells(r, 12)
End With
Set MyPicture = ActiveSheet.Pictures(1)
MyTop = BottomRightCell.Top - MyPicture.Height - 5
With MyPicture
.Top = MyTop
.Left = 760
End With

 

"Variables": munkalap kódneve, amin a képeket tárolom

"kepnev": nagyon kreatívan azon változó, amiben a képnek a nevét tárolom. Esetemben generálom egy százalékos kifejezésből.

Előzmény: Trike. (38238)
Garashan Creative Commons License 2024.10.09 0 0 38239

Makróval meg lehet oldani, de azt vagy manuálisan kell lefuttatni vagy lehet automatizálni is a futtatását. Viszont ha sok a kép és automatizálva van a futtatás, akkor nagyon belassulhat az Excel.

Előzmény: Trike. (38238)
Trike. Creative Commons License 2024.10.09 0 0 38238

Sziasztok!

Vannak olyan képeim, amiket rendszeresen használok az Excelben, cella méretben.

Tud valaki megoldást arra, hogy a munkalapon, vagy egy másik munkalapon létrehozott "képtárra" lehessen hivatkozni?

 

Pl.: Ha az A1 cella tartalma 3, akkor a 3. kép jelenjen meg a B1 cellában a "képtárból" és így tovább.

Andyyy42 Creative Commons License 2024.10.09 0 0 38237

az eredmény:

Előzmény: Andyyy42 (38236)
Andyyy42 Creative Commons License 2024.10.09 0 0 38236

Sziasztok,

 

Hááát, nem tudom ezzel mit tudtok kezdeni.... 

A munkahelyi programba egy mondjuk termékhez, többféle adatsort, tulajdonságot, al-tulajdonságot, adatot, paramétert stb rögzítünk be.

Amikor kérünk egy lekérdezést, azt excelbe átimportálva hozza le.

 

Az egyik jellemző tulajdonsághoz több al-tulajodnág is tartozik, amiket a lekérdezésnél nem külön oszlopba hoz le, hanem egy cellába hozza őket, "-" jellel elválasztva.

 

Alapvetően egy tulajdonság így néz ki:
GK-8201 Bgkfdez =  azaz két nagybetű + számsor + betűsor (első nagybetűvel kezdve)

 

ha egy  tulajdonságához, több al-tulajdonság is tartozik, akkor azokat, ahogyan fent írtam egy cellába hozza, köztük gondolatjellel elválasztva:
pl: 2 tulajdonság lett berögzítve:
GK-8201 Bgkfdez - BZ-88888 Jobtagj

pl: 3 tulajdonság lett berögzítve:
GK-8201 Bgkfdez - BZ-88888 Jobtagj -UU-87896 Hjulohdt

 

A feladatom az lenne hogy ezekből az adatokból nyerjem ki az első nagybetűs kódot, aztán az első számsort, aztán az utolsó nagybetűs kódot és az utolsó számsort.
Azaz: GK-8201 Bgkfdez - BZ-88888 Jobtagj = > GK + 8201 + BZ + 88888
vagy: GK-8201 Bgkfdez - BZ-88888 Jobtagj -UU-87896 Hjulohdt => GK + 8201 + UU + 87896

 

A helyzetet tovább bonyolítja, hogy ezen tulajdonságok berögzítésénél pontatlanságok vannak:
van olyan, hogy lemarad a dupla nagybetűs kód:

pl: 8201 Bgkfdez - BZ-88888 Jobtagj -UU-87896 Hjulohdt

van olyan, hogy a nagybatűs kód és a számsor között nincs "-" jel:
pl: GK8201 Bgkfdez - BZ-88888 Jobtagj -UU87896 Hjulohdt

van olyan, hogy a nagybetűs betűkód és az azt követő számsor között szóköz van a "-" jel helyett:

pl: GK-8201 Bgkfdez - BZ 88888


A számsorok hossza változó 4-től kb 10 karakterig lehet bármilyen hossz
A számsor lehet, h nullával kezdődik, itt fontos, hogy maradjon meg a nulla is 

A dupla negybetűs kódok kb 30 féle verzióban fordulnak elő, azokat segédtáblán fel tudom sorolni, ha kell
2 tulajdonság a minimum (mint: GK-8201 Bgkfdez - BZ-88888 Jobtagj ), de ez elmehet akár egészen 8-ig, 10-ig is akár, amit ugye min egy cellába tesz össze a lekérdezés,
az egyes tulajdonság között szóközgondolatjelszóköz van:
pl: GK8201 Bgkfdez - BZ-88888 Jobtagj - UU87896  - BZ-88888 Jobtagj - UU87896 - GK-8201 Bgkfdez - BZ 88888



az eredményül kapott 4 adatsor (első dupla nagybetűs kód + első számsor + utolsó dupla nagybetűs kód + utolsó számsor) külön cellában szerepeljen
Ha valahol kimarad a dupla nagybetűs kód ott, mondjuk vagy üres maradjon az eredmény cella, vagy mondjuk tegye be, hogy "hiányzik"

és mindez VBA-ban legyen megoldva 

 

szóval kb így nézzen ki:

 

 

Megoldható?

 

Köszönöm

 

Garashan Creative Commons License 2024.10.02 0 0 38235

Nincs mit, nagyon szívesen!

 

Amúgy a formátumnál alapértelmezetten a pozitív, negatív és a nulla esetén megjelenő formátumokat is megadjuk.

Viszont ha eltérő formátumot szeretnénk mondjuk a negatív számok esetén, akkor azt az első pontosvessző után kell megadni.

Ha pedig nulla érték esetén szeretnénk más formátumot, akkor azt a második pontosvessző után kell megadni.

 

Nálad az volt a trükk, hogy ha negatív lett az eredmény, akkor a pontosvessző után nem adtunk meg formátumot. Így azt üresnek veszi és nem jelenít meg semmit sem negatív eredmény esetén.

Előzmény: Bali-G (38234)
Bali-G Creative Commons License 2024.10.02 0 1 38234

Köszönöm !


Jól volt a formátum, csak a ; maradt ki a végéről, így már eltűnt a #####-ok
Köszönöm a segítséget 

Előzmény: Garashan (38233)
Garashan Creative Commons License 2024.10.02 0 0 38233

Oda is be kell állítani az "ó:pp;" formátumot, mert szerintem azt elfelejtetted. Macskakaparások nélkül, de a pontos vessző legyen ott a végén.

Előzmény: Bali-G (38232)
Bali-G Creative Commons License 2024.10.02 0 0 38232

Szia ,Köszönöm !


Igen sikeres volt a függvény és igen lehet ott elírtam ..

Viszont olyat is meg lehet, hogy a,+ - oszlopba ne mutassa a #####,csak ahol adat van ?

Előzmény: Garashan (38231)
Garashan Creative Commons License 2024.10.01 0 0 38231

Ha jól értem a megoldandó feladatot, akkor a következő képleteket tudom javasolni:

A2: te töltöd ki

B2: te töltöd ki

C2: =B2-A2
C2 formátum: ó:pp

D2: te töltöd ki x-el

E2: =HAHIBA(IDŐ(8;30;0)-C2-HA(D2="x";0;IDŐ(0;30;0));"")

E2 formátum: ó:pp;

F2: =E2*-1

F2 formátum: ó:pp;

G2: =(C2-IDŐ(8;HA(D2="x";30;0);0))*24*60

G2 formátum: 0

 

Ha azt szeretnéd, hogy az órákat is mindig két számjegyesen jelenítse meg, akkor "ó" helyett "óó"-t írj.

E2 és F2 formátumnál fontos, hogy az "ó:pp" után még kerüljön egy pontos vessző is.

 

Szerintem te rosszul számoltad a mínusz és a plusz időket. Számomra az a logikus, hogy ha a 2. sort vesszük alapul, akkor az emberünk bent volt 7 óra 30 percet és közben kivett egy fél órás ebédszünetet. Azaz 7 órát dolgozott a valós 8 helyett, így a mínusz oszlopba "1:00" kifejezésnek kellene kerülnie.

 

 

Előzmény: Bali-G (38230)
Bali-G Creative Commons License 2024.10.01 0 0 38230

A képet nem rakta hozzá


Előzmény: Bali-G (38229)
Bali-G Creative Commons License 2024.10.01 0 0 38229

Sziasztok !

Mellékelek egy táblázatot ami Zöldel jelölt cellákat én töltöm ki ,és a kiszámolja a C oszlopba a eltöltött időt ,ez nem bonyi.
Aztán a D oszlopba ha „x”-elem akkor a 8 órából lesz 8 óra 30 perc (ledolgozzuk az ebédet),a különbözetet két oszlopra osztottam (de lehet meg lehet csinálni egy oszlopba is) ami kiírja hogy menny a plusz óra vagy mínusz óra .
Itt csak egy adatnak kéne megjelennie vagy a mínusz vagy a plusz
„G” oszlopba viszont percet szeretnék megyjeleniteni ,de úgy ha minuszos akkor mínusz elöjellel írja ki .
sokmindent probáltam már Mesterséges inteligenciával ,de értetlen és nem is müködtek pontosan ,de lehet én voltam béna ,gondolom fontos a cella formátum is
Ebben kérnék segítséget
Vagyis csak a A B és a  oszloba irok adatot ,a többi függvény
Köszönöm

bé.laci Creative Commons License 2024.09.18 0 1 38228

Ill. ma , miután majd felébredtem :)

Előzmény: bé.laci (38227)
bé.laci Creative Commons License 2024.09.18 0 1 38227

Hű, nagyon köszönöm. Holnap értelmezem és kipróbálom.

Előzmény: Garashan (38226)
Garashan Creative Commons License 2024.09.17 0 0 38226

Szia!

 

Kicsit belekavarodtam a problémádba, hogy mit is szeretnél.

 

B2 cellába a képlet:

=HA($A2=1;B$1;HA($A2=2;SZUM(B$1:C$1);HA($A2=3;SZUM(B$1:D$1);HA($A2=4;SZUM(B$1:E$1);SZUM(B$1:F$1)))))

 

Ez gyakorlatilag A2=1;2;3;4;5 értékre működik. Jobbra és lefelé is húzható.

Eddig egyszerű volt a dolog, mert csak számokat kellett összeadni :)

 

Ezután jött a nem teljesen tiszta rész.

Az oké, hogy B4-be (nálam, hogy inkább elkülönüljön B5-be) kerül az aktuális készlet. És ebből szépen kivonogatom a B1-ben lévő cella értékét egészen addig, amíg nullát nem kapok. Csak azt nem értem, hogy ennek mégis mi köze van a B2:H3 tartományban lévő számokhoz. Mert én úgy értelmeztem, hogy B1-ben van egy féle termék heti rendelése, C1-ben pedig egy másik termék heti fogyása, stb.
Így nem értem, hogy mégis mit számolunk B2-ben, mármint mi köze van az egyik terméknek a másikhoz.

 

Az általam B6-ban használt képlet:

=HA(B$5-1*B$1>0;HA(B$5-2*B$1>0;HA(B$5-3*B$1>0;HA(B$5-4*B$1>0;HA(B$5-5*B$1>0;HA(B$5-6*B$1>0;HA(B$5-7*B$1>0;HA(B$5-8*B$1>0;HA(B$5-9*B$1>0;HA(B$5-10*B$1>0;10;9);8);7);6);5);4);3);2);1);0)

 

Nem túl elegáns, de makró nélkül csak erre futja. Amikor 10-et ír ki eredménynek, akkor bármilyen 9-nél nagyobb szám lehetne ott, de tovább már nincs vizsgálva.

Előzmény: bé.laci (38225)
bé.laci Creative Commons License 2024.09.17 0 0 38225

Sziasztok!

 

Azt szeretném kérdezni, hogy képlettel meg lehet-e oldani, hogy a barack színű cellákban a következő eredmény jelenjen meg a kép alatt részletezett logika szerint

 

 

 

Az első sor egy adott számsor.

 

A2-ben egy megadott szám szerepel - esetünkben 2 , és azt szeretném, hogy B2-ben adja össze B1-et és C1-et (2 cellát), C2-ben C1-et és D1-et, stb.

 

A harmadik sorban B3-ban már 3 számot szeretnék összeadni, B1-et, C1-et és D1-et.

 

A felső sor egy cikkre vonatkozó vevő megrendelési/előrejelzési sor lenne, és alapvetően azt szeretném megoldani, hogy a táblázatom megjelenítse, hogy

 

- ha mondjuk 2 vagy 3 heti biztonsági készletet szeretnék tartani, az darabban mit jelentene, úgy, hogy ugye a heti igény nem állandó, ill. cikkenként eltérhet az elvárt biztonsági készletszint, amit közben lehet növelni vagy csökkenteni is.

 

 

Azt is szerezném tudni, hogy ha mondjuk nekem B4-ben lenne mondjuk egy 16000-es készletem, ki tudnám-e számoltatni képlettel, makró nélkül, hogy ez meddig fedezné az igényt/hány heti igényt fedezne - magyarul ha ebből elkezdeném kivonni az első sor értékeit, hányadik cellánál menne át negatívba. 

 

Szerintem képlettel nem lehet megoldani, de ha mégis, még nem jöttem rá hogyan.

 

Előre is köszönöm a segítséget!

m54-b Creative Commons License 2024.09.10 -1 0 38224

"Eredő úr! Már megint elaludt a munkáján! Ki van rúgva!"

Előzmény: Eredő Vektor (38222)
m54-b Creative Commons License 2024.09.10 -1 0 38223

"Van nekem egy csíkos gatyám

abban hordom a ceruzám

minden este írok vele"

Előzmény: XNC (38220)
Eredő Vektor Creative Commons License 2024.09.10 0 0 38222

Nem szeretnék együtt aludni a munkámmal...

Előzmény: Delila_10 (38221)
Delila_10 Creative Commons License 2024.09.08 0 0 38221

... vagy Ctrl+C, Ctrl+V-vel.

Előzmény: XNC (38220)
XNC Creative Commons License 2024.09.08 0 0 38220

Ebbe filctollal kell írni?

Előzmény: m54-b (38201)
Garashan Creative Commons License 2024.09.07 0 0 38219

Köszi szépen! Így tényleg nem fut hibára.

 

"a változtatást bevastagítottam": ezt a részt nem teljesen értettem. Viszont rögtön megvilágosodtam, amint számítógépen néztem meg. Valamiért telefonon nem volt kiemelve félkövérrel. :)

 

Mondjuk az továbbra sem tiszta, hogy eddig miért működött és most egy windows + office újratelepítés után miért fut hibára. Elvileg ugyan az a windows verzió és ugyan az az office verzió került vissza, lévén ugyan azzal a licence kóddal aktiváltam mint ezelőtt.

Tavaly szeptemberben p.imre-vel leveleztem szintén egy makró probléma miatt.

Ott a következő problémába ütköztem:

Variables.Shapes(kepnev).Copy

A "Variables" egy munkalap kódneve. A "kepnev" pedig a makró által kiszámított képnév. Az volt a kérés, hogy vizualizáljam meg egy teherautó telítettségét a megrendelő lapon. Maga a képnév "kocsixxx" formátumú volt, ahol xxx a telítettség volt 5%-ban kifejezve.

Az egész makrót a céges gépemen írtam meg anno egy másik dokumentumban. Utána itthon egy új dokumentumba emeltem át és ha a saját gépemen nem volt ez a sor megduplázva, akkor az esetek kb. 50%-ban nem másolta ki a képet és a makró hibával leállt, mert nem tudott mit beilleszteni. Az eredeti makrót évekig használtuk a cégnél és sohasem futottunk vele hibába, pedig elég sűrűn volt használva.

A sor duplikálás után írtam egy AHK scriptet és egy éjszakán át módosított a cellákon, hogy fusson le újra és újra a makró. Akkor már nem futott egyszer sem hibába. Ha jól emlékszem, akkor 5 másodperc volt a script időzítése, tehát óránként lefutott 720 alkalommal, 4-5 órán át biztosan futott. Szóval úgy voltam vele, hogy ha ez idő alatt nem fut hibára, akkor a hiba lehetősége már elhanyagolható.

További érdekesség, hogy p.imre-nél nem produkálta a hibát, valamint mint említettem a céges gépeken sem. Pedig bent is 6-8 gépen biztosan volt használva az évek alatt.

Előzmény: Fferenc50 (38218)
Fferenc50 Creative Commons License 2024.09.06 0 0 38218

Szia!

Szerintem próbáld így: (a változtatást bevastagítottam)

'Copy/Paste Cell Range as a Picture
Selection.CopyPicture
ActiveSheet.Pictures.Paste(link:=False).Select
Set ActiveShape = ActiveSheet.Shapes(ActiveWindow.Selection.Name)

'Create a temporary chart object (same size as shape)
Set cht = ActiveSheet.ChartObjects.Add( _
Left:=ActiveCell.Left, _
Width:=ActiveShape.Width, _
Top:=ActiveCell.Top, _
Height:=ActiveShape.Height)
cht.Select
'Format temporary chart to have a transparent background
cht.ShapeRange.Fill.Visible = msoFalse
cht.ShapeRange.Line.Visible = msoFalse
'Ha ezeket nem kommentelem, akkor idióta hibát dob.

'Copy/Paste Shape inside temporary chart
ActiveShape.Copy
cht.Activate
ActiveChart.Paste

(csak a makró egy részét másoltam ide.)

Remélem, sikerülni fog.

Üdv.

Előzmény: Garashan (38217)
Garashan Creative Commons License 2024.09.06 0 0 38217

Itt a teljes függvény:

 

 

 

Sub SaveRangeAsPicture()
Dim cht As ChartObject
Dim ActiveShape As Shape

'Confirm if a Cell Range is currently selected
If TypeName(Selection) <> "Range" Then
MsgBox "You do not have a single shape selected!"
Exit Sub
End If

'Copy/Paste Cell Range as a Picture
Selection.Copy
ActiveSheet.Pictures.Paste(link:=False).Select
Set ActiveShape = ActiveSheet.Shapes(ActiveWindow.Selection.Name)

'Create a temporary chart object (same size as shape)
Set cht = ActiveSheet.ChartObjects.Add( _
Left:=ActiveCell.Left, _
Width:=ActiveShape.Width, _
Top:=ActiveCell.Top, _
Height:=ActiveShape.Height)

'Format temporary chart to have a transparent background
' cht.ShapeRange.Fill.Visible = msoFalse
' cht.ShapeRange.Line.Visible = msoFalse
'Ha ezeket nem kommentelem, akkor idióta hibát dob.

'Copy/Paste Shape inside temporary chart
ActiveShape.Copy
cht.Activate
ActiveChart.Paste

'Save chart to User's Desktop as PNG File
cht.Chart.Export "D:temp" & Range("S12").Value & " - " & Range("S13").Value & ".jpg"

'Delete temporary Chart
cht.Delete
ActiveShape.Delete

End Sub

 

Előzmény: Fferenc50 (38216)
Fferenc50 Creative Commons License 2024.09.06 0 0 38216

Szia!

A cht Chartobjectedre Select utasítás van kiadva?

Üdv.

Előzmény: Garashan (38215)
Garashan Creative Commons License 2024.09.06 0 0 38215

Belefutottam egy hibába.

Mint azt korábban írtam (vagy nem) elszállt a rendszer SSD-m és újra kellett telepíteni a Windowst és az Officet is.

Windwos: W10

Office verzióm: Professional Plus 2021 (legális verzió, legfrissebb frissítések is telepítve)

Excel verzióm: 2408 (Build: 17928.20114)

 

Van egy makróm, ami a következőket csinálja:
-egy lista alapján változtatja a következő dolgokat és végigmegy a listán

--cikkszám

--termék leírás

--cikkszámhoz tartozó vonalkód

-ha beállított mindent a cikkszámnak megfelelően, akkor kijelöl egy megfelelő range-et

-a kijelölt területből generál egy képet (azaz kb. azt csinálja, mint a GIMP következő parancsa: kép a láthatóak alapján)

-elmenti ezt a képet

-majd törli a képet a dokumentumból

-és végül ugrik a lista következő elemére

 

Van egy pont, ahol beállítom a ChartObject két paraméterét:

cht.ShapeRange.Fill.Visible = msoFalse
cht.ShapeRange.Line.Visible = msoFalse

 

Az újratelepítés előtt ezzel szépen működött a kód. Most viszont, ha ezek nincsenek kikommentelve, akkor a

cht.Chart.Export "D:temp" & Range("S12").Value & " - " & Range("S13").Value & ".jpg"

sor hibára fut.

A hiba fejléce: Microsoft Visual Basic for Applications

A hiba szövege: System Error &H80004005 (-2147467259). Meghatározatlan hiba

Egyrészt nem tudom, hogy miért jött elő ez a hiba. Másrészt, ha a fenti két paraméter nincs beállítva, akkor az elmentett kép fájlnak lesz egy 1px széles szürke kerete.

Valakinek valami ötlete?

pimre Creative Commons License 2024.08.30 0 1 38214

Sajnos nekem a kép alapján nem derül ki, hogy milyen adatokra hivatkozik az adatforrás. Ha nem bizalmasak az adatok, akkor elküldhetnéd a fájlt magát. Ha bizalmasak, akkor a tényleges nevek és adatok helyett más szöveget irva talán kideríthetné valaki, hogy mi a hiba.

 

 

Előzmény: hellsing (38199)
local75 Creative Commons License 2024.08.30 0 0 38213

Megoldottam makróval, mivel a GPT szerint az excel hektikussága is okozhatja.

Előzmény: local75 (38210)
Garashan Creative Commons License 2024.08.30 0 0 38212

Szerintem megvan a megoldás. Próbálkozz a cella típus megváltoztatásával, mindenhol legyen szám vagy dátum. Csak a lényeg, hogy egységes legyen.

Lehet, hogy a fejlécek szövegét újra kell írni. De 4 db esetén nem akkora probléma.

 

Az a tippem, hogy egy részét dátumként kezeli, míg a másik felét számként.

Előzmény: hellsing (38208)
local75 Creative Commons License 2024.08.30 0 0 38211

Bocs, kijelöli C2-őt, tehát a hivatkozás működik, csak néha felvisz a lap tetejére néha nem.

Más megoldás létezik?

Előzmény: local75 (38210)
local75 Creative Commons License 2024.08.30 0 0 38210

Sziasztok!

Az miért van hogy néha működik egy hivatkozás, néha nem?

Van egy pivot táblám, és a fejlécre hivatkozok, hogy vigyen fel a lap tetejére, és ne kelljen a 2000 sort végig görgetni.

hellsing Creative Commons License 2024.08.29 0 0 38209

Módosítom: a 2024-et bárhova tehetem, csak a sorrendben az utolsó helyre (a helyére) nem. Nem hajlandó oda kerülni.

Előzmény: hellsing (38207)
hellsing Creative Commons License 2024.08.29 0 1 38208

Sajnos m54-b olvtárs megoldása nem működik. Az az érdekes, hogy ha a 2024-et teszem az 1-3. helyre, akkor azonnal oda kerül a Jelmagyarázatban is, de ha a 4. helyre teszem (a helyére), akkor a 3.-on marad. Próbáltam azt is, hogy az 1.-re teszem, aztán elé tolok mindent, de csak a 3.-ig hajlandó lecsúszni.

 

Egyetlen különbség van a 3 évszám között: 2021-22-23 fixen meg van adva, 2024 egy névvel ellátott cellára mutató hivatkozás eredménye (=thisYear). De az se segít, ha csak az évszámot írom a cellába.

 

Kínomban meghekkeltem, a jelmagyarázatot kivágtam, átrendeztem, töröltem és képként beillesztettem. Csak el ne felejtsem 2025 januárjában lecserélni :)

Előzmény: pimre (38203)
hellsing Creative Commons License 2024.08.29 0 0 38207

Szia, akármit próbálok, nem változik a sorrend. Először átrendeztem a sorrendet (eddig normál volt: 2021-2024, átállítottam 2024-21-22-23-ra), de semmi, 2021-22-24-23 maradt. Ki- és bekapcsoltam a Jelmagyarázatot a "Diagram-összetevő hozzáadása" pontban, de semmi, csak elveszítettem a szövegformázást (könnyen visszaállítottam).

 

Úgy tűnik, hogy találtam egy bugot.

Előzmény: Fferenc50 (38200)
Garashan Creative Commons License 2024.08.29 0 0 38206

Ha a cikkszámok az A oszlopban vannak, akkor én így oldanám meg.

A képlet a B2 cellában: =HA(DARABHA(A:A;A2)>1;A2&"_"&DARABHA($A$1:A2;A2);A2)
Feltételezve, hogy az első sorban oszlop nevek vannak.
Ha nincsenek oszlop nevek, akkor meg csak felhúzod a képletet a B2-ből B1-be is.

 

Annyit csinál, hogy ha egy cikkszámból több van, akkor mögé szúr egy alsó vonást és az aktuális sorszámot. Ha csak 1 darab van a cikkszámból, akkor meghagyja az eredeti.
Célszerű összesen egy alkalommal így módosítani a cikkszámokat és elmenteni őket az eredeti adatbázisban, mert ha legközelebb más sorrendben lesz a lekérdezés, akkor össze fognak keveredni az új cikkszámok.

Előzmény: Sigma18-200 (38204)
Fferenc50 Creative Commons License 2024.08.29 0 0 38205

Szia!

Nem tudom melyikre gondoltál, de próbáld meg magyar függvénynevekkel:

Countif =Darabha

Exact =Azonos

Countifs=Darabhatöbb

Üdv.

Előzmény: Sigma18-200 (38204)
Sigma18-200 Creative Commons License 2024.08.29 0 0 38204

hello

ezt szeretém megoldani

van sok cikkszámom, de amiből többféle szín van (termék), ugyanazon a cikkszámon szerepel mind, na ezeket kellene sorszámozni...

cikkszam_1 (fekete)

cikkszam_2 (piros)

...

 

elég sok termék, ezért lenne jó vmi függvény...

angolul megtaláltam, de nem működik nálam...

 

 

köszi!!!

pimre Creative Commons License 2024.08.29 0 0 38203

A megoldást nem én találtam meg, hanem m54-b olvtárs:http://forum.index.hu/Article/viewArticle?a=167577220&t=9009340

Előzmény: hellsing (38199)
Delila_10 Creative Commons License 2024.08.29 0 0 38202

:D

Előzmény: m54-b (38201)
m54-b Creative Commons License 2024.08.28 0 1 38201

off

 

Fferenc50 Creative Commons License 2024.08.28 0 0 38200

Szia!

Ha változtatod az adatok sorrendjét, akkor hogyan változik a jelmagyarázat sorrendje? (Annak elvileg követnie kellene a sorrendet.)

Próbáld ki, hogy leveszed a jelmagyarázatot, azután ismét megjeleníted. Lehet, hogy csak beragadt.

Üdv.

 

Előzmény: hellsing (38199)
hellsing Creative Commons License 2024.08.28 0 0 38199

Bocs, hogy ilyen sokára reagálok, szabin voltam és kiment a fejemből, hogy kérdeztem :) Köszönöm mindenkinek a segítő szándékot!

Itt a példa, hogy mi nem jó a grafikonban. Az adatok rendezésénél jó az évszámok sorrendje (2021-22-23-24), a megjelenő grafikonban viszont 2024 megelőzi 2023-at. Azóta sem jöttem rá, hogy mi a megoldás. Többször néztem, nincs a 2023-ban semmilyen elütés, láthatatlan karakter (pl. egy szóköz a szám előtt) vagy hasonló, ami a jelmagyarázatban a sor végére tolhatná 2023-at.


Előzmény: pimre (38136)
pimre Creative Commons License 2024.08.24 0 0 38198

Akkor elnézést kérek.

Előzmény: Nyáúkász (38197)
Nyáúkász Creative Commons License 2024.08.24 0 0 38197

Elolvasom, csak első esetben végül elakadtam, és a konkrét táblázatban is segítséget kellett kérnem, amit bizalmas adatok miatt nem oszthattam így meg, így végül privátban dolgoztunk a segítséget nyújtóval a megoldáson, így ott sikerült pontot tennünk az ügy végére. A második esetben valóban elmaradt a reagálás, sajnálom, ott azért maradt el, mert sokáig nem tudtam, hogy én nem értek hozzá, vagy a segítséget nyújtó hagyott ki valamit, mert mindig azt hittem, hogy lefagyott tőle az excel. Aztán utólag kiderült, hogy csinálta, csak konkrétan két óráig futtatta az excel a keresést, valószínűleg túl sok adat volt, de addigra már eltelt több hónap. 

Előzmény: Nyáúkász (38195)
XNC Creative Commons License 2024.08.24 0 0 38196

Hát na hallod..... Ehhez adatbázis-kezelő kell, és nem Excel.

Előzmény: Nyáúkász (38191)
Nyáúkász Creative Commons License 2024.08.24 0 0 38195

Köszönöm szépen, az első megoldást kipróbáltam, az jónak tűnik :) 

Előzmény: _Nyuszi (38192)
pimre Creative Commons License 2024.08.24 0 0 38194
Előzmény: Nyáúkász (38191)
_Nyuszi Creative Commons License 2024.08.24 0 0 38193

, A második tipphez: csinálhatsz esetleg olyant, hogy az oszlopokat úgy nevezed el, hogy 1, 2, 3, 4, 5, ... , 9, 10, >10.

Persze csak ha ez működik a játékok jellege miatt.

Előzmény: _Nyuszi (38192)
_Nyuszi Creative Commons License 2024.08.24 0 0 38192

Egyik ötletem: csinálsz egy -tól és egy -ig oszlopot, autoszűrővel pedig tudsz úgy szűrni, hogy a -tól oszlop esetén >=3, az -ig oszlop esetén pedig <=3.

A másik: minden látszámhoz csinálsz egy oszlopot: 1, 2, 3, 4, 5, 6, 7 stb. nevekkel, és amelyik játék az adott létszámmal játszható, oda beteszel egy X-et.

Ha nagylétszámú játékok is szerepelnek a listában (mint pl. számháború, fogócska), akkor ez igen sok oszlopot eredményez, az első módszer ott jobb lehet. Egyébként lehet a második is jó.

Előzmény: Nyáúkász (38191)
Nyáúkász Creative Commons License 2024.08.24 0 0 38191

Sziasztok!

Társasjáték várólistámhoz szeretnék készíteni egy excelt, ebben kérném a segítségeteket. Meg tudnátok mondani, hogy hogyan tudnék egy tól-ig tartományt beállítani? 
Az lenne a cél, hogy mindegyik társasjátékhoz beírom, hogy hány fővel játszható, van ami csak solo, van ami 1-2, van ami 2-4, de van 6-21 fővel játszható is, szóval elég széles sávon mozog a tartomány. Ezeket a tartományokat szeretném úgy beírni az excelbe, hogy ha később rászűrök az adott oszlopra, akkor ki tudjam választani például a 3 fővel játszható játékokat, és rá tudjak szűrni csak azokra. 

Lenne esetleg erre valami ötletetek? :) 

Előre is köszönöm a segítséget! 

local75 Creative Commons License 2024.08.08 0 0 38190

Akkor ezt nem értettem.

Így a tied is tökéletes.

 

Köszönöm szépen!

Előzmény: Fferenc50 (38188)
local75 Creative Commons License 2024.08.08 0 0 38189

Érdekességképpen, a GPT is írt nekem makrót:

Sub ConvertCSVtoMMandSave()
    Dim ws As Worksheet
    Dim cell As Range
    Dim lastRow As Long, lastCol As Long
    Dim conversionFactor As Double
    Dim tempValue As Double
    Dim csvFilePath As String
    Dim originalCSV As Workbook
    Dim newCSV As Workbook
    
    ' A konverziós tényező: 1 inch = 25.4 mm
    conversionFactor = 25.4
    
    ' Megnyitjuk a feltöltött CSV fájlt
    csvFilePath = Application.GetOpenFilename("CSV files (*.csv), *.csv")
    If csvFilePath = "False" Then Exit Sub ' Ha nem választottak fájlt
    
    Set originalCSV = Workbooks.Open(csvFilePath)
    Set ws = originalCSV.Sheets(1)
    
    ' Az utolsó sor és oszlop megkeresése
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
    
    ' Végigmegyünk az összes cellán, amely tartalmaz adatot
    For Each cell In ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastCol))
        ' Ellenőrizzük, hogy a cella számértéket tartalmaz-e
        If IsNumeric(cell.Value) Then
            ' Konvertáljuk az értéket milliméterre
            tempValue = cell.Value * conversionFactor
            ' Az új értéket visszaírjuk a cellába
            cell.Value = Format(tempValue, "0.000000")
        End If
    Next cell
    
    ' Elmentjük a módosított fájlt új CSV-ként
    csvFilePath = Application.GetSaveAsFilename("Modified_" & originalCSV.Name, "CSV files (*.csv), *.csv")
    If csvFilePath = "False" Then Exit Sub ' Ha nem választottak mentési helyet
    
    Application.DisplayAlerts = False
    originalCSV.SaveAs Filename:=csvFilePath, FileFormat:=xlCSV, Local:=True
    Application.DisplayAlerts = True
    
    ' Bezárjuk az eredeti CSV fájlt
    originalCSV.Close SaveChanges:=False
    
    ' Felhasználó értesítése
    MsgBox "A fájl sikeresen konvertálva és elmentve milliméterben.", vbInformation
End Sub

Nem lett jó, de imádom ahogyan elmagyarázza a dolgokat:)

 

 

Hogyan használd a makrót:

  1. Hozz létre egy új Excel fájlt: Nyiss egy új munkafüzetet az Excelben.
  2. Nyisd meg a VBA szerkesztőt: Nyomd meg az ALT + F11 billentyűkombinációt.
  3. Illeszd be a kódot: Kattints az "Insert" menüre, válaszd a "Module" opciót, majd illeszd be a fenti kódot.
  4. Futtasd a makrót: Zárd be a VBA szerkesztőt, majd nyomd meg az ALT + F8 billentyűkombinációt, válaszd ki a ConvertCSVtoMMandSave makrót, és kattints a "Run" gombra.
  5. Válaszd ki a CSV fájlt: A makró kérni fogja, hogy válaszd ki a fájlt, amelyet konvertálni szeretnél.
  6. Válaszd ki a mentési helyet: A makró kérni fogja, hogy válaszd ki a mentési helyet és nevet az új CSV fájlnak.

 

Fferenc50 Creative Commons License 2024.08.08 0 1 38188

Szia!

Mivel kész munkalapot kapsz a számok átalakítása után, akkor a makródnak ez a része:

    'szövegből oszlop
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :=",", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
        1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12 _
        , 1), Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), _
        Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array( _
        25, 1), Array(26, 1), Array(27, 1)), TrailingMinusNumbers:=True

nem szükséges.

Üdv.

Előzmény: local75 (38185)
local75 Creative Commons License 2024.08.08 0 0 38187

Köszönöm szépen neked is és mindenkinek!
Jó éjt neked!

Előzmény: Fferenc50 (38186)
Fferenc50 Creative Commons License 2024.08.08 0 0 38186

Szia!
Fújd ki magad. Holnap is nap lesz.

Jó éjszakát!

Üdv.

Előzmény: local75 (38184)
local75 Creative Commons License 2024.08.08 0 0 38185

Ja igen, ez lemaradt.

ezt nem értettem mit kell csinálnom: "de csak a karakterátalakítás és a másolás kell"

Előzmény: local75 (38183)
local75 Creative Commons License 2024.08.08 0 0 38184

Szuper!
Nagyon köszönöm!
Ezt össze tudjuk még kombinálni a Feri makrójával, hogy külső fájlból tudjam indítani?
Bocsi, de már tényleg nem fog az agyam.

 

Illetve a kérdés. Pimre fórumtárs felvetette hogy: "Viszont, ha makrót írok, akkor gondoskodni kell arról, hogy véletlenül se futhasson a makró egy olyan sorra, amely már át lett alakítva mm-be."

 

Ezzel lehet hogy annyit kezdek, hogy a makródba rögzítek egy sort, ami beilleszt mondjuk egy piros felkiáltójelet látható helyre. vagy szöveget, hogy "Milliméterre átváltva!"

 

Vagy érzékeli a makród, ha már át lett alakítva?

Előzmény: Garashan (38182)
local75 Creative Commons License 2024.08.08 0 0 38183

Ez sajnos ugyanolyan.
Bár, ezt a mondatodat nem értem, így biztosan én csinálok rosszul valamit.

Az a helyzet hogy az őrület határán vagyok. :) Nem tudom ti hogyan tudtok még a kódolásra is figyelni.

Két monitorom van, de készen vagyok ettől az exceltől, hogy mennyire kőkorszaki.
Miért nem tudják úgy megcsinálni, mint egy böngészőt, vagy a Figmát, hogy felül szépen ott vannak a lapfülek?

Az excel meg ahány táblázat, annyi ablak..

Előzmény: Fferenc50 (38180)
Garashan Creative Commons License 2024.08.08 0 1 38182

Most már ezzel is működik. Rögtön az első adatsor volt "hibás". Vagyis nem volt benne adat, de most már van benne hibakezelés.

Előzmény: local75 (38179)
Garashan Creative Commons License 2024.08.08 0 1 38181

Option Explicit

Public Sub atvalto()
Dim tizedeselvalaszto As String
tizedeselvalaszto = ","
Dim lenx, leny, lenz As Double
Dim lenxpoz, lenypoz, lenzpoz, templong, utolsosor As Long
Dim i, j As Long
Dim szoveg, cimsor As String
Dim x, y, z As Variant
Dim hiba As Boolean
cimsor = Range("A1")
lenxpoz = InStr(1, cimsor, "LENX")
lenxpoz = CountChrInString(Left(cimsor, lenxpoz), ",")
lenypoz = InStr(1, cimsor, "LENY")
lenypoz = CountChrInString(Left(cimsor, lenypoz), ",")
lenzpoz = InStr(1, cimsor, "LENZ")
lenzpoz = CountChrInString(Left(cimsor, lenzpoz), ",")
utolsosor = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
For j = 2 To utolsosor
szoveg = Range("A" & j)

'X mérete
templong = 0
For i = 1 To lenxpoz
templong = InStr(templong + 1, szoveg, ",", vbTextCompare)
Next i
On Error GoTo hibajeloles
x = CStr(Round(CDbl(Replace(Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2), ".", tizedeselvalaszto)) * 25.4, 0)) & " mm"
On Error GoTo hibajeloles
szoveg = Left(szoveg, templong - 1) & Replace(szoveg, Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2), x, templong, 1)

'y mérete
templong = 0
For i = 1 To lenypoz
templong = InStr(templong + 1, szoveg, ",", vbTextCompare)
Next i
On Error GoTo hibajeloles
x = CStr(Round(CDbl(Replace(Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2), ".", tizedeselvalaszto)) * 25.4, 0)) & " mm"
szoveg = Left(szoveg, templong - 1) & Replace(szoveg, Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2), x, templong, 1)

'Z mérete
templong = 0
For i = 1 To lenzpoz
templong = InStr(templong + 1, szoveg, ",", vbTextCompare)
Next i
On Error GoTo hibajeloles
x = CStr(Round(CDbl(Replace(Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2), ".", tizedeselvalaszto)) * 25.4, 0)) & " mm"
Range("A" & j) = Left(szoveg, templong - 1) & Replace(szoveg, Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2), x, templong, 1)
hibajeloles:
On Error GoTo -1
Next j
End Sub

Public Function CountChrInString(Expression As String, Character As String) As Long
Dim iResult As Long
Dim sParts() As String

sParts = Split(Expression, Character)

iResult = UBound(sParts, 1)

If (iResult = -1) Then
iResult = 0
End If

CountChrInString = iResult

End Function

 

Előzmény: local75 (38179)
Fferenc50 Creative Commons License 2024.08.08 0 0 38180

Szia!

Ezzel a makróval szépen átalakítja:

Sub alakíto()
Dim filenev As String, tartomany As Range, lenx As Integer
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.InitialFileName = "*.csv"
If .Show Then
filenev = .SelectedItems(1)
Else
MsgBox "Nem választottál fájlt", vbCritical
End If
End With
If filenev <> "" Then
Workbooks.Open Filename:=filenev, origin:=xlWindows, delimiter:=","
Range("A1").CurrentRegion.Replace what:="Ăł", replacement:="ó", lookat:=xlPart
Set tartomany = Range(Range("A2"), Range("A2").End(xlDown))
tartomany.TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, comma:=True, DecimalSeparator:="."
Set tartomany = Range(Range("A2"), Cells(Range("A1").End(xlDown).Row, Range("A1").End(xlToRight).Column))
lenx = Application.Match("LENX", Rows(1), 0)
With Range("A1").End(xlToRight).Offset(0, 1)
.Value = 25.4
.Copy
With tartomany.Range(Cells(1, lenx), Cells(tartomany.Rows.Count, lenx + 2))
.PasteSpecial Paste:=xlPasteValues, operation:=xlPasteSpecialOperationMultiply
.NumberFormat = "0"" mm"""
End With
Application.CutCopyMode = False
.Clear
End With
End If
MsgBox IIf(filenev <> "", "Készen vagyok", "Nem választottál fájlt, kilépek"), vbInformation
End Sub

Utána mentsd el csv fájlként és olvasd be, de csak a karakterátalakítás és a másolás kell. A beolvasás után már oszlopokat kapsz, helyesen.

Üdv.

Előzmény: local75 (38179)
local75 Creative Commons License 2024.08.08 0 0 38179

Na ezzel tökéletesen működött azzal a csv-vel, amit feltöltöttem.
Ráküldtem egy nagyobb csv-re, viszont hibára futott.

 

https://a.fajlkuldes.com/XM6gigqueGmP.csv

Előzmény: Garashan (38178)
Garashan Creative Commons License 2024.08.08 0 0 38178

Próbáld ki ezt. Nálam az eredeti csv-t szépen átalakítja.
Továbbra sem formázza táblázattá, az adatok az A oszlopban vannak.

 

Inkább módosítottam még rajta.

Itt az a lényeg, hogy a 4. sorban adod meg a te géped szerinti tizedes elválasztót. Az nálam a magyar beállítások miatt vessző. Csak utána fogja tudni felismerni normálisan a számokat.

 

Option Explicit

Public Sub atvalto()
Dim tizedeselvalaszto As String
tizedeselvalaszto = ","
Dim lenx, leny, lenz As Double
Dim lenxpoz, lenypoz, lenzpoz, templong, utolsosor As Long
Dim i, j As Long
Dim szoveg, cimsor As String
Dim x, y, z As Variant
cimsor = Range("A1")
lenxpoz = InStr(1, cimsor, "LENX")
lenxpoz = CountChrInString(Left(cimsor, lenxpoz), ",")
lenypoz = InStr(1, cimsor, "LENY")
lenypoz = CountChrInString(Left(cimsor, lenypoz), ",")
lenzpoz = InStr(1, cimsor, "LENZ")
lenzpoz = CountChrInString(Left(cimsor, lenzpoz), ",")
utolsosor = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
For j = 2 To utolsosor - 1
szoveg = Range("A" & j)

'X mérete
templong = 0
For i = 1 To lenxpoz
templong = InStr(templong + 1, szoveg, ",", vbTextCompare)
Next i
x = CStr(Round(CDbl(Replace(Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2), ".", tizedeselvalaszto)) * 25.4, 0)) & " mm"
szoveg = Left(szoveg, templong - 1) & Replace(szoveg, Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2), x, templong, 1)

'y mérete
templong = 0
For i = 1 To lenypoz
templong = InStr(templong + 1, szoveg, ",", vbTextCompare)
Next i
x = CStr(Round(CDbl(Replace(Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2), ".", tizedeselvalaszto)) * 25.4, 0)) & " mm"
szoveg = Left(szoveg, templong - 1) & Replace(szoveg, Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2), x, templong, 1)

'Z mérete
templong = 0
For i = 1 To lenzpoz
templong = InStr(templong + 1, szoveg, ",", vbTextCompare)
Next i
x = CStr(Round(CDbl(Replace(Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2), ".", tizedeselvalaszto)) * 25.4, 0)) & " mm"
Range("A" & j) = Left(szoveg, templong - 1) & Replace(szoveg, Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2), x, templong, 1)
Next j
End Sub

Public Function CountChrInString(Expression As String, Character As String) As Long
Dim iResult As Long
Dim sParts() As String

sParts = Split(Expression, Character)

iResult = UBound(sParts, 1)

If (iResult = -1) Then
iResult = 0
End If

CountChrInString = iResult

End Function

Előzmény: Garashan (38177)
Fferenc50 Creative Commons License 2024.08.08 0 0 38176

Ahogyan írtam, számolást Excellel vagy valamilyen táblázatkezelővel lehet végezni. A csv szövegfájl, szövegszerkesztővel lehet kezelni, de abban nem tudsz számolni.

A makróm által átalakított fájlt természetesen visszamentheted csv-be (mentés másként - csv szövegfájl), csak szerintem teljesen felesleges.

Mondjuk ha így mented el, akkor - mint látod pontosvessző lesz a tagolás és vessző a tizedesjel. Ezért egy menetben kapásból meg tudja nyitni az Excel oszlophelyesen és nem kell mindenféle átalakításokat (TextToColumns stb.) csinálni. 

Ezzel együtt szerintem inkább az egyszer általad beolvasott értékeket kellene átalakítani.

Üdv.

Előzmény: local75 (38174)
Fferenc50 Creative Commons License 2024.08.08 0 0 38175

Szia!
"csupán a csv-t kellene átalakítanom, hogy olyan legyen mint a régi. Coll helyett mm. Gondoltam ez a legegyszerűbb."

Amint látod, nem olyan egyszerű, hiszen a csv-be direkt módon nem lehet/tanácsos beleírni (leginkább szövegszerkesztővel, de ott meg hogyan számolsz). Ahhoz, hogy átalakítsd a coll-t mm-re, be kell olvasnod az Excelbe. Ha pedig beolvastad, akkor minek újra visszaírni? Az Excelben az adott oszlopokat át tudod váltani.

"A tizedespontok eltűntek, így én azt nem tudtam volna magamtól átváltani. Például a 10.0520  coll  100520-két jelent meg, vagy a 3.0202 coll  30202 érték lett."

A TextToColumns-nak van egy  DecimalSeparator paramétere (is), amiben megadhatod, hogy a számokban mi szerepel tizedesjelként. Azt a sorodat kiegészítheted ezzel a paraméterrel:  DecimalSeparator:="." így számként kerül be az Excel cellába az érték, ha ponttal van jelölve a tizedesjel és a rendszer szerinti tizedesjellel, azaz vesszővel.

A makrómban is ott találod a TextToColumns-os sorban ezt a paramétert.

Ezután azt értéket már számként tudod kezelni, ahogyan az előbbi hozzászólásomban is írtam. Nem kell bajlódni a csv-vel többet.

Üdv.

Előzmény: local75 (38173)
local75 Creative Commons License 2024.08.08 0 0 38174

Amúgy a csv-ben nehéz ezt a három értéket, ami a LENX, LENY, LENZ -hez tartozik: "23.622047","0.708663","19.685039" átalakítani milliméterre, így: "600 mm","18 mm","500 mm"? Külső fájlból indítva, ahogyan írtad, majd, úgy hagyni a csv-t.

Csak mert nekem sokkal egyszerűbbnek tűnik. Csak én nem értek hozzá, nem tudom megkerestetni vele. :)

Előzmény: Fferenc50 (38172)
local75 Creative Commons License 2024.08.08 0 0 38173

Nem, ha megnézed a makróm azon részét, hogy másolás csv-ből, ott a csv-ből másol, majd egyszerűen bezárja. Nem csinál a csv-vel semmit a makróm, mert a további feladatokat már a táblázatom segédmunkalapjain végzi.

Nekem, mint azt írtam, csupán a csv-t kellene átalakítanom, hogy olyan legyen mint a régi. Coll helyett mm. Gondoltam ez a legegyszerűbb.

 

"Most tekintsünk el attól, hogy cm-ben van rá szükséged, a folyamatra vagyok kíváncsi - az eredeti csv-t betudod importálni hibátlanul?" 

 

(Egyébként milliméterre is van szükségem, nem cm-re.) 

 

Igen, be tudom, csak azért fordultam hozzátok, mert a coll méretek nem megfelelően mentek át a makrómmal a táblázatomba.
A tizedespontok eltűntek, így én azt nem tudtam volna magamtól átváltani. Például a 10.0520  coll  100520-két jelent meg, vagy a 3.0202 coll  30202 érték lett. És nem tudtam vele mit kezdeni.

 

 

 

 

 

 

 

Előzmény: Fferenc50 (38171)
Fferenc50 Creative Commons License 2024.08.08 0 0 38172

Még egy kis folytatás: Mert ha a col-ost be tudod importálni, akkor roppant egyszerű cm-t csinálni belőle, akár makró nélkül is:

Egy cellába beírod a 25,4 váltószámot. Kijelölöd és másolás. Ezután kijelölöd azokat az oszlopokat, amelyekt át szeretnéd váltani. - Irányított beillesztés - művelet szorzás. Utána kitörlöd a váltószámot tartalmazó cellát, beállítod a számformátumot mm-re és kész az egész.

A makrómban ez a rész csinálja - a számformátummal együtt:

With Range("A1").End(xlToRight).Offset(0, 1)
.Value = 25.4
.Copy
With tartomany.Range(Cells(1, lenx), Cells(tartomany.Rows.Count, lenx + 2))
.PasteSpecial Paste:=xlPasteValues, operation:=xlPasteSpecialOperationMultiply
.NumberFormat = "0"" mm"""
End With
Application.CutCopyMode = False
.Clear
End With

Nyilván a megfelelő tartományt kell beletenned.

Üdv.

Előzmény: local75 (38170)
Fferenc50 Creative Commons License 2024.08.08 0 0 38171

Szia!
Tehát, ha jól értem, a cm-ré alakítás után ismét csv fájlként mented (vagy használod) és a mostani átalakítás után nem megfelő helyre kerülnek az adatok?

Amikor még nincs átalakítva, tehát col-ban van, akkor jó helyre kerülnének az adatok? (Most tekintsünk el attól, hogy cm-ben van rá szükséged, a folyamatra vagyok kíváncsi - az eredeti csv-t betudod importálni hibátlanul?

Üdv.

Előzmény: local75 (38170)
local75 Creative Commons License 2024.08.08 0 0 38170

Sub AJ_importálás()
    Dim T, Tag%, f As Boolean
    Dim oszlop%, uoszlop%
    Dim MyCell As Range
    Dim MyArray() As String, MyDig As String
    Dim sor%, usor%  ', usor1%
    
    FN = ActiveWorkbook.Name    'az fájlnév (FN) az aktív fájl nevét veszi fel
    Application.ScreenUpdating = False  'képernyő frissítésének letiltása

' AJ_importálás Makró
    'felugró elrejtés
    Sheets("Alkatrész jegyzék").Select
    ActiveSheet.Shapes.Range(Array("Felugró_importálás sketchupból")).Visible = msoFalse
    'tartalomtörlés
    Sheets("SU (2)").Visible = True
    Sheets("SU (2)").Select
    Range("A2:M25000").ClearContents
    
  'Másolás CSV-ből
    Windows(2).Activate
    ActiveSheet.Select
    Cells.Copy
    'segéd munkalap létrehozás
    Windows(FN).Activate
    Sheets.Add After:=Sheets(Sheets.Count)
    'beillesztés
    Cells.Select
    ActiveSheet.Paste
    'csv bezárása
    Application.DisplayAlerts = False
    Windows(2).Activate
    ActiveWindow.Close False
    Application.DisplayAlerts = True
    
    'szövegből oszlop
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :=",", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
        1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12 _
        , 1), Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), _
        Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array( _
        25, 1), Array(26, 1), Array(27, 1)), TrailingMinusNumbers:=True
    
    'Címsor nagybetűssé alakítása
    uoszlop% = Sheets(Sheets.Count).UsedRange.Columns.Count
    For oszlop% = 1 To uoszlop%
        Cells(1, oszlop%) = UCase(Cells(1, oszlop%))
    Next
    
    'GYOMLÁLÁS
    'Oszloptörlés
    T = Array("LENX", "LENY", "LENZ", "MATERIAL", "NAME", "SUMMARY", "TIP", "A1", "A2", "B1", "B2", "HIV")
    uoszlop% = Sheets(Sheets.Count).UsedRange.Columns.Count
    For oszlop% = uoszlop% To 1 Step -1
        f = False
        For Tag% = 0 To 11
            If Sheets(Sheets.Count).Cells(1, oszlop%) = T(Tag%) Then
                f = True
                Exit For
            End If
        Next
        If f = False Then Columns(oszlop%).Delete Shift:=xlToLeft
    Next

  'Oszlopok sorbarendezés
    usor% = Range("F" & Rows.Count).End(xlUp).Row
    Columns("A:L").Select
    ActiveWorkbook.Worksheets(Sheets.Count).Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(Sheets.Count).Sort.SortFields.Add Key:=Range("A1:L1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
        "LENX,LENY,LENZ,MATERIAL,NAME,SUMMARY,TIP,A1,A2,B1,B2,HIV", DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets(Sheets.Count).Sort
        .SetRange Range("A1:L" & usor%)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlLeftToRight
        .SortMethod = xlPinYin
        .Apply
    End With
    
    'felesleges sorok törlése
    usor% = Range("A" & Rows.Count).End(xlUp).Row
    For sor% = usor% To 2 Step -1
        If Cells(sor, "G") = "" Then Rows(sor).EntireRow.Delete
    Next
    'GYOMLÁLÁS VÉGE
    
    'Karakter csere
    Cells.Replace What:="ö", Replacement:="ö", LookAt:=xlPart
    Cells.Replace What:="ĂĽ", Replacement:="ü", LookAt:=xlPart
    Cells.Replace What:="Ăł", Replacement:="ó", LookAt:=xlPart
    Cells.Replace What:="Ĺ‘", Replacement:="ő", LookAt:=xlPart
    Cells.Replace What:="Ăş", Replacement:="ú", LookAt:=xlPart
    Cells.Replace What:="Ă©", Replacement:="é", LookAt:=xlPart
    Cells.Replace What:="á", Replacement:="á", LookAt:=xlPart
    Cells.Replace What:="ű", Replacement:="ű", LookAt:=xlPart
    Cells.Replace What:="Ă­", Replacement:="í", LookAt:=xlPart
    Cells.Replace What:="Ă–", Replacement:="Ö", LookAt:=xlPart
    Cells.Replace What:="Ăś", Replacement:="Ü", LookAt:=xlPart
    Cells.Replace What:="Ă“", Replacement:="Ó", LookAt:=xlPart
    Cells.Replace What:="Ĺ", Replacement:="Ő", LookAt:=xlPart
    Cells.Replace What:="Ăš", Replacement:="Ú", LookAt:=xlPart
    Cells.Replace What:="É", Replacement:="É", LookAt:=xlPart
    Cells.Replace What:="Ă", Replacement:="Á", LookAt:=xlPart
    Cells.Replace What:="Ű", Replacement:="Ű", LookAt:=xlPart
    Cells.Replace What:="ÁŤ", Replacement:="Í", LookAt:=xlPart
    Cells.Replace What:=" mm", Replacement:="", LookAt:=xlPart
    Columns("A:C").Replace What:=".", Replacement:=",", LookAt:=xlPart
    
    'Kerekítés egész számmá
    usor% = Range("A" & Rows.Count).End(xlUp).Row
    Range("T2:V" & usor%) = "=round(A2,0)"
    Range("T2:V" & usor%).Copy
    Range("A2").PasteSpecial xlPasteValues
    Columns("T:V").Delete
    
    'Adatok összefűzése az N oszlopba
    usor% = Range("A" & Rows.Count).End(xlUp).Row
    Range("N1") = "Összefűzve"
    Range("N2:N" & usor%) = "=A2&B2&C2&D2&E2&F2&G2&H2&I2&J2&K2&L2"
    Columns(14).Copy  'N oszlop
    Range("N1").PasteSpecial xlPasteValues
        
    Range("O2:O" & usor) = "=countif(N:N,N2)"   'darabszám az O-ba képlettel
    Range("O1") = "MENNYISÉG"
    Columns("O:O").Copy
    Range("M1").PasteSpecial xlPasteValues   'darabszám az M-be értékként
    
    For sor% = usor% To 2 Step -1   'dupla sorok megszüntetése
        If Cells(sor%, "O") > 1 Then
            Rows(sor%).Delete Shift:=xlUp
            Calculate
        End If
    Next

 

 

És itt még nincs vége.
Mint látod, a karaktercsrével már nem kell törődni.

 

 

 

Ez egy nagyon összetett makró, mert én készítettem egy táblázatot, és akkor még akkora láma voltam, hogy nem tudtam hogy van élőláb, és élőfej.
Ezért, mint látod, négy lapot létrehoztam egy munkalapon, és oda másolgattam be az adatokat az alsó "gyűjtőtáblázatból", és tördeltem az egészet..
Úgyhogy a vége egy nagy katyvasz, de ezt amit bemásoltam a fórumtársak segítségével, darabonként hoztuk össze.
Delila, és még FIRE/SOUL a PH-ról, segítettek (ha jól emlékszem) , és közben mondott egy két imát. :D
És sok éve már hogy működik.

 

De egyébként, csak annyi adat van, amennyit itt látsz.

 

 

 

Jobban mondva nem. Ez csak az alkatrészjegyzék. Ugyanebben a munkafüzetben van egy szerelvényjegyzék is, de azt nem használom.
Oda is ment adatokat. Úgy van, hogy a 3d modellezőben attribútumokkal ruházhatom fel a groupokat és a komponenseket, és ez megjelenik abban az egyszerű csv reportban, én meg szűröm az ami kell, és törlöm ami nem kell.

Lemodellezek például egy kivetőpántot, és adhatok neki egy attribútumot, mondjuk hogy cikkszám, és az már ott lesz a táblázatomban, és annyi darab, ahány a tervemben van.

 

Előzmény: Fferenc50 (38169)
Fferenc50 Creative Commons License 2024.08.08 0 0 38169

Szia!

1. Nem alakítja táblázattá, sima Excel munkalap marad.

2. Esetleg megmutatnád a makródat, mit hova másolsz még? Ez a kép miről készült?

 

Üdv.

 

Előzmény: local75 (38168)
local75 Creative Commons License 2024.08.08 0 0 38168

Ez már közelebb van a valósághoz.

Látom, a te makród táblázattá alakítja, ami azt hittem gond lesz, de átmásolta így is a makróm.

Ugyanakkor, az értékek így jelentek meg:

 

 

"A méret cella végülis szöveges vagy szám formátumú?"

 

 

A cella, ahová beillesztem szám formátumú.

Előzmény: Fferenc50 (38167)
Fferenc50 Creative Commons License 2024.08.08 0 0 38167

Szia!

Amit az előbb küldtem az milyen?

A méret cella végülis szöveges vagy szám formátumú?

Üdv.

Előzmény: local75 (38166)
local75 Creative Commons License 2024.08.08 0 0 38166

Microsoft® Excel® LTSC MSO (2305 buildverzió16.0.16501.20002) 64 bites (Ezt is megtalálni.. :))

 

A formátumot nem úgy értettem. Hanem a vesszővel tagolt szövegben pontosan ugyanúgy kell szerepelnie, ahogy leírtam.    "méret milliméterben    szóköz    mm"

 

Mint ez: https://a.fajlkuldes.com/a5HGL5xHtYCs.csv

Előzmény: Fferenc50 (38164)
Fferenc50 Creative Commons License 2024.08.08 0 0 38165

Szia!

Akkor módosítsuk erre (valószínűleg elnéztem az elválasztó karaktert):

Sub alakíto()
Dim filenev As String, tartomany As Range, lenx As Integer
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.InitialFileName = "*.csv"
If .Show Then
filenev = .SelectedItems(1)
Else
MsgBox "Nem választottál fájlt", vbCritical
End If
End With
If filenev <> "" Then
Workbooks.Open Filename:=filenev, origin:=xlWindows, delimiter:=","
Range("A1").CurrentRegion.Replace what:="Ăł", replacement:="ó", lookat:=xlPart
Set tartomany = Range(Range("A2"), Range("A2").End(xlDown))
tartomany.TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, comma:=True, DecimalSeparator:="."
Set tartomany = Range(Range("A2"), Range("A1").End(xlToRight).End(xlDown))
lenx = Application.Match("LENX", Rows(1), 0)
With Range("A1").End(xlToRight).Offset(0, 1)
.Value = 25.4
.Copy
With tartomany.Range(Cells(1, lenx), Cells(tartomany.Rows.Count, lenx + 2))
.PasteSpecial Paste:=xlPasteValues, operation:=xlPasteSpecialOperationMultiply
.NumberFormat = "0"" mm"""
End With
Application.CutCopyMode = False
.Clear
End With
End If
MsgBox IIf(filenev <> "", "Készen vagyok", "Nem választottál fájlt, kilépek"), vbInformation
End Sub

Üdv.

Előzmény: local75 (38162)
Fferenc50 Creative Commons License 2024.08.08 0 0 38164

Szia!

Milyen excel verziót használsz?

A cellában benne kell lennie a mm szövegnek is, mint formátum?

Üdv.

Előzmény: local75 (38162)
local75 Creative Commons License 2024.08.08 0 0 38163

A formátumnak "600 mm"  ilyennek kell lennie átváltás után, csak úgy tudom használni sajnos.

Előzmény: pimre (38160)
local75 Creative Commons License 2024.08.08 0 0 38162

Szia!

 

Sajnos nem írja felül az adatokat.

 

 

A formátumnak ugyanolyannak kell lennie mint a réginek, és az érték sem változik át.

 

 

Így a táblázatba illesztve, nem a helyes érték szerepel:

 

 

 

 

 

 

 

Előzmény: Fferenc50 (38161)
Fferenc50 Creative Commons License 2024.08.08 0 0 38161

Szia!

Esetleg nézd meg ezt a változatot:

Sub alakíto()
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.InitialFileName = "*.csv"
If .Show Then
filenev = .SelectedItems(1)
Else
MsgBox "Nem választottál fájlt", vbCritical
End If
End With
If filenev <> "" Then
Workbooks.Open Filename:=filenev, origin:=xlWindows, delimiter:=";"
Range("A1").CurrentRegion.Replace what:="Ăł", replacement:="ó", lookat:=xlPart
Set tartomany = Range(Range("A2"), Range("A2").End(xlDown))
tartomany.TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, semicolon:=True, DecimalSeparator:="."
Set tartomany = Range(Range("A2"), Range("A1").End(xlToRight).End(xlDown))
lenx = Application.Match("LENX", Rows(1), 0)
With Range("A1").End(xlToRight).Offset(0, 1)
.Value = 25.4
.Copy
tartomany.Range(Cells(1, lenx), Cells(tartomany.Rows.Count, lenx + 2)).PasteSpecial Paste:=xlPasteValues, operation:=xlPasteSpecialOperationMultiply
Application.CutCopyMode = False
.Clear
End With
End If

MsgBox IIf(filenev <> "", "Készen vagyok", "Nem választottál fájlt, kilépek"), vbInformation
End Sub

Kiválaszthatod a csv fájlt, amit be szeretnél olvasni. A beolvasás után átalakítja az értékeket, az eredeti számok helyére írja be az átalakítottakat. 

Menteni neked kell a létrejött fájlt.

A makrót én egy külön fájlba másolnám be, a megnyitott fájl mindig új munkafüzetbe kerül, a makrós fájl nem változik.

Üdv.

Előzmény: local75 (38159)
pimre Creative Commons License 2024.08.08 0 0 38160

Most már mindegy, írtam egy makrót erre. Végső soron nem baj, ha feleslegesek a betüméret ellenőrzések. Most már nem törlöm ki. Legfeljebb az ujbetumeretet beállító sort tedd megjegyzésbe, ha zavar.

 

A makró feltételezi, hogy a munkafüzeted xlsm, és ebben lenne egy modulban, vagy magán a munkalapon:

 

Option Explicit

Public Const betumeret As Long = 11, ujbetumeret As Long = 12

Sub coltomm()

Dim ws As Worksheet, utolsosor As Long, sor As Long, troszlop As Long, oszlop As Long

Set ws = Worksheets(ActiveSheet.Name)

troszlop = 13 ' Ez az M oszlop

utolsosor = ws.Range("A" & Rows.Count).End(xlUp).Row

For sor = 2 To utolsosor

    For oszlop = troszlop To troszlop + 2

        If IsNumeric(ws.Cells(sor, oszlop)) Then ' csak ha szám, különben hiba lenne

            If ws.Cells(sor, oszlop).Font.Size = betumeret Then ' Csak ha régi a betűméret, akkor transzformálunk

                ws.Cells(sor, oszlop) = ws.Cells(sor, troszlop) * 25.4

                ws.Cells(sor, oszlop).Font.Size = ujbetumeret

                ws.Cells(sor, oszlop).NumberFormat = "0.00000" ' A tizedesjegyek száma tetszés szerint módosítható

            End If

        End If

    Next oszlop

Next sor

End Sub

Előzmény: local75 (38159)
local75 Creative Commons License 2024.08.08 0 0 38159

Ez a lista nem bővül, ez a lista mindig új. Ezt egy 3d modellező szoftver generálja.

Ha módosítok a terven, akkor készíttetek egy új jelentést.

Ezt a jelentést (csv) a táblázatomba átviszem, használhatóvá téve, és utána elvileg nem is használom csak ritka esetekben, olvastatom be újra. De bővülni nem bővül soha.

 

Vagy meg lehet úgy is csinálni, hogy készítsen a makró egy csv másolatot.

 

Szerintem az én makróm értéket illeszt be.

 

Előzmény: pimre (38158)
pimre Creative Commons License 2024.08.08 0 1 38158

"átváltás után pont ugyanígy kell kinéznie a táblázatnak, mivel az átváltást követően egy régebben megírt nagyon bonyolult makró dolgozza fel."

 

Értem. Viszont, ha makrót írok, akkor gondoskodni kell arról, hogy véletlenül se futhasson a makró egy olyan sorra, amely már át lett alakítva mm-be. Különös tekintettel arra, hogy - feltételezésem szerint - bővül a listád, tehát a makrónknak az újakat át kell számítania mm-be, de a már átalakítottakat nem szabad újraszámolni. Jól gondolom?

 

A következő megoldásra gondolok: Úgy írnám meg, hogy az átszámított adatok betűméretét módosítsa a makró. Ha mondjuk 11-volt, akkor 12-re. (ezt majd beszéljük meg). Ez egy alig észrevehető változás, nem hinném, hogy a bonyolult makród ezzel foglalkozna. Viszont az átszámító makró ezt figyelve ebből tudja, hogy melyik sorokkal nem kell foglalkoznia.

 

Ha ez neked megfelel, akkor összecsapom.

Előzmény: local75 (38150)
CsRob1 Creative Commons License 2024.08.08 0 0 38157

Először nem látszott, de mentés-bezárás-megnyitás után helyreállt, azaz az utolsó cella a hasznos terület végén van. Egyébként egy másik munkafüzetből átmásolt munkalapon végzett kisebb módosítások után történt az eset. Hogy pontosan milyen műveleteket végzett a kolléga, amik a növekedést okozhatták, az sajnos nem derült ki.

Előzmény: Fferenc50 (38154)
local75 Creative Commons License 2024.08.08 0 0 38156

Annyira nem sürgős, hogy emiatt ne aludj éjjel, de köszi. :)

Előzmény: Garashan (38155)
Garashan Creative Commons License 2024.08.08 0 0 38155

El kellett mennem otthonról, ha estig nem oldódik meg, akkor majd éjjel tudok vele foglalkozni.

Előzmény: local75 (38153)
Fferenc50 Creative Commons License 2024.08.08 0 0 38154

Szia!

Az utolsó még szükséges sortól lefelé kijelölöd a végéig, majd törlöd.

Természetesen a sorok "újratermelődnek" mert mindig megmarad a munkafüzetben az eredeti sormennyiség.

Viszont ha után ismét megnézed, mi az utolsó cella, akkor már a ténylegesen használt sorra fog ugrani és nem a végére.

Viszont nem ártana megnézni, mi került abba az "utolsó" cellába, abból lehetne következtetni az előidéző okra.(Sajnos lehet "láthatatlan" karakter vagy formázás pl.)

Üdv.

 

Előzmény: CsRob1 (38147)
local75 Creative Commons License 2024.08.08 0 0 38153

Köszönöm. Lefuttattam, és valóban még rossz adatok jelennek meg a táblázatomba bemásolva, de szerintem nem a sorrend miatt, ugyanis a makró amely eddig feldolgozta, csak a nekem szükséges adatokat hagyja meg:

 

 'GYOMLÁLÁS
    'Oszloptörlés
    T = Array("LENX", "LENY", "LENZ", "MATERIAL", "NAME", "SUMMARY", "TIP", "A1", "A2", "B1", "B2", "HIV")
    uoszlop% = Sheets(Sheets.Count).UsedRange.Columns.Count
    For oszlop% = uoszlop% To 1 Step -1
        f = False
        For Tag% = 0 To 11
            If Sheets(Sheets.Count).Cells(1, oszlop%) = T(Tag%) Then
                f = True
                Exit For
            End If
        Next
        If f = False Then Columns(oszlop%).Delete Shift:=xlToLeft
    Next

 

A régebbi csv így nézett ki:

https://a.fajlkuldes.com/a5HGL5xHtYCs.csv

 

 

(A többi adatot jól másolja, ha minden igaz, és nem keveri össze, csak ez a három méret nem oké.)

Előzmény: Garashan (38152)
Garashan Creative Commons License 2024.08.08 0 0 38152

Az "A" oszlopban vannak nálam az adatok a csv megnyitása után. A "B", "C" és "D" oszlopban pedig a makró által generáltak.

Előzmény: Garashan (38151)
Garashan Creative Commons License 2024.08.08 0 0 38151

Én ha megnyitok az excelben egy CSV fájlt, akkor nálam az adatok soronként egy cellában lesznek. Nem szoktam szórakozni táblázattá alakítással, mert a nélkül is fel tudom dolgozni az adatokat.

Így én az általad küldött CSV fájlból indultam ki és az alapján dolgoztam fel az adatokat. Azaz megkerestem, hogy mely pozícióban vannak a lenx, leny és lenz adatok majd azokat átkonvertáltam mm-be a B, C és D oszlopokba.

Bár az a sejtésem, hogy neked ez így nem lesz jó. Ez után a hozzászólásod után. Lévén az adatok sem ott helyezkednek el, ahol nekem.

Előzmény: local75 (38150)
local75 Creative Commons License 2024.08.08 0 0 38150

Köszönöm.

Ezt nem én hoztam létre, ezt így generálja egy szoftver.

Azért akartam makrót, mert átváltás után pont ugyanígy kell kinéznie a táblázatnak, mivel az átváltást követően egy régebben megírt nagyon bonyolult makró dolgozza fel.

 

Annyi történt, hogy ez a szoftver, most már nem mm-ben generálja az adatokat, hanem collban, és így nem tud a makró mit kezdeni vele.

Előzmény: pimre (38148)
Garashan Creative Commons License 2024.08.08 0 0 38149

Option Explicit

Public Sub atvalto()
Dim lenx, leny, lenz As Double
Dim lenxpoz, lenypoz, lenzpoz, templong, utolsosor As Long
Dim i, j As Long
Dim szoveg, cimsor As String
cimsor = Range("A1")
lenxpoz = InStr(1, cimsor, "LENX")
lenxpoz = CountChrInString(Left(cimsor, lenxpoz), ",")
lenypoz = InStr(1, cimsor, "LENY")
lenypoz = CountChrInString(Left(cimsor, lenypoz), ",")
lenzpoz = InStr(1, cimsor, "LENZ")
lenzpoz = CountChrInString(Left(cimsor, lenzpoz), ",")
utolsosor = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
Range("B1") = "LEN X in mm"
Range("C1") = "LEN Y in mm"
Range("D1") = "LEN Z in mm"
For j = 2 To utolsosor - 1
szoveg = Range("A" & j)

'X mérete
templong = 0
For i = 1 To lenxpoz
templong = InStr(templong + 1, szoveg, ",", vbTextCompare)
Next i
Range("B" & j) = Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2)
Range("B" & j) = Range("B" & j) * 25.4

'Y mérete
templong = 0
For i = 1 To lenypoz
templong = InStr(templong + 1, szoveg, ",", vbTextCompare)
Next i
Range("C" & j) = Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2)
Range("C" & j) = Range("C" & j) * 25.4

'Z mérete
templong = 0
For i = 1 To lenzpoz
templong = InStr(templong + 1, szoveg, ",", vbTextCompare)
Next i
Range("D" & j) = Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2)
Range("D" & j) = Range("D" & j) * 25.4
Next j
End Sub

Public Function CountChrInString(Expression As String, Character As String) As Long
Dim iResult As Long
Dim sParts() As String

sParts = Split(Expression, Character)

iResult = UBound(sParts, 1)

If (iResult = -1) Then
iResult = 0
End If

CountChrInString = iResult

End Function

Előzmény: local75 (38145)
pimre Creative Commons License 2024.08.08 0 0 38148

Minek ehhez makró? Az A2, B1, B2 (R,S és T) oszlopod úgyis üres, ezért oda írtam be a 25.4-el megszorzott adatokat, amit aztán lefelé húzhatsz. Neked is azt javaslom, hogy segédoszlopba tedd a mm adatokat.

 

 

Makrót írni is egyerú lenne, de felesleges, és zavarokhoz vezethetne. Ha egyszer lefuttattad, nem derűl ki a makró számára, hogy már a mm-ben megadott érték szerepel ott, ezért véletlen újrafuttatás esetén hibás értékek kerülnének a mm adatok helyére.

 

Más: A csv fájlban miért tettél idézőjelet az elejére, majd miért dupláztál meg minden idézőjelet? Ezeket ki kellett törölnöm, és csak ezután sikerült Excelbe beolvasni az adatokat. 

Előzmény: local75 (38145)
CsRob1 Creative Commons License 2024.08.08 0 0 38147

Köszönöm. Az utolsó cella az O1048553 -as. Valamiért bekerült több, mit 1 millió sor.

Hogyan tudom törölni? Kijelölés - Sorok törlése után sem tűnnek el a sorok. Ha csak a tartalmát törlöm DEL-lel, akkor is megmaradnak.

Előzmény: Fferenc50 (38143)
local75 Creative Commons License 2024.08.08 0 0 38146
local75 Creative Commons License 2024.08.08 0 0 38145

Sziasztok!

 

Tudna írni nekem valaki egy makrót?

 A LENX, LENY, LENZ  -hez tartozó értékeket át kellene váltani egy makróval collról milliméterre, ilyen formátumra: "600 mm"

A táblázatban több tétel is szerepelhet mint három, de 300-tól nem szokott több lenni.

Minden más maradjon a régi formátumban.

 

link

 

Köszönöm.

 

 

lbarnes Creative Commons License 2024.08.08 0 0 38144

Fferenc50 - köszönöm - próbálom.

Előzmény: Fferenc50 (38141)
Fferenc50 Creative Commons License 2024.08.07 0 0 38143

Szia!

Több oka is lehet. Próbáld ellenőrizni a következőket:

1. A munkalapokon az utolsó cella hol található - F5 - irányított - utolsó cella. Ha ez nem a valós területen van, akkor a tényleges területtől lefelé és oldalra törölj ki minden sort majd oszlopot. Ez előforduhat pl. sorok/oszlopok beszúrása, majd törlése után. Hajlamos ottmaradni pl formázás, amit ráadásul egyébként nem is látsz.

2. A függvények nem hivatkoznak-e egész sorokra/oszlopokra (pl. A:A ). Mivel a munkalap sorainak és oszlopainak is nagy a száma, a képletek ottragadhatnak ahol nem is kellenének. Ráadásul a számolást is lassítja. Tudom, kényelmesebb(?) egész oszlopra hivatkozni, de célszerűbb egy olyan területet megadni, amely nagyjából megfelel a szökséges tartománynak.

3. A feltételes formázásokat is érdemes megnézni.

4. vagy 0 ha lehet, próbáljátok visszakövetni, hogy milyen művelet idézte elő a méretnövekedést, lefagyást. Akkor lehet pontosabb diagnózist adni.

Üdv. 

Előzmény: CsRob1 (38142)
CsRob1 Creative Commons License 2024.08.07 0 0 38142

Sziasztok! Közös használatú hálózati mappában lévő Excel fájlokat több ember szerkeszti Office 2007 vagy Office 2010 verzióval windows 10 alatt. Időnként előfordul, hogy egy-egy fájl mérete közel 100-szorosára növekszik, ennek megfelelően a megnyitása, szerkesztése, mentése is lassú, esetleg le is fagy az Excel. Hogyan tudom kideríteni, hogy mi okozza a méretnövekedést, és hogy lehet "eltüntetni"? 

Az időnként készített biztonsági mentésből a közös munka miatt nem biztos, hogy az utolsó változat állítható vissza. 

Előre is köszönöm a segítséget.

Fferenc50 Creative Commons License 2024.08.07 0 0 38141

Szia!

Az intervallumok határait feltöltöd egy oszlopban, mellette az ott érvényes árakat:

Ezután az FKERES függvény 4. paraméterét IGAZ (1) -ra állítod.

El kell döntened, hogy a felső határ esetén még az alatta levő vagy már az új sávban levő árat kell alkalmazni, azaz pl. pontosan 1 kilónál 500 Ft vagy már 1000 Ft az ár.

Ha így adod meg, akkor 1 kg-nál az 1000 forintos ár érvényesül. Ha viszont az 500 forintot szeretnéd érvényesíteni, akkor a határt emelni kell 101-re és így tovább.

Javaslom hozzá az FKERES súgójának az elolvasását.

Üdv.

Előzmény: lbarnes (38140)
lbarnes Creative Commons License 2024.08.07 0 0 38140

Tisztelt Excel Guruk!

 

Az alábbi szeretem valahogy megoldani.

 

A oszlopban tömeg intervallum, 

0-100

100-200

200-300

stb

 

B oszlopban egy forintos érték

 

500 Ft

1000 Ft

2000 Ft

stb

 

 Másik táblázatban megrendelés tömegei szerepelnek (mondjuk C oszlop)

 

71,2 

105,8

256

stb

 

Hogy tudom azt függvénnyel megoldani, hogy az adott intervallumba eső tömeg érték esetén a függvény kiválassza hozzá a megfelelő forintos értéket?

 

Lehet, hogy a tömeg intervallumot két oszlopba kell írni kvázi: 

 

A          B

0          100

100       200

200       300

 

KÖszönet!

 

 

pimre Creative Commons License 2024.08.03 0 0 38139

Szerintem megtaláltad a hiba okát. Én eddig nem használtam, ezért nem ismertem azt a lehetőséget, amire rámutattál, hogy a jobboldali nyilakkal lehet a jelmagyarázat sorrendjét a hozzátartozó adatoktól függetlenül beállítani. 
Azért meglepő, hogy egyáltalán miért merülhetett fel ez az igény.

Előzmény: m54-b (38137)
Fferenc50 Creative Commons License 2024.08.03 0 0 38138

Szia!

Valószínűleg a diagramon más a sorrendje az egyes évek adatainak. Próbáld meg a következőt:

Kiválasztod a 2023 évi "vonalat" adatot. Ezután a szerkesztőlécen megjelik az adatsor forrása:

pl. =ADATSOR(áram!$F$29;áram!$A$30:$A$186;áram!$F$30:$F$186;4) 

Ha 4 adatsorod van, akkor feltételezhetően a 4-es lesz a zárójel előtti szám. Ezt írd át itt a szerkesztőlécen 3 -ra és Enter. Ezáltal megváltozik a megjelenítési sorrend és jelmagyarázat sorrendje is.

Üdv.

 

Előzmény: hellsing (38135)
m54-b Creative Commons License 2024.08.03 0 0 38137

 

 

valami ilyen? vagy félreértem?

Előzmény: hellsing (38135)
pimre Creative Commons License 2024.08.03 0 0 38136

Tudnál küldeni egy mintát, ahol látszanak a forrásadatok, valamint az adatfotrrás kiválasztásánál megjelenő lista?

 

Valahogy így, mivel a saját mintámon elképzelni sem tudom, hogyan oldhatnán meg, hogy két év felcserélődjön a jelmagyarázqatban. Hátha a te mintádból kiderül:

 

Előzmény: hellsing (38135)
hellsing Creative Commons License 2024.08.03 0 0 38135

'reggelt! Van egy vonaldiagramom, ami 4 év havi forgalmi adatait jeleníti meg. Az "Adatforrás kiválasztása" ablakban jó a sorrend: 2021, 2022, 2023, 2024. A diagram jelmagyarázatában viszont 2021, 2022, 2024, 2023. Hogy rendezhetném át?

 

ergoGnomik Creative Commons License 2024.07.21 0 0 38134

Azt próbáltad már, hogy beszúrod a lapra háttérként és a kívánt néhány cella kivételével az összes többit zárolod? Mondjuk lehet, hogy valami képszerkesztőben még ügyeskedni is kell a kép köré üres területek szerkesztésével a pontos pozícionáláshoz. A rácsvonalak ugye kikapcsolhatók, a cellaformázás pedig ad számos lehetőséget az aktív cellák megjelölésére.

Előzmény: Balu424 (38127)
_Nyuszi Creative Commons License 2024.07.21 0 0 38133

Az én ötletem, hogy felrakod az antenna képét jobb oldalra, de úgy, hogy a változókat egy-egy betűvel helyettesíted. A képernyő bal részén ezeket szépen, egymás alatt bekéred a usertől. Kevésbé elegáns, mert plusz egy hivatkozás van értékenként, amit követnie kell a felhasználónak, de gyors eredményt ad.

Előzmény: Balu424 (38127)
Garashan Creative Commons License 2024.07.20 0 0 38132

Ha nem olyan a kép formátuma, hogy legyen rajta átlátszóság, akkor is meg lehet oldani.

Ha rákattintasz a képre, akkor a menü szalagon megjelenik a képformátum. Annak a legelső pontja a "Háttér eltávolítása". Ott ki lehet jelölni, hogy mi az a terület, amit átlátszóvá szeretnél tenni. Ha sok benne a vékony vonal, akkor kicsit nehézkes az Excelben megoldani.

Ilyenkor én GIMP-ben szoktam.
Ha megnyitod a képet szerkesztésre a GIMP-ben, akkor először hozzá kell adni a réteg átlátszóságot is. A varázs kijelölő eszközzel ki kell jelölni az eltávolítandó részeket. Én ennek olyan 20-as értéken szoktam állítani a "durvaságát", akkor elég jól kijelöli az elkülönülő hátteret. Majd ha jó a kijelölés, akkor delete gombbal törlöd a hátteret. Ilyenkor a GIMP-ben ez kockás háttérrel lesz jelölve. Utána simán kijelölheted az egészet és visszamásolhatod az Excelbe.

Előzmény: Balu424 (38127)
m54-b Creative Commons License 2024.07.20 0 0 38131

Ilyen képet "alakzatok" beszúrásával hoznál létre (minden részelt egy "alakzat"), majd ezeket csoportba foglalva, lehetne valamit kezdeni.

Előzmény: Balu424 (38127)
Thibi Creative Commons License 2024.07.19 0 0 38130

Előzmény: Thibi (38129)
Thibi Creative Commons License 2024.07.19 0 1 38129

Néhány képformátum ismeri az áttetsző, transzparens színeket. Erre keress a google-ban: trasparent picture

Egérrel kattintani ugyan nem lehet a háttér cellákra, de kurzor billentyűkkel oda lehet mozogni és át lehet írni az értéket

Előzmény: Balu424 (38127)
Fferenc50 Creative Commons License 2024.07.19 0 0 38128

Szia!

Én úgy látom, hogy kép mögötti cellába nem tudsz írni. Azon cella helyén, amelybe írni szeretnél, "lyukat" kell hagyni a képen, tehát azt a cellát nem fedheti le a kép! Ez nyilván könnyen megoldható, ha a kép szélei felé vannak az írni tervezett cellák, mert akkor szépen körül lehet vágni a képet, viszont a közbe - hátul levő cella esetében már szét kell vágni a képet és több darabban felrakni a cella kihagyásával.

Szerintem egyszerűbb lenne, ha a képet egy Userformra tennéd fel, arra lehet tenni Textboxokat és azok értékével lehet számolni, a textboxok értékét hozzá tudod kapcsolni egy cellához a ControlSource tulajdonsággal, ha változik a textbox értéke, változik a hozzá csatolt cella értéke is.

Üdv.

Előzmény: Balu424 (38127)
Balu424 Creative Commons License 2024.07.19 0 0 38127

sziasztok. Lenne egy kérdésem. Hogyan lehetne egy képet úgy beszúrni az excelbe, hogy mögötte eg pár cella látszódjon, amelybe értéket beírva, akár képletre is bírható. 

 

Mire gondolok?

 

 

tehát a cellákba értéket írok be, s így a többi cellában a képlettel kiszámoltérték kerül

 

Már minden lehetőséget megnéztem, de nem jöttem rá, hogyan oldható meg.

dorogszu Creative Commons License 2024.07.17 0 0 38126

Jajj ilyen nagy vigyor még az esküvőm napján sem volt a fejemen:)  

Előzmény: Delila_10 (38125)
Delila_10 Creative Commons License 2024.07.17 0 0 38125

Megvan a hiba.

 

Sub Epit_Bont()

    Dim usor As Long

    Sheets("Summary").Columns("A:N").Delete Shift:=xlToLeft

   

    With Sheets("Sheet1")

        .Range("A1:M1").Copy Sheets("Summary").Range("A1")

        .Range("N1") = "Összefűzés"

        usor = .Range("A" & Rows.Count).End(xlUp).Row

        .Range("N2:N" & usor).FormulaR1C1 = "=RC[-1]&"" ""&RC[-8]"

        .Range("$A$1:$M$" & usor).AutoFilter Field:=13, Criteria1:="ÉPÍT"

        usor = .Range("A" & Rows.Count).End(xlUp).Row

        .Range("A2:M" & usor).Copy Sheets("Summary").Range("A2")

        .Range("$A$1:$N$" & usor).AutoFilter Field:=13

    End With

   

    Sheets("Summary").Select

    Range("N1") = "Bontási dátum"

    usor = Range("A" & Rows.Count).End(xlUp).Row

    Range("N2:N" & usor).FormulaR1C1 = _

        "=IFERROR(INDEX(Sheet1!R1C1:R5000C14,MATCH(""BONT "" &RC[-8],Sheet1!R1C14:R5000C14,0),7),""Nincs bontási dátum"")"

    Columns("N:N").NumberFormat = "m/d/yyyy"

    Range("N2:N" & usor) = Range("N2:N" & usor).Value

    Columns("A:N").EntireColumn.AutoFit

   

    Sheets("Sheet1").Columns("N").Delete Shift:=xlToLeft

End Sub

 

A félkövérrel írt sort írd át a makródban, akkor helyreáll a lelke. 

Előzmény: dorogszu (38123)
Fferenc50 Creative Commons License 2024.07.16 0 0 38124

Szia!
Írtam neked a hozzászólásomban (38119), hogyan másold a tételeket. Akkor nem fordulhat elő ilyen probléma.

Üdv.

Előzmény: dorogszu (38123)
dorogszu Creative Commons License 2024.07.16 0 0 38123

Itt egy példa 06830 betétlap esetében a Sheet 1 dátumformátumok átvitele után a Summary lapfülön Bontási dátumban 1900.01.00 értéket kapok vissza. Ez csak egy példa de több ilyen eset is előfordul:(  Mi miatt lehet ez?

 

 

Előzmény: Delila_10 (38120)
Delila_10 Creative Commons License 2024.07.14 0 0 38122

Szívesen. :)

Előzmény: dorogszu (38121)
dorogszu Creative Commons License 2024.07.14 0 0 38121

Hálásan köszönöm!

 

Előzmény: Delila_10 (38120)
Delila_10 Creative Commons License 2024.07.14 0 0 38120

Bocs, nem voltam net-közelben, és most sem leszek. 

https://data.hu/get/14256121/Mpk.xlsm

Előzmény: dorogszu (38118)
Fferenc50 Creative Commons License 2024.07.13 0 0 38119

Szia!

A makró azért nem találja meg az összeillő párokat, mert az átmásoláskor a betétlap cella típusa megváltozik, szöveg helyett double lesz.

Ezért a másolást másként kell megoldani. Itt egy javaslat:

For i = 2 To lastRow
If ws.Cells(i, 13).Value = "Épít" Then
ws.Range(ws.Cells(i, 1), ws.Cells(i, 7)).Copy newSheet.Cells(newRow, 1)
ws.Range(ws.Cells(i, 8), ws.Cells(i, 14)).Copy newSheet.Cells(newRow, 9)
'newSheet.Cells(newRow, 1).Value = ws.Cells(i, 1).Value
'newSheet.Cells(newRow, 2).Value = ws.Cells(i, 2).Value
'newSheet.Cells(newRow, 3).Value = ws.Cells(i, 3).Value
'newSheet.Cells(newRow, 4).Value = ws.Cells(i, 4).Value
'newSheet.Cells(newRow, 5).Value = ws.Cells(i, 5).Value
'newSheet.Cells(newRow, 6).Value = ws.Cells(i, 6).Value
'newSheet.Cells(newRow, 7).Value = ws.Cells(i, 7).Value
'newSheet.Cells(newRow, 9).Value = ws.Cells(i, 8).Value
'newSheet.Cells(newRow, 10).Value = ws.Cells(i, 9).Value
'newSheet.Cells(newRow, 11).Value = ws.Cells(i, 10).Value
'newSheet.Cells(newRow, 12).Value = ws.Cells(i, 11).Value
'newSheet.Cells(newRow, 13).Value = ws.Cells(i, 12).Value
'newSheet.Cells(newRow, 14).Value = ws.Cells(i, 13).Value
Application.CutCopyMode = False
newRow = newRow + 1
End If
Next i

A régi soraidat kikommentelve tettem ide.

Ezzel minden bontást meg fogsz találni, sőt, a végeredmény még több is lesz 1 db-bal... mivel a betétlap meint azonosító szerintem nem elegendő, kell még mást is figyelni.

Íme egy példa:

Az utolsó oszlop az előfordulások számát jelenti.

Üdv.

Előzmény: dorogszu (38115)
dorogszu Creative Commons License 2024.07.13 0 0 38118

A makró letesztelése után esetleg megkaphatom az elkészült filet? Köszönöm előre is 

Előzmény: Delila_10 (38116)
dorogszu Creative Commons License 2024.07.13 0 0 38117

Range("N2:N" & usor).FormulaR1C1 = _

"=IFERROR(INDEX(Sheet1!R[-1]C1:R[1316]C,MATCH(""BONT "" &RC[-8],Sheet1!R1C14:R1318C14,0),7),""Nincs bontási dátum"")"

 

 

hibát hoz:(

 

Előzmény: Delila_10 (38116)
Delila_10 Creative Commons License 2024.07.13 0 0 38116

Összeállítottam egy makrót a kimeneti fájlodhoz.

 

Sub Epit_Bont()

    Dim usor As Long

    Sheets("Summary").Columns("A:N").Delete Shift:=xlToLeft

   

    With Sheets("Sheet1")

        .Range("A1:M1").Copy Sheets("Summary").Range("A1")

        .Range("N1") = "Összefűzés"

        usor = .Range("A" & Rows.Count).End(xlUp).Row

        .Range("N2:N" & usor).FormulaR1C1 = "=RC[-1]&"" ""&RC[-8]"

        .Range("$A$1:$M$" & usor).AutoFilter Field:=13, Criteria1:="ÉPÍT"

        usor = .Range("A" & Rows.Count).End(xlUp).Row

        .Range("A2:M" & usor).Copy Sheets("Summary").Range("A2")

        .Range("$A$1:$N$" & usor).AutoFilter Field:=13

    End With

   

    Sheets("Summary").Select

    Range("N1") = "Bontási dátum"

    usor = Range("A" & Rows.Count).End(xlUp).Row

    Range("N2:N" & usor).FormulaR1C1 = _

        "=IFERROR(INDEX(Sheet1!R[-1]C1:R[1316]C,MATCH(""BONT "" &RC[-8],Sheet1!R1C14:R1318C14,0),7),""Nincs bontási dátum"")"

    Columns("N:N").NumberFormat = "m/d/yyyy"

    Range("N2:N" & usor) = Range("N2:N" & usor).Value

    Columns("A:N").EntireColumn.AutoFit

   

    Sheets("Sheet1").Columns("N").Delete Shift:=xlToLeft

End Sub

Előzmény: dorogszu (38114)
dorogszu Creative Commons License 2024.07.13 0 0 38115

Bocsánat de a kimeneti filet töltöttem fel:) A helyes kiinduló file itt: https://files.fm/u/9ygzxyrhtz

Előzmény: dorogszu (38114)
dorogszu Creative Commons License 2024.07.13 0 0 38114

Sziasztok! 

 

  • Új munkalap létrehozása: Az Épít típusú rekordokat átmásolja az eredeti munkalapról egy új, "Summary" nevű munkalapra.
  • Bontási dátumok hozzáadása: Megkeresi a bontási rekordokat és hozzáadja a bontási dátumot a "Summary" munkalaphoz. a megfelelő sorhoz:)  Betétlap alapján de ez valami miatt nem minden rekord esetén kerül be
  • Összegzés és ellenőrzés: Összegzi a térfogatokat, majd összehasonlítja az eredeti és a summary adatok számait, és jelzi az eltéréseket, ha vannak.

Miért nem megy át a Bont sorokból a summary lapfülre az adat?

 

Nem fontos a makrós megoldás sem a lényeg az lenne hogy egy sorban legyen az építési dátum és a bontási dátum. 

 

 

 

A File amelyből kiindulok itt található https://files.fm/u/qxzzkxmeck

 

Köszönöm!

 

 

 

 

Sub FilterAndSummarizeData()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' Eredeti munkalap

Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

' Szűrjük az Épít sorokat és másoljuk a Summary lapra
Dim newSheet As Worksheet
On Error Resume Next
Set newSheet = ThisWorkbook.Sheets("Summary")
On Error GoTo 0
If Not newSheet Is Nothing Then
Application.DisplayAlerts = False
newSheet.Delete
Application.DisplayAlerts = True
End If
Set newSheet = ThisWorkbook.Sheets.Add
newSheet.Name = "Summary"

' Fejléc átmásolása és új oszlop hozzáadása
newSheet.Range("A1").Value = "SAP"
newSheet.Range("B1").Value = "Mappa"
newSheet.Range("C1").Value = "Üzem"
newSheet.Range("D1").Value = "Pozíció"
newSheet.Range("E1").Value = "Jkönyv"
newSheet.Range("F1").Value = "Betétlap"
newSheet.Range("G1").Value = "Építés dátuma"
newSheet.Range("H1").Value = "Bontási dátum"
newSheet.Range("I1").Value = "Hosszúság"
newSheet.Range("J1").Value = "Szélesség"
newSheet.Range("K1").Value = "Magasság"
newSheet.Range("L1").Value = "m3"
newSheet.Range("M1").Value = "Fsz_vagy 8m"
newSheet.Range("N1").Value = "Munkavégzés"

Dim newRow As Long
newRow = 2

' Másoljuk az Épít sorokat a Summary lapra
Dim i As Long
For i = 2 To lastRow
If ws.Cells(i, 13).Value = "Épít" Then
newSheet.Cells(newRow, 1).Value = ws.Cells(i, 1).Value
newSheet.Cells(newRow, 2).Value = ws.Cells(i, 2).Value
newSheet.Cells(newRow, 3).Value = ws.Cells(i, 3).Value
newSheet.Cells(newRow, 4).Value = ws.Cells(i, 4).Value
newSheet.Cells(newRow, 5).Value = ws.Cells(i, 5).Value
newSheet.Cells(newRow, 6).Value = ws.Cells(i, 6).Value
newSheet.Cells(newRow, 7).Value = ws.Cells(i, 7).Value
newSheet.Cells(newRow, 9).Value = ws.Cells(i, 8).Value
newSheet.Cells(newRow, 10).Value = ws.Cells(i, 9).Value
newSheet.Cells(newRow, 11).Value = ws.Cells(i, 10).Value
newSheet.Cells(newRow, 12).Value = ws.Cells(i, 11).Value
newSheet.Cells(newRow, 13).Value = ws.Cells(i, 12).Value
newSheet.Cells(newRow, 14).Value = ws.Cells(i, 13).Value
newRow = newRow + 1
End If
Next i

' Keresés és bontási dátumok hozzáadása
Dim betetlapId As Variant
Dim bontCount As Long
bontCount = 0
For i = 2 To newRow - 1
betetlapId = newSheet.Cells(i, 6).Value
Dim foundRow As Long
foundRow = 0
For j = 2 To lastRow
If ws.Cells(j, 6).Value = betetlapId And ws.Cells(j, 13).Value = "Bont" Then
foundRow = j
Exit For
End If
Next j
If foundRow > 0 Then
newSheet.Cells(i, 8).Value = ws.Cells(foundRow, 7).Value
bontCount = bontCount + 1
End If
Next i

' Szűrő hozzáadása a fejlécekhez
newSheet.Range("A1:N1").AutoFilter

' Oszlopok szélességének igazítása
newSheet.Columns("A:N").AutoFit

' Adatok kijelölése
newSheet.Range("A2:N" & newRow - 1).Select

' Teljes m3 összegzése és formázása
Dim totalSum As Double
totalSum = Application.WorksheetFunction.Sum(newSheet.Range("L2:L" & newRow - 1))
newSheet.Range("O1").Value = totalSum
With newSheet.Range("O1")
.Font.Bold = True
.Font.Italic = True
.Font.Color = RGB(255, 0, 0)
.Font.Size = 14
.Font.Name = "Calibri"
End With

' Eredeti bontás rekordok száma
Dim originalBontCount As Long
originalBontCount = Application.WorksheetFunction.CountIf(ws.Range("M2:M" & lastRow), "Bont")

' Eredmények ellenőrzése és megjelenítése
Dim checkSheet As Worksheet
On Error Resume Next
Set checkSheet = ThisWorkbook.Sheets("Check")
On Error GoTo 0
If Not checkSheet Is Nothing Then
Application.DisplayAlerts = False
checkSheet.Delete
Application.DisplayAlerts = True
End If
Set checkSheet = ThisWorkbook.Sheets.Add
checkSheet.Name = "Check"

checkSheet.Range("A1").Value = "Eredeti Épít összes Lm"
checkSheet.Range("A2").Value = Application.WorksheetFunction.SumIf(ws.Range("M2:M" & lastRow), "Épít", ws.Range("L2:L" & lastRow))
checkSheet.Range("B1").Value = "Summary Épít összes Lm"
checkSheet.Range("B2").Value = totalSum
checkSheet.Range("A3").Value = "Eredeti Bont rekordok száma"
checkSheet.Range("A4").Value = originalBontCount
checkSheet.Range("B3").Value = "Summary Bont rekordok száma"
checkSheet.Range("B4").Value = bontCount

' Az értékek megjelenítése és formázása
With checkSheet.Range("A1:B4")
.Font.Bold = True
.Font.Size = 12
.Font.Name = "Calibri"
End With
checkSheet.Columns("A:B").AutoFit

' Hibaüzenet, ha a bontási rekordok száma nem egyezik
If originalBontCount <> bontCount Then
MsgBox "A bontási rekordok száma nem egyezik meg! Eredeti bontási rekordok: " & originalBontCount & ", Átmásolt bontási rekordok: " & bontCount, vbExclamation
End If
End Sub

 

pimre Creative Commons License 2024.07.05 0 0 38113

Azt nem tudod megoldani, hogy bemásolás/törlés helyett kvázi "görgeted" a listát? Ha jól látom, alul van a legfrissebb adat, és a lista elején a legrégebbi. A görgetés ebben az esetben azt jelentené, hogy a Körte, szőlő, barack sorokkal felülírod az Alma, körte, szőlőt, amivel a barack sor megduplázódik. És a legalsó sorban lévő Barack adatokat írod felül az új adatsorral.

 

Én például egy évente frissülő jelentésben szereplő 5 éves grafikonsorokat szoktam ezzel a technikával frissíteni, így nem kell grafikonokat mindig újra rajzoltatni, hanem azzok autoatikusan aktualizálódnak.

Előzmény: DRolii (38112)
DRolii Creative Commons License 2024.07.05 0 0 38112

Ebben igazad van, viszont ez a táblázat az éppen folyamatban lévő munkákat "monitorozza". Amikor valami elkészül kikerül a rendszerből, ha valami új jön akkor pedig értelemszerűen be. Ha nem törlődne, nem lenne már átlátható, túl nagy lenne.

Az én célom pedig, hogy 1 vagy 2 hetes bontásban mindig rátudjak szűrni az éppen aktuális megrendelésekre és csak azt lássam, hogy milyen készültségben van. A tőbbi jövőben gyártandó termék ne keverjen be, csak a heti-két heti aktuális.

Előzmény: Fferenc50 (38111)
Fferenc50 Creative Commons License 2024.07.04 0 0 38111

Szia!

Azért a folyamatos törlés/bővítés nem nagyon tesz jót a képleteknek... inkább bővüljön folyamatosan és ne törölj belőle. A második munkalapra akkor is ki tudod szedni az adatokat, ha a "régiek" benne maradnak az elsőben.

A munkalapok stílusát te határozod meg, olyan lesz mindegyik, amilyenre beállítod.

Üdv.

Előzmény: DRolii (38110)
DRolii Creative Commons License 2024.07.04 0 0 38110

Mivel a Munkalap1 folyamatosan bővül/törlődik így mindenképpen muszáj egy második munkalapon dolgozni az adatokkal.

Előzmény: DRolii (38109)
DRolii Creative Commons License 2024.07.04 0 0 38109

Mit gondoltok, az is megoldható, hogy amilyen stílusban néz ki az egyik munkalap, ugyanolyanra csinálja a másikat is?

A célom az lenne egyébként, hogy az Munkalap1 adatokból mindig előre szűrjem határidő szerint 1 v. 2 héttel előre a munkákat. És ezekkel az adatokkal dolgozni, diagramok stb.

Fferenc50 Creative Commons License 2024.07.04 0 1 38108

A Hol.Van függvénynek pedig a Match felel meg, itt is rá kell nézned a paraméterezésre.

Előzmény: Fferenc50 (38107)
Fferenc50 Creative Commons License 2024.07.04 0 1 38107

Szia!

Úgy tudom, igen. Vlookup és Column függvény van a Google táblázatban is. A Vlookup paraméterezését azért nézd meg légy szíves.

Üdv.

Előzmény: DRolii (38106)
DRolii Creative Commons License 2024.07.04 0 0 38106

Köszönöm!

Mit gondoltok, ha Excelben működik, akkor elvileg Google táblázatban is működni kell, igaz? Csak a képletek neve más lesz.

Delila_10 Creative Commons License 2024.07.03 0 1 38105

Egy másik módszer:

Előzmény: DRolii (38103)
Fferenc50 Creative Commons License 2024.07.03 0 1 38104

Szia!

Az Fkeres függvény kiváló erre a célra:

B15 cella képlete: =FKERES($A$15;$A$20:$E$24;OSZLOP();0)

A képlet húzható jobbra. Figyelj a $-os címzésre.

Ha nem a második oszlopban van ahova írni szeretnél. akkor az OSZLOP függvény értékét módosíts a Név oszlop utánira + vagy - érték hozzáadásával. Ha pl. a 3. oszlopban szeretnéd kezdeni, akkor OSZLOP()-1 lesz a Határidőnek megfelelő eredmény.

Üdv.

Előzmény: DRolii (38103)
DRolii Creative Commons License 2024.07.03 0 0 38103

Sziasztok!

Érdeklődnék tudtok-e a problémámra függvényt vagy javaslatot.

 

Adott egy munkalap amin egy sorokból és oszlopokból álló adatsor van (bizonyos folyamatok nyomonkövetésére szolgál, mely az idő múlásával folyamatosan bővül vagy törlődik).

Létezik-e olyan függvény az excelben, ami egy bizonyos feltétel teljesülése esetén az egész sor értékeit kiírja vagy átmásolja a másik munkalapra?

 

Tehát:

Munkalap1 tartalmazza az adatokat

Munkalap2-ben pedig szeretném látni az adott feltételhez tartozó egész sort.

 

Például:

Munkalap1:

 

Név                   Határidő               Munkaszám         stb.           stb.

Alma                2024.07.05              24-001              ....             ....

Körte               2024.07.08               24-002            ....             ....

Szőlő               2024.07.10               24-003            ....             ....

Barack             2024.08.16               24-004            ....             ....

 

 

Munkalap2-n pedig szeretném látni a Barackhoz tartozó összes adatot.

 

 

Köszönettel:

Roland

 

 

Garashan Creative Commons License 2024.06.20 0 0 38102

Szerintem te ebbe futottál bele: http://forum.index.hu/Article/viewArticle?a=167183191&t=9009340
A hónap elején kellett újratelepíteni a gépemet, mert meghalt az SSD benne. Egy jópár évvel ezelőtti telepítővel telepítettem újra az Officet. Nem tudom, hogy telepítés után frissült-e vagy sem. Gyakorlatilag 1-2 napig biztosan úgy használtam, hogy a menügombos funkció nem működött jól, mert alapértelmezetten a keresésnél villogott a kurzor és oda történt az adatbevitel, nem a menüpontok között tudtam lépkedni a betűkkel.
Nekem megoldotta egy office frissítés és azóta ismét jól működik.
Arra sem emlékszem, hogy anno frissítette-e magát az office vagy ki voltak kapcsolva a frissítések rajta. Most hagytam őket bekapcsolva.

Amúgy kibaszott frusztráló volt a dolog. Mondjuk az is frusztráló, hogy ha IP címmel adok hozzá hálózati meghajtót, akkor nem lehet biztonságos helynek beállítani azt az office adatvédelmi beállításaiban. Távolról szoktam dolgozni VPN-en keresztül, volt egy szerver csere és megváltozott az IP cím és a szerver neve is... Mondanom se kell, hogy sok bosszúságot okozott volna, ha nem tudom mire jó a hosts fájl. Így az én munkaállomásomról olyan, mintha nem is lett volna csere.

Előzmény: MZ/Y (38101)
MZ/Y Creative Commons License 2024.06.20 0 0 38101

Kösz! Csak a menügombig működik, de már ez is segítség, utána 2 le és enter, így már nem kell egerészni. :)

 

Nem tudom, mióta van menü gomb, nem tűnt fel eddig. :) 

Előzmény: Garashan (38100)
Garashan Creative Commons License 2024.06.20 0 0 38100

Menü gomb-->É-->É-->Enter

Előzmény: MZ/Y (38099)
MZ/Y Creative Commons License 2024.06.19 0 0 38099

Egy nagyon amatőr kérdés:

Mi az "irányított beillesztés, érték" billentyűparancsa? Ms szerint Ctrl+Alt+V hozná a lehetőségeket (ami nekem amúgy sem lenne az igazi, rögtön az érték-et szeretném beszúrni), de nekem erre ír egy @-ot és villog utána a kurzor. A másik, amit ír (Alt+E+valami, ha jól rémlik), még ennyit sem csinál.

illetlenke Creative Commons License 2024.06.19 0 0 38098

Ezen a modik nem tudnak segíteni.

Előzmény: Delila_10 (38097)
Delila_10 Creative Commons License 2024.06.19 0 0 38097

Bocs, ha nem válaszoltam, de oda akkor tudtam belépni, mikor az értesítést kaptam. Nem tudom, hol érem el a modisat.

Előzmény: illetlenke (38095)
Delila_10 Creative Commons License 2024.06.19 0 0 38096

Nincs.

De most megint kérte a címet és a jelszót.

Előzmény: illetlenke (38095)
illetlenke Creative Commons License 2024.06.19 0 0 38095

A modi nem csinált semmit, csak várta, hogy beszámolsz sikerült-e.

De ez a modi baja.

Balra fent a nick neved alatt nincs olyan, hogy Válts nicknevet!?

Előzmény: Delila_10 (38094)
Delila_10 Creative Commons License 2024.06.19 0 0 38094

Mégis csinált valamit a modi, bár azt mondta, minden rendben van. Kikapcsolás után nem kellett újra belépnem.

Előzmény: Eredő Vektor (38091)
Delila_10 Creative Commons License 2024.06.19 0 0 38093

Most látom, már biciklis vagyok, hurrá!

Előzmény: Delila_10 (38092)
Delila_10 Creative Commons License 2024.06.19 0 0 38092

A modi szerint sem vagyok kitiltva.

Továbbra is kéri a címet és jelszót. Beléptet, de ezt az üzenetet kapom:

Ezután újra rá kell kattintanom a könyvjelzősávon a kitett Exceles, Indexes  ikonra, de már nem kell megadnom az adataimat. Egyszerű...

Előzmény: Eredő Vektor (38091)
Eredő Vektor Creative Commons License 2024.06.19 0 0 38091

Az automatikus közlemények között nem szerepelsz. 

https://forum.index.hu/Article/showArticle?t=9111584

 

Előzmény: Delila_10 (38090)
Delila_10 Creative Commons License 2024.06.18 0 0 38090

Most azt írta, hogy talán kitiltottak, vagy olyan helyre próbáltam belépni, ahova nem szól az engedélyem.

 

Ez már a harmadik nevem. Először Delila1 voltam, de megváltozott az email címem, amit nem engedett módosítani az újra. Akkor Delila10 néven léptem be az új címemmel (veteránból babakocsis lettem).

Most nem változott semmi, de újra regisztrálni kellett, hogy beléphessek, így lettem Delila_10, és ismét kezdő.

Írtam a modinak, hátha... 

Előzmény: Eredő Vektor (38089)
Eredő Vektor Creative Commons License 2024.06.18 0 0 38089

Én ezt nem tapasztalom. Egyik eszközömön sem.

Kukázd le a cookie-kat, hátha megoldja...

Előzmény: Delila_10 (38082)
Andyyy42 Creative Commons License 2024.06.15 0 0 38088

Sziasztok,

 

Köszönöm a segítséget, sikerült megoldani :-)

Előzmény: Andyyy42 (38066)
pimre Creative Commons License 2024.06.15 0 0 38087

Köszönöm. Egyébként ugyanezt csináltam, és azt hittem az a baj, hogy a két hasonlítandó munkalap neve azonos. De alaposabban megnézve rájöttem, hogy egy ponton egy ciklusváltozót elrontottam, és így a program egyszerűen átugrotta az adatok egy részét, és nem listázta a meglévő eltéréseket. Ezért hittem azt, hogy az azonos munkalapneveket nem jól kezelem. 

Előzmény: Fferenc50 (38086)
Fferenc50 Creative Commons License 2024.06.15 0 0 38086

Szia!
Miért ne tudnád?

Vezess be változókat, amikhez hozzárendeled az adott munkalapokat. Pl.

Set ws1=Workbooks(1).Sheets("Munka1")

Set ws2=Workbooks(2).Sheets("Munka1")

Ezután pedig használd a változókat a makróban a műveletekhez.

Üdv.

Előzmény: pimre (38085)
pimre Creative Commons License 2024.06.15 0 0 38085

Sziasztok, régóta használok egy makrót két munkafüzet azonos szerkezetű munkalapjainak összehasonlítására. Most felmerül az a helyzet, hogy az összehasonlításhoz mindkét munkafüzet munkalapjainak azonos a neve. Azt hiszem, ezt nem tudom megoldani átnevezgetés nélkül. De megkérdezem, nincs-e mégis valami trükk az átnevezgetés megkerülésére? 

Delila_10 Creative Commons License 2024.06.14 0 0 38084

Megnyugtattál. :)

Előzmény: Garashan (38083)
Garashan Creative Commons License 2024.06.13 0 0 38083

Engem is szivat... De már évek óta.
Szerintem rosszul vannak megírva a cookiekhoz tartozó kódok. Mert van, hogy kiléptet és van amikor pedig nem... Nem függ az eszköztől és a böngészőtől sem.

Előzmény: Delila_10 (38082)
Delila_10 Creative Commons License 2024.06.13 0 0 38082

Mindenkit kiléptet minden alkalommal az Indapass, vagy csak rám haragszik? Bejelöltem a benn maradást.

Delila_10 Creative Commons License 2024.06.13 0 0 38081

Ha nem kapsz jobb ötletet, nézd meg a feltételes formázással színezett cellákat, a sorukban lévő hossz kell neked.

Előzmény: Balu424 (38080)
Balu424 Creative Commons License 2024.06.12 0 0 38080

Hogy íratom ki ezeket az értékeket a Közös antennahossz mezőbe? :-O

Előzmény: Delila_10 (38078)
Balu424 Creative Commons License 2024.06.12 0 0 38079

Sajnos nem értem milyen számok azok a jobbra eső második oszlopban

Előzmény: Delila_10 (38078)
Delila_10 Creative Commons License 2024.06.12 -1 0 38078

Vigyázat! A D oszlop celláiban eltérők a képletek.

Előzmény: Balu424 (38074)
Eredő Vektor Creative Commons License 2024.06.11 0 0 38077

Meg igy is meg lehet csinalni, nekem sajnos nincs idom mostanaban segiteni:(

Előzmény: Balu424 (38076)
Balu424 Creative Commons License 2024.06.11 0 0 38076

Nem biztos, hogy az egymással szembeni számokat kell összehasonlítani. A példában a 144 MHz antenna 1/4-es értéke és a 430 MHz 3/4-es értéke van egymáshoz a legközelebb.   Ez szemmel is megállapítható. de azt hittem, hogy "automatizálva" egyszerűbb.

 

Előzmény: Eredő Vektor (38075)
Eredő Vektor Creative Commons License 2024.06.11 0 0 38075

Szia,

az antennatípusokkal még ki kellene egészítened a jobb oldali összehasonlítást, amik írásod szerint egymással szemben vannak. Mondjuk az AH oszlopba a kettő közé.

Utána csinálj egy különbségszámítást az AF oszlopba a két számból. Abszolút értékben tedd ezt meg, mert csak a különbség kell, az előjel mindegy lesz.

Ebből az oszlopból kell megkeresned azt, ami kisebb mint 1.

Tegyél be még 1 segédoszlopt első oszlopnak mondjuk az AE oszlopba, a képlete legyen pl. AF<1. Így ebben az oszlopban kapsz egy igaz / hamis  cellaértéket

 

 

Ha fentiek szerint jársz el, akkor a sárga celládba kell egy FKERES, amiben megkeresed az első IGAZ találatot és visszaadod az antennatípus oszlopából a találatot.

valami ilyesmi, ha fentiek szerint járrtál el:

FKERES(IGAZ; AE:AH; 4; 0)

 

ha nem erre gondoltál pontosan, szerintem rá tudod már szabni a saját tábládra. 

Előzmény: Balu424 (38074)
Balu424 Creative Commons License 2024.06.11 0 0 38074

sziasztok

 

Lenne egy problémám, de lehet, hogy nem lehet megoldani. 

Készítettem egy Antenna méretező segédprogramocskát magamnak.

 

 

Vannak olyan antennák, amelyek két frekvenciákra méreteznek, ilyenkor megnézik, hogy melyik két hossz áll legközelebb egymáshoz.  Ahogy a képen is látszik, az értékeket jobb oldalra csoportosítottam egymással szemben.

Sajnos nem találtam olyan függvényt, amely a két 7-es csoportot összehasonlítja és kiválasztja azt az értéket, amelyek között pl. max 1 cm különbség van. Ezt az értéket beírja a "Közös antennahossz...cm helyre.

 

Ki tudna ebben segíteni?  Igen tidom szemrevételezéssel is ki lehetne választani, de jó lenne ha ez "automatizálva" történne. 

 

 

 

 

Garashan Creative Commons License 2024.06.09 0 0 38073

Megoldódott. Kézzel rányomtam a frissítések keresésére és telepített egyet. Így most már a kivágás menüpont az aktív alapértelmezetten, nem a keresés, és rendesen működnek a gyorsbillentyűk is ezáltal.

Előzmény: Garashan (38072)
Garashan Creative Commons License 2024.06.09 0 0 38072

Sziasztok!

 

Régen jártam már erre felé, de most én kérdeznék:

 

Elszállt az SSD a gépemben, így kénytelen voltam újratelepíteni....

Elvileg ugyan azt az Excel verziót telepítettem, mint ami korábban a gépemen volt, azaz a Microsoft Office Professional Plus 2021 verzióját. Ehhez vettem meg anno a termékkulcsot, így adta magát, hogy ez is kerüljön vissza. Mégis másképpen működik, mint ez előtt.

 

Ami az őrületbe kerget az a következő: Ha nyomok egy menü gombot a klaviatúrán, akkor most felhoz egy kereső sávot is és abban villog a kurzor. Lásd a mellékelt fotót, így hiába püfölöm az "É" gombot kétszer, hogy csak értékeket illesszen be, le se tolja a fejemet, mert elkezdi beírni a keresendő kifejezéshez... Ettől az idióta funkciótól hogyan lehet megszabadulni?

 

_Nyuszi Creative Commons License 2024.06.08 0 0 38071

félOFF

Ohh, nem is értettem a babakocsit, de ez mindent megmagyaráz.

:)

Előzmény: Delila_10 (38070)
Delila_10 Creative Commons License 2024.06.08 0 0 38070

Megint újonc lettem. Másodjára dobott ki az Indapass.

Először évekkel ezelőtt, mikor megváltozott az email címem. Most valahogy a rongyos régire emlékezett, a több évest elfelejtette. Oda meg hiába küldött az "elfelejtett jelszó" helyett újat, a cím megszűnése miatt nem kaptam meg.

 

Előzmény: pimre (38068)
Delila_10 Creative Commons License 2024.06.08 0 0 38069

Ahogy pimre javasolta, egyenként behívod a fájlokat a másoláshoz.

 

Az elsőnél fejléccel együtt – Range("A1").CurrentRegion.Copy

a többinél anélkül – Range("A1").CurrentRegion.Offset(1).Copy

Előzmény: Andyyy42 (38066)
pimre Creative Commons License 2024.06.07 0 0 38068

Még annyit, hogy a fájlnevek beolvasásához használd a DIR függvényt. Ciklusban végégmész a fájlokat tartalmazó könyvtáron - amíg nem lesz üres az eredmény -, és a beolvasott fájlnevekben ellenőrzöd, hogy azok-e, amik neked kellenek (feltéve, hogy nás fájlok is vannak az adott könyvtárban). Aztán sorba rakod őket, és onnan már egyszerű megnyitni, bemásolni.

Előzmény: pimre (38067)
pimre Creative Commons License 2024.06.07 0 0 38067

Ezt nem nehéz makróval összehozni egyetlen munkafüzet egyetlen munkalapjára.

 

Az adatfájlokhoz rendelj hozzá egy nevet, pl. Adatok 2024, az egyes letöltött fájlok neve legyen ugyanez egy sorszámot tartalmazó toldalékkal. Pl Adatok 2024_1, Adatok 2024_2 stb. Azt meg tudod adni a makróban, hogy az Adatok 2024 kezdetű fájlokat nyissa meg, majd a legelsőt másolja be fejlécestől, a továbbiakat pedig fűzze hozzá a meglévőhöz fejléc nélkül. 

Előzmény: Andyyy42 (38066)
Andyyy42 Creative Commons License 2024.06.07 0 0 38066

Sziasztok,

 

A következőkben szeretném a segítségeteket kérni:

Rendszerből kérünk le különböző időintervallumokra adatsorokat.
Ezeket a rendszer exel-be hozza, táblázatos formátumban.
A rendszerből 3 hónapnál hosszabb intervallumra nem lehet lekérdezni.

 

Így van amikor ha mondjuk 1 évre visszamenőleg kellenek adatok, az 4 lekérdezés.

Azt, hogyan lehet megcsinálni, hogy lekérdezem az adatsorokat 1 mappába és azt VBA-val egy excellé =  egy táblázattá alakítani őket.

Változó, hogy a mappában mennyi táblázat lenne (1-5 -10 db, bármennyi)
Mindegyiknek azonos a fejléce, de értelem szerűen a fejléc csak egyszer szerepeljen és aztán az adatsorok betöltve a lekérdezés sorrendjében.

 

Köszönettel,
András 

 

maciti Creative Commons License 2024.06.07 0 0 38065

Szia!

Kitűnő ötlet a tömb!

Egyébként is ez egy kód része, ezért nagyon egyszerűen bedobáltam az értékeket egy kétdimenziós tömbbe, és már teszi is a dolgát a VLookup...

Tökéletesen működik egyszerű mint a faszög! Hogy nem jutott ez eszembe egy hét alatt?

Köszi a segítséget

Előzmény: Fferenc50 (38064)
Fferenc50 Creative Commons License 2024.06.06 0 0 38064

Szia!

Nem mind arany ami fénylik a VBA-ban sem. 

1.

Ha alaposabban megvizsgálod a mintában levő függvényt, akkor kiderül, hogy az egy tömbfüggvény, csak O365-ben ez már nem jelölődik kapcsos zárójellel. 

Ezért én egyszerűen simán beírnám a függvényt FormulaArray-ként a VBA-val a C10 cellába, majd kitölteném lefelé:

Range("C10").FormulaArray="=VLOOKUP(CONCATENATE(A10,B10),CHOOSE({1,2},CONCATENATE(INDEX($K$2:$M$32,0,1),INDEX($K$2:$M$32,0,2)),INDEX($K$2:$M$32,0,3)),2,TRUE)"

Range("C10:C17").FillDown

Ezzel kész az egész.

Azért kell először egy cellába beírni a képletet és utána kitölteni lefelé, mert ha egyből az egész tartományba írnánk be, akkor csak az első sor érvénysülne az egész tömbben. (Ne kérdezd miért, ez van....)

2.

(Részben) VBA-val azért bonyolultabb, mert VBA-ban nem tudod a két oszlopot egyszerű módon összefűzni. Én azt választottam, hogy beolvastam a táblázatot egy tömbváltozóba, a változó első két oszlopát összefűztem - a második változatlan maradt -  és a harmadik oszlopban keresek, mivel az FKERES tömbben is képes keresni, nemcsak tartományban.

Igy nézne ki:

Sub Minta()
Range("C10").Value = Keres_Func(Range("C10").Row)
End Sub
Public Function Keres_Func(sora As Integer) As Variant
Dim ws As Worksheet
Dim r As Range
Dim keres As String
Dim keresotomb, xx As Integer
Set ws = Workbooks("Fkeres_tobb_feltetellel.xlsm").Worksheets("Proba2")
keres = ws.Range("A" & sora) & ws.Range("B" & sora)
keresotomb = ws.Range("K2:M32").Value
For xx = 1 To UBound(keresotomb, 1)
keresotomb(xx, 1) = keresotomb(xx, 1) & keresotomb(xx, 2)
Next
Keres_Func = Application.VLookup(keres, keresotomb, 3, 0)
End Function

 

Ne feledd, hogy ebben az esetben a cella értéket kap és nem képletet, így nem húzható lefelé!!! Minden cellára egyenként kell az értéket előállítani a függvény meghívásával. 

Szerintem ez a bonyolultabb út.

Előzmény: maciti (38063)
maciti Creative Commons License 2024.06.05 0 0 38063

Köszi!

Ha nem lesz más megoldás akkor ez marad.

 

Itt a fórumon néhány hete ügyeztünk erről a függvényről:

A minta C10 cellába beírva: =FKERES(ÖSSZEFŰZ(A10;B10);VÁLASZT({12};ÖSSZEFŰZ(INDEX($K$2:$M$32;0;1);INDEX($K$2:$M$32;0;2));INDEX($K$2:$M$32;0;3));2;IGAZ)

működik...

Ezt szerettem volna VBA ban megírni, de nem jártam sikerrel.

 

Előzmény: pimre (38062)
pimre Creative Commons License 2024.06.05 0 0 38062

Most alaposabban megnéztem.

 

Én nem tudok olyan Excel függvényről, amely 2 oszlop összefűzésének eredményét keresné egy másik tartomány 2 össze nem fűzött oszlopában.

 

Ehhez a célterületen létre kell hoznod egy segédoszlopot, és abban keresni. Nálam ez az N oszlop lett. A 2-32 cellák tartalma pedig az N2-ben K2 & L2,és ez lefelé kitölve.

 

És mivel képtelen voltam rájönni, hogy a vlookup függvény miért ad Variant/error hibát, ezért – amíg valaki meg nem találja a megoldást – javaslom, hogy a find függvénnyel keress. Ez egy Range típusú változóban adja vissza az eredményt (nálam találat a neve), és ennek a sor értékét lekérdezve tudsz értéket adni az A3-nak:

 

 

Sub Minta()

Dim eredm As Variant

Range("A3") = Keres_Func

End Sub

 Public Function Keres_Func() As Variant

   Dim ws As Worksheet

   Dim r As Range

   Dim keres As String, talalat As Range

  

   Set ws = Workbooks("Fkeres_tobb_feltetellel.xlsm").Worksheets("Proba2")

   keres = ws.Range("A12") & ws.Range("B12")

 

   Set talalat = ws.Columns("N:N").Find(what:=keres, LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByColumns, MatchCase:=True)

   If talalat Is Nothing Then ' Ha nincs meg, bár ez elég valószínűtlen

    Keres_Func = "Nem találom"

   Else

    Keres_Func = ws.Cells(talalat.Row, "L")

   End If

   'Set r = WorksheetFunction.Choose(Array(1, 2), ws.Range("K2:K32") & ws.Range("L2:L32"), ws.Range("M2:M32"))

End Function

 

Előzmény: maciti (38061)
maciti Creative Commons License 2024.06.05 0 0 38061

Igen, a kíséletezéseim során ilyen verzió is volt.

Próbáltam a MACH funkciót is, de az sem jött össze:

Public Function Keres_Func() As Variant
   Dim ws As Worksheet
   Dim r As Range
   Dim keres As String
   
   Set ws = Workbooks("Fkeres_tobb_feltetellel.xlsm").Worksheets("Proba2")
   keres = ws.Range("A10") & ws.Range("B10")

  Keres_Func = Application.Match(keres, Choose(2, ws.Range("K3") & ws.Range("L3"), ws.Range("M3")), 0)

End Function

Bízom benne, hogy több szem többet lát...

Előzmény: pimre (38060)
pimre Creative Commons License 2024.06.04 0 0 38060

Szia, szerintem azért áll le a program, és ad típuseltérés hibát, mert a Choose függvényben tartományokat adtál meg: 

Keres_Func = Application.VLookup(keres, Choose(2, ws.Range("K2:K32") & ws.Range("L2:L32"), ws.Range("M2:M32")), 2, 0)

 

A teszt kedvéért átjavítottam a tartományokat egyedi cellákra: Choose(2, ws.Range("K2") & ws.Range("L2"), ws.Range("M2")), 2, 0), akkor nem állt le hibaüzenettel a program, de még így is hibás, mert a Keres_Func értéke Error 2042 lesz: Variant/Error. (Ezt a Locals ablakban láthatod). Majd az A3-ban pedig #HIÁNYZIK üzenet jelenik meg. Ennek az okát nem tudom. 

 

 

Előzmény: maciti (38059)
maciti Creative Commons License 2024.06.04 0 0 38059

Sziasztok!
Próbáltam a múltkori multi-keresést VBA kódba megírni, de nem sikerült, mindig tipuseltérés hibát ad. Van valami ötletetek?
Minta: https://data.hu/get/14205151/Fkeres_tobb_feltetellel.xlsm
Köszi!

Előzmény: Fferenc50 (37987)
m54-b Creative Commons License 2024.05.31 0 0 38058

 

 

Az adatsort havonta igazítod. Ha nincs adatsorod, amelyik az év végén lenne, akkor az időskálát meg kell adni fixen.

Előzmény: hellsing (38056)
Fferenc50 Creative Commons License 2024.05.31 0 0 38057

Szia!

Legyen üres az a cella, amiben még nincs adat - képlet se legyen benne! Ezután az adatforrás kiválasztása párbeszéd panelen rákattintasz a rejtett és üres cellák gombra, majd bejelölöd az adatpontok összekötése vonallal opciót.

Amikor adat kerül - akár képlettel - a még üres cellába, ez az opció nem hat már tovább.

Üdv.

Előzmény: hellsing (38056)
hellsing Creative Commons License 2024.05.31 0 0 38056

Üdv, segítség kéne. Van egy vonaldiagramom, ami éves adatokat jelenít meg. Az a gond, hogy ahol még nulla van (értsd: a jövőbeni adatok helye, pl. most a június), ott a mostani tudásommal két rossz közül választhatok:

 

1: a cellákban elrejthetem a nullákat (Beállítások -> Speciális...), de a vonaldiagram beleáll a földbe, ami nem néz ki jól;

2: a cellákban a nullák helyén =HIÁNYZIK()-ot jelenítek meg, amit elrejthetek (Feltételes formázás), és a vonal nem áll a földbe, hanem megszakad (ez a cél), de a cella értéke a többi munkalapra is átmegy, mindenhol hibával, amit q kényelmetlen lekezelni.

 

Van valami jobb megoldás?

Eredő Vektor Creative Commons License 2024.05.31 0 0 38055

Az Excel-ben található hiperhivatkozások működése és a kattintási viselkedés beállítása több tényezőtől függ, beleértve a felhasználói beállításokat és a program verzióját is. Az alábbi lépések segíthetnek a probléma megoldásában:

1. Frissítések Telepítése

Győződjön meg róla, hogy minden felhasználó a legújabb Office frissítéseket telepítette. Ez sok esetben megoldhatja a problémákat.

2. Alapértelmezett Böngésző Beállítása

Győződjön meg róla, hogy minden felhasználónál ugyanaz a böngésző van beállítva alapértelmezettként. Az Excel hiperhivatkozások megnyitásához általában az alapértelmezett böngészőt használja.

3. Excel Beállítások Ellenőrzése

Ellenőrizze az Excel beállításait minden felhasználónál:

  1. Nyissa meg az Excel-t.
  2. Kattintson a Fájl menüre.
  3. Válassza a Beállítások lehetőséget.
  4. Menjen a Speciális fülre.
  5. Görgessen le a Szerkesztési beállítások szakaszhoz.
  6. Győződjön meg róla, hogy a "Hiperhivatkozások kattintásra aktiválása" beállítás be van kapcsolva.

4. Böngésző Biztonsági Beállítások

Néha a böngésző biztonsági beállításai megakadályozhatják a hiperhivatkozások közvetlen megnyitását. Ellenőrizze és szükség esetén állítsa vissza a böngésző biztonsági beállításait.

5. SharePoint Beállítások

Ha a fájl egy SharePoint alkalmazásban van tárolva, győződjön meg róla, hogy a SharePoint beállításai egységesek minden felhasználó számára. Az engedélyek és a hozzáférési beállítások eltérései is okozhatják a problémát.

6. Makró Biztonsági Beállítások

Néha a makró biztonsági beállítások is befolyásolhatják a hiperhivatkozások működését. Győződjön meg róla, hogy minden felhasználónál a makró biztonsági szint megfelelően van beállítva.

Összefoglalás

A probléma megoldása érdekében ellenőrizze a következőket:

  1. Office frissítések telepítése.
  2. Alapértelmezett böngésző beállítása.
  3. Excel beállítások ellenőrzése (különösen a "Hiperhivatkozások kattintásra aktiválása" opció).
  4. Böngésző biztonsági beállításai.
  5. SharePoint beállításai.
  6. Makró biztonsági beállításai.

Ezek a lépések segíthetnek abban, hogy a hiperhivatkozások minden felhasználó számára megfelelően működjenek.

Előzmény: dorogszu (38054)
dorogszu Creative Commons License 2024.05.30 0 0 38054

=HIPERHIVATKOZÁS(ÖSSZEFŰZ(G$1;B303);B303) adott ez a hivatkozás amely megfelelően működik . A file egy sharepoint alkalmazásban felhőben van elhelyezve. Több felhasználó is használja. Vannao olyan felhasználók akinél a hivatkozás a bal egérgombbal való kattintással megnyílik. Ez a jó. Vannak olyan felhasználók akiknél a hivatkozást csak két billentyű lenyomásával tudja elindítani. Mit kell beállítani, hogy a hivatkozás a bal egérmutató kattintásával elinduljon?

 

Fferenc50 Creative Commons License 2024.05.27 0 0 38053

Szia!
Elképzelhető, hogy a szövegből oszlopokkal lenne érdemes kezdeni. Ott a 3. lépésben ki lehet választani az oszlop formátumát.

Ráadásul rá lehet ereszteni ugyanarra az oszlopra, nem kell hozzá segédoszlop.

Üdv.

Előzmény: Eredő Vektor (38052)
Eredő Vektor Creative Commons License 2024.05.27 0 0 38052

Mi a dátumot tartalmazó cella szövegformátuma? (Ctrl+1 billentyűvel [is] megnézhető a szövegformátum)

 

 

Ha ez a szövegformátum nem dátum típusú (valószínűleg így van), akkor használd a 

https://support.microsoft.com/hu-hu/office/d%C3%A1tum-f%C3%BCggv%C3%A9ny-e36c0c8c-4104-49da-ab83-82328b832349

függvényt.

 

A hónap, nap szétválasztásához, pedig a BAL, JOBB, KÖZÉP függvények használhatóak a DÁTUM függvény belsejében.

 

Ez csak 1 lehetőség a sokból.

 

Ha nem dátum formátumúak az ilyen dátumot tartalmazó cellák, akkor lehet, hogy érdemes megpróbálni a szövegformátumot dátumra állítani, hátha dátummá alakul és onnantól a dátumfüggvények működnek rajta.

 

De ez még kevés lesz, végig kell az átalakított szövegformátumú cellákon "gyalogolni" egy F2, ENTER művelettel. Ha nagy tömegvben an van oszlopban , akkor ezt megteszi helyetted a szövegből oszlopok opció.

Előzmény: brandi12345 (38051)
brandi12345 Creative Commons License 2024.05.27 0 0 38051

Sziasztok! Segítséget szeretnék kérni.Van egy táblázatom amiben dátumok vannak

(sok dátum).Beirva úgy van,hogy 11,03, tehát forditva 3.hó 11 lenne.

Képlettel hogy lehetne megoldani hogy tudjam melyik hét a képletbe irjam be hogy melyik év.

Ha az idei év 2024-03-11 ez lenne az eredmény és ebböl már a HÉT.SZÁMA képlet megadná az eredményt.

Gondoltam összefüzésre. Az évet összefüzném a napok meg a hónapokkal de nem lett úgy jó.

Erre szeretnék megoldást.Köszönöm előre is.

zed79 Creative Commons License 2024.05.27 0 0 38050

Nagyon köszönöm, tökéletes!!!

Előzmény: pimre (38049)
pimre Creative Commons License 2024.05.26 0 0 38049

"az egyes értékek végén van még egy plusz vessző. (Valamint egy szóköz.) ".  Próbáld meg, akár jegyzettömbbel, akár Excellel megnyitni - utóbbinál egyelőre nem kérni a szövegből oszlopok transzformációt -, majd a cserénél a Vesző + szóközt valami másra (például pontosvessző) cserélni. ezzel megmaradnak tizedsvesszők, de a határolójel a pontosvessző lesz. Ezzel már fog működni a transzformáció.

Előzmény: zed79 (38048)
zed79 Creative Commons License 2024.05.26 0 0 38048

Sziasztok!

 

A problémám az alábbi. Egy térinfós szoftver .csv-ben dobja ki az eredménytáblát, amellyel tovább kellene dolgoznom.

A több oszlopban lévő numerikus értékek tizedesjegy elválasztója vessző, emellett az egyes értékek végén van még egy plusz vessző. (Valamint egy szóköz.) 

Próbáltam az Adatok/Szövegből oszlopok-kal (szóközt beállítva. mint határoló jelet), ami szépen külön oszlopokba rendezi az értékeket, ugyanakkor a gond továbbra is az egyes értékek végén található vessző. Ez nyilvánvalóan nem szükséges.

Hogyan lehetne eltávolítani az értékek utáni vesszőt? Köszönöm a segítségeteket!

 

 

Takeoff. Creative Commons License 2024.05.26 0 0 38047

Köszönöm! 

 

Ezzel el leszek egy darabig. 

Előzmény: Fferenc50 (38039)
Fferenc50 Creative Commons License 2024.05.25 0 0 38046

Szia!

Attól függ, milyen címzéssel használod a képletet, de a lehúzásnál is ugyanaz a helyzet. Ha abszolút ($-os) címzést használsz sorra és oszlopra is, akkor igen.

Ha lehúzással jó volt a képlet, akkor a másolással is jónak kell lennie.

De örülök, hogy Imre javaslatával megoldottad.

Üdv.

Előzmény: MM10 (38042)
MM10 Creative Commons License 2024.05.25 0 0 38045

nagyszerű megoldás,köszönöm 

pimre Creative Commons License 2024.05.25 0 0 38044

Járművön írtam telefonon, remélem az elutesek ellenére is érthető.

Előzmény: pimre (38043)
pimre Creative Commons License 2024.05.25 0 0 38043

Írd be a képletet egy segéd oszlopba (persze a B elé tegyél dollarjelet), aztán húzd le.

Utána másod kia teljes oszlopot, és irányított beillesztessel másold helyére csak a képletet.

Előzmény: MM10 (38042)
MM10 Creative Commons License 2024.05.25 0 0 38042

de így a képlet változatlan marad.

 

tehát a képletem mondjuk B7 ,és az alatta lévő helyen már B8 kell hogy legyen,majd B9 és így tovább. Ha lehúzom váltja a képletet is ugye,de a formátumot. én úgy szeretném hogy a formátum is megmaradjon minden helyen ahogy volt,és a képlet is változzon úgy mint lehúzásnál és ne keljen egyenként bemásolnom 800 helyre. Ezt így nem lehet megoldani sehogy sem?

Fferenc50 Creative Commons License 2024.05.25 0 0 38041

Szia!
Lehúzással megy a formázás is. Helyette: kijelölöd a másoladó képletet tartalmazó cellát, majd Ctrl +C  (vagy jobb egérgomb másolás), 

utána kijelölöd azt a tartományt, ahová a képletet szeretnéd másolni. Ezen állva jobb egérgomb - irányított beillesztés - képletet. Ezután ESC és megszűnik a kijelölés.

Ha egymás mellett vannak a képletet tartalmazó cellák, akkor együtt is megy a fentiek szerint.

Üdv.

Előzmény: MM10 (38040)
MM10 Creative Commons License 2024.05.25 0 0 38040

Üdv.

 

Egy olyan problémába ütköztem,hogy van nekem egy majdnem teljesen készen lévő táblám.

 

A cellák formázása kész teljesen (cella kitöltő szín,betűszín,betűtípús,betűméret), a rácsok készen vannak az egész táblához. 

 

Egyetlen egy dolog hiányzik a táblából,4darab képlet, amit 1-1x kéne beírnom a sor legtettejére és lehúznom a végtelenségig.

És itt jön a problémás rész,a képlet lehúzásával az összes cellában változik a formátum olyanra mint amelyik cellából lehúztam,ezeket visszaállítani órákig tartana.

Tudok valahogyan "Fill handle"-t (lehúzásos módszert) használni úgy hogy semmi mást ne alkalmazon a többi cellára csak a képletet és a formátumot és mindenmást hagyjon figyelmen kívül?

 

Jelenleg ezt google drive táblában csinálom,nem excelben.

Fferenc50 Creative Commons License 2024.05.24 0 0 38039

Szia!
Természetesen.

Feltételes formázás - új szabály - a formázandó cellák kijelölése képlettel - a képletbe pedig beírod a megfelelő relációt.

De a dátummal-idővel kicsit kacifántosabb a dolog.

FONTOS! Mindegy, hogy milyen formátumban látod a cellában az időt, mivel az Excel számként kezeli a dátumot és az időt a következőképpen:

Az egész rész az 1900 jan. 0! óta eltelt napok számát jelenti (tehát 1 = 1900.01.01!), a törtrész jelenti a napon belüli időt, pl. 0,5 =12:00:00.

Vagyis ha egy napon belüli időt írsz be, azt törtként fogja értelmezni az Excel. Ha arra vagy kíváncsi, hogy ez a mostani időhöz hogyan viszonyul, akkor a MOST() - MA() értéket kell hasonlítanod az adott időhöz. Ha időt közvetlenül szeretnél képletbe bevinni, akkor az IDŐ vagy az IDŐÉRTÉK függvényeket kell használnod.

MÁS A HELYZET, ha szövegként vannak a cellában az értékek, ebben az esetben a hasonlítást is szövegként (vagy idővé-azaz számmá - alakítás után) tudod megtenni, de a szövegek hasonlítása más eredménnyel járhat, mint a számok összehasonlítása!!!

Azt pedig, hogy az adott cellában szöveg vagy "szövegnek látszó" szám van, a cella formátum megváltoztatásával tudod tesztelni. Ha számformátumra állítod a cellát és marad a benne levő érték változatlan, akkor szövegként van tárolva az érték és csak látszik pl. időnek. Ellenkező esetben számmá - tizedes törtté kell változnia a megjelenésnek.

Remélem tudtam segíteni.

Üdv.

Előzmény: Takeoff. (38038)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!