Keresés

Részletes keresés

Sánta Kutya (SK) Creative Commons License 2020.11.15 0 0 35040

Szerintem az lenne az értelmes feladat, hogy ha kap valaki egy ilyen förmedvényt, akkor hogy csináljon normálisan formázott táblázatot belőle.

Előzmény: hellsing (35035)
Sánta Kutya (SK) Creative Commons License 2020.11.15 0 0 35039

Na ez az, amit még az emelt érettségin sem kell tudni.

Előzmény: hellsing (35038)
hellsing Creative Commons License 2020.11.15 0 0 35038

Bocs, a Google a távoli barátunk: _($* #.##0,00_);_($* (#.##0,00);_($* ''-''??_);_(@_)

 

De tényleg minek...

Előzmény: hellsing (35035)
hellsing Creative Commons License 2020.11.15 0 0 35037

+1p :)

Előzmény: Sánta Kutya (SK) (35036)
Sánta Kutya (SK) Creative Commons License 2020.11.15 0 2 35036

Azt nem tudom, de én inkább azt kérdezném, hogy mi értelme van.

Előzmény: hellsing (35035)
hellsing Creative Commons License 2020.11.15 0 0 35035

Sziasztok, a gyermek (13) kapott a suliban egy Excel feladatot: formázzon meg egy nyers táblázatot a mellékelt ábra szerint. Minden OK, de hogy kell a $ jelet (3. oszlop) a cella bal szélére passzítani úgy, hogy a számok jobbra igazítottak? Ez egy cella, nem csak a függőleges cellahatár van eltüntetve.

 

pimre Creative Commons License 2020.11.15 0 0 35034

Viszont hiába az egész, mert Delila megoldásához képest az enyém túlbonyolított.

Előzmény: James 42 (35033)
James 42 Creative Commons License 2020.11.15 0 0 35033

Igazad van, nem figyeltem arra, hogy a C oszlop számai a B oszlop előző sorából jönnek.

Előzmény: pimre (35032)
pimre Creative Commons License 2020.11.14 0 0 35032

Amíg nem próbáltam ki, én is azt hittem. De mivel a a hiányzó helyén a B oszlop ugrik egyet, a C oszlop meg ismét hozzá viszonyítva növel, amivel "utóléri" a B oszlopot:

 

 

De amit csak most próbáltam ki, az tényleg hiba: Ha két egymást követő szám (3 és 4) hiányzik, akkor csak az elsőnél jelez:

 

 

 

 

Előzmény: James 42 (35030)
Delila10 Creative Commons License 2020.11.14 0 1 35031

Az A oszlopban van a hiányos sorozat, az E-ben pedig a teljes.

Előzmény: mimi_bacsi (35027)
James 42 Creative Commons License 2020.11.14 0 0 35030

Szerintem ez így nem lenne elég, mert ha az egyik érték hiányzik, akkor nem csak abban a sorban nem fog egyezni a két érték, hanem az összes alatta levő sorban sem, tehát onnantól lefelé mindent hiányzónak fog jelezni.

Előzmény: pimre (35028)
mimi_bacsi Creative Commons License 2020.11.13 0 0 35029

Szia pimre!

 

Köszönöm az ötletedet, alkalmani fogom! (eddig úgy csináltam, hogy egy olyan referencia oszlopot hoztam létre, amelyik tartalmazta a kezdő és a végszám között az összes számot, majd azt kerestettem, hogy az eredeti oszlopból melyik hiányzik, ami a referencia oszlopban megvan és mindezt a DARABTELI függvénnyel kerestem)

 

Köszönöm, hogy foglalkoztál a problémámmal!

Előzmény: pimre (35028)
pimre Creative Commons License 2020.11.13 0 1 35028

Szia mimi_bacsi, de rég láttalak.

 

Függvényt ugyan nem tudok, de egy megoldást igen. És ha csak egyszer van rá szükség, akkor talán segít:

 

1. A listát először másold át egy üres oszlopba (vagy egy üres munkalapra)

2. Az Adatok->Ismétlődések eltávolítása paranccsal minden szám csak egyszer fordul elő

3. A kapott listát rendezd nagyság szerint (persze a rendezés történhet az ismétlődések eltávolítása előtt is)

4. A kapott rendezett lista első eleme mellé  írd saját magát (Feltételezve, hogy a rendezett listád a B oszlopban van, és a kezdőérték 1, akkor a C1-be is 1-et írj).

5. A következő sorba (A fentiek szernt C2-be) írd ezt: =B1+1, majd ezt a képletet húzd lefelé a végszámig

6. A D2 oszlopba írd a következő képletet: =HA(B2=C2;"";"hiányzik"), majd ezt is húzd lefelé a végszámig. 

 

Ekkor a kimaradt értékeknél látod a "hiányzik" szót a D oszlopban.

 

Előzmény: mimi_bacsi (35027)
mimi_bacsi Creative Commons License 2020.11.13 0 0 35027

Ismertek-e olyan függvényt, ami egy listából megadja, mely számok hiányoznak, abban az esetben is, ha megadom a kezdő és a végszámot.

 

Például.:

 

1 kezdő szám

4 végső szám a referencia listában.

 

Amiben keresem, abban az alábbi számok vannak:

1

2

4

 

Tehát a példa szerint a 3 számot kell kihozni hiányzónak!

 

 

Mivel több száz sorom van, ezért gondoltam, hogy ha megadom a kezdő és végpontot és a növekedés mértékét (ami 1), abban az esetben egyszerűbb lenne, mint amit jelenleg csinálok, hogy elkészítem a teljes referencia listát és a mintát abból veszi a függvény!

Redlac Creative Commons License 2020.11.10 0 0 35026

Köszi, szuper lett :-)

 

Annyi, hogy a .SelLength = Len(.Text)-ben a .Text-re hibát dobott, így ide a .Textbox1-et (illetve az általam adott nevét) írtam, és úgy tökéletes.

Előzmény: Fferi50 (35025)
Fferi50 Creative Commons License 2020.11.10 0 0 35025

Szia!

 

With Me.TextBox1
.Text = "valami"
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With

 

Üdv.

Előzmény: Redlac (35024)
Redlac Creative Commons License 2020.11.10 0 0 35024

Sziasztok!

 

Formon textboxokat használok adatbevitelre. A form indulásakor adott textboxba beíratok egy értéket, majd setfocus-szal kiválasztom ezt a textboxot, mert lehet, hogy jó a beírt szám, de lehet, hogy mást kell helyette írni. Most a setfocus az utolsónak beírt karakter után "teszi" a kurzort. Ha megfelelő a szám, akkor tab-tal sima ügy továbbmenni. Viszont, ha módosítani kell a beírt számot, akkor vissza kell ezeket törölni.

Van-e lehetőség arra, hogy a textboxban lévő összes karakter ki legyen jelölve, mintha Ctrl+a kombinációt nyomtam volna? 

Eredő Vektor Creative Commons License 2020.11.10 0 1 35023

szrtem csinál belőle egy pivottáblát amiben a megfelelő dimenzióba húzhatja a mezőt...

 

Előzmény: Sánta Kutya (SK) (35022)
Sánta Kutya (SK) Creative Commons License 2020.11.10 0 1 35022

Csoportokra felbonthatod, de az átpakoláshoz már makró kell.

PL. D oszlop a szögjel, akkor az E2-be: D2>ÁTLAG(D:D), F3-ba: ÉS(IGAZ(E3); HAMIS(E2))

Ahol az E IGAZ, ott kezdődik egy új szakasz.

Átpakolás előtt ezt valahogy rögzíteni kell, pl. az E oszlopot irányított beillesztéssel visszamásolod saját magára érték szerint, hiszen az első mozgatáskor megváltozik az átlag.

Nem mindegy, hány szakasz van és milyen gyakran kell csinálni.

Előzmény: Süti97 (35020)
Süti97 Creative Commons License 2020.11.10 0 0 35021

Bocsánat, a képek lemaradtak. A piros nyíl közötti szakasz lenne egy periódus.

 

Előzmény: Süti97 (35020)
Süti97 Creative Commons License 2020.11.10 0 0 35020

Sziasztok!

 

Valaki tudna javasolni esetleg megoldást az alábbira:

Számokból álló adathalmaz. Ezt a halmazt "fel kellene darabolni" ~720 soronként. Éppen ott lenne a határ, ahol a szögjel átlépi a szögjel oszlop átlagát fölfelé. Lényegében azt szeretném elérni, hogy ezt az adathalmazt feldarabolom periódusok szerint, hogy aztán a periódusok 1., 2., ... elemeiből soronként Fx és Fy átlagot képezzek. Beszíneztem feltételes formázással: a kék az átlag feletti, a sárga az átlag alatti értékek. Van valami módja, hogy automatizált módon (mondjuk a szín alapján) csoportokra bontsam az adathalmazt (egy csoportot jelent egy kék és egy sárga szakasz), aztán egymás mellett lévő oszlopokba rakjam?

Nem vagyok túl expert Excelben, ezer hála ha vki tud segítni! :)

                                                      

 

Valami ilyesmire gondolok, hogy aztán soronként átlagolni tudjak:

Törölt nick Creative Commons License 2020.11.06 0 0 35019

Nekem is eszembe jutott, de azt olyan ritkán használom, hogy egyszerűbbnek tűnt nulláról megírni egy algoritmust, mint kitalálni azt a regex formulát, ami lefedi a kreatív telefonszámokat.

De mivel a megoldásom nem tökéletes, nyugodtan bedobhatod magad, és hozhatsz jobbat :)

Előzmény: Eredő Vektor (35016)
Eredő Vektor Creative Commons License 2020.11.06 0 0 35018

:)

Előzmény: Sánta Kutya (SK) (35017)
Sánta Kutya (SK) Creative Commons License 2020.11.06 0 0 35017

Itt vagyok, de csak nézelődöm. Nem volt kedvem beleásni magam egy problémába, amiről csak annyit láttam, hogy mások már foglalkoznak vele.

Előzmény: Eredő Vektor (35016)
Eredő Vektor Creative Commons License 2020.11.06 0 0 35016

Miért nem inkább regex?:(

És hol van ilyenkor SK, aki ezt rögtön mondta volna szerintem...

Előzmény: Törölt nick (35006)
dorogszu Creative Commons License 2020.11.06 0 0 35015

Ez nem jelent problémát:) Mobilvilágban élünk :)

 

Előzmény: Törölt nick (35014)
Törölt nick Creative Commons License 2020.11.06 0 0 35014

Viszont arra nem gondoltam, hogy a vidéki vezetékes telefonszámok 6 jegyűek... tehát a függvény mégse teljesen jó, mert csak mobil vagy budapesti vezetékes számokra működik. Ez nagy gond?

 

Előzmény: dorogszu (35013)
dorogszu Creative Commons License 2020.11.06 0 0 35013

Minden világos! Köszönöm mégegyszer ,sokat segített a leírás és a függvény szuperül működik! 

Előzmény: Törölt nick (35012)
Törölt nick Creative Commons License 2020.11.06 0 0 35012

A kiegészítő függvény megkapja bemenő adatként az eredeti cellatartalmat valamint egy karakterpozíciót, és azt csinálja, hogy:

- az adott karakterpozíciótól visszafelé indulva megvizsgál minden karaktert,

- a számokat megtartja,

- az elválasztójeleket eltávolítja,

- és megáll az első olyan karakternél, ami se nem szám, se nem elválasztójel.

 

Az értelme az, hogy a számsorokat közös formátumba hozza. Így például a

"telefonszám +36 - 70 / 12-34-567"

"telefonszám:36 70 1234567"

"telefonszám=+36 70/123-4567"

 

stb. verziókból egységesen "36701234567" lesz.

Ami azért kell, hogy utána egyszerűbben lehessen a telefonszámot leválasztani (ez az utolsó 7 számjegyet), és az előtte lévőket vizsgálni országhívó ill. körzetszám szempontból.

 

Ha a függvény által visszaadott számsor hossza nem éri el a 8 karaktert, akkor az nem lehet telefonszám (8 is csak akkor, ha budapesti vezetékes).

De ha mondjuk valakinek

- az email címe úgy néz ki, hogy "ekkorakirályvagyok12345678921@gfail.com",

- és nem ad meg telefonszámot,

- vagy a telefonszám előbb jön mint az emailcím

akkor ott eltévedünk.

Előzmény: dorogszu (35011)
dorogszu Creative Commons License 2020.11.05 0 0 35011

A kiegészítő függvénynek mi értelme van?

A sorokat ahogyan átírtam tökéletesen működik minden variáció szerint. Egy két nagyon extrém eset volt amelyre már nem tudott mit mondani de ezeket úgy gondolom figyelmen kívül hagyhatom mert ott már a sírás kerülget:) az érdeklődőtől.

 

 

Előzmény: Törölt nick (35010)
Törölt nick Creative Commons License 2020.11.05 0 0 35010

"A H9 helyén valami@gmail.com  20/2415866 szerepel a visszakapott érték: +36 1 241 5866 lett   ezért"

 

Az fura, mert nálam ugyanerre teljesen jó eredményt ad...

 

Viszont megint megfeledkeztem arról, hogy a fórummotor lenyeli a backslasht. A kiegészítő függvény helyesen:

 

Private Function PotentialPhoneNumber(ByVal BaseString As String, ByVal Pos As Long) As String
    Dim sTemp As String, i As Long, c As String
    
    For i = Pos To 1 Step -1
        c = Mid(BaseString, i, 1)
        Select Case c
        Case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
            sTemp = c & sTemp
        Case "-", " ", "/", "\", "+"
            'valamilyen elválasztó jel, nem érdekes
        Case Else
            Exit For
        End Select
    Next
    PotentialPhoneNumber = sTemp
End Function

 

És igen, az elválasztó jelek listája szabadon bővíthető.

Előzmény: dorogszu (35009)
dorogszu Creative Commons License 2020.11.05 0 0 35009

Közben rájöttem:) Szerintem működik de mobilszám helyett vezetékes számot ad vissza 

A H9 helyén valami@gmail.com  20/2415866 szerepel a visszakapott érték: +36 1 241 5866 lett   ezért

If (Pre = "1") Or (Pre = "06") Or (Pre = "0061") Or (Pre = "36") Or (Pre = "036") Or (Pre = "+36") Then  sort erre változtattam és így űgy néz ki működik

 

 

Nagyon hálás vagyok köszönöm szépen. Nagy segítséget kaptam.Hipp hipp hurrá:)

 

 Case "-", " ", "/", "", "+"
            'elválasztó jelek, nincs velük teendő    ez a sor bővíthető gondolom az előforduló  karakterekkel amelyekkel esetleg a felsoroltakon kívül elválasztanak?

 

 

Előzmény: Törölt nick (35006)
dorogszu Creative Commons License 2020.11.05 0 0 35008

Ez egy kicsit magas de szeretnék vele megbirkózni.

 

A függvény honnan tudja, hogy a H9 cellában kell keresnie?

 

Előzmény: Törölt nick (35006)
dorogszu Creative Commons License 2020.11.05 0 0 35007

Telefonszámra mivel általában magyarországiak 

Keressen olyan számsorozatot vagy szövegrészletet amely első 4 karakterében   előfordul a  "20" "30" "70" "31" érték de ha ugyanebben a részletben található @karakter akkor ugorja át és folytassa a keresést.    'ez esetben a körzet megvan. 

A körzetszám elé tegye be a +36 értéket

A "talált" körzetszám után egy tisztázás kellene és a maradék 7 karaktert illessze e a körzetszám után. Valami ilyesmi szabályt tudok felállítani a telefonszám esetére bár elég kusza:)

 

 

Email cím miatt a H9 cellát előszőr is kisbetűssé kellene alakítani

aztán a @előtti karaktereket kell lekérdezni az első szóközig majd

a @ utáni karaktert az első pontig

és a pont utáni részt az első szóközig

 

És remélem nem lesz valami@valami.valami.hu email cím:)

 

 

Előzmény: dorogszu (35005)
Törölt nick Creative Commons License 2020.11.05 0 0 35006

Közben írtam egy függvényt a telefonszám szövegből történő kibányászására. Szerintem a legtöbb esetet kezelni fogja, de nyilván lehetnek olyan kreatív érdeklődő, akiét nem.

A cellában használható függvény a PhoneNumber2, a másik ennek egy segédje.

Az algoritmus lényege, hogy a szöveg végétől visszafelé haladva végignézi azokat a szövegrészeket, amelyek csak számjegyekből és/vagy a számjegyek közötti elválasztó karakterekből állnak. Ha talál egy ilyen karaktersorozatot, és az legalább 8 számjegyet tartalmaz, akkor lehet telefonszám. Akkor megpróbálja értelmezni, és ha bizonyos feltételeknek megfelel, akkor elfogadja telefonszámnak, aztán kiírja az általad megadott formátumban.

Teszteld lécci a meglévő adataidon.

 

Public Function PhoneNumber2(Szöveg As Range) As String
    Dim Length As Long, i As Long, N As String
    Dim sInput As String, Pre As String, Post As String
    
    sInput = Szöveg.Value
    Length = Len(sInput)
    For i = Length To 1 Step -1
        N = PotentialPhoneNumber(BaseString:=sInput, Pos:=i)
        If Len(N) <= 7 Then
            'menjünk tovább a ciklusban
        Else
            Post = Right(N, 7)
            Pre = Left(N, Len(N) - 7)
            If (Pre = "1") Or (Pre = "061") Or (Pre = "0061") Or (Pre = "361") Or (Pre = "0361") Then
                Pre = "1"
            ElseIf (Len(Pre) = 2) Then
                'ez a körzetszám
            ElseIf (Len(Pre) = 4) And ((Left(Pre, 2) = "06") Or (Left(Pre, 2) = "36")) Then
                Pre = Right(Pre, 2)
            Else
                PhoneNumber2 = "nincs felismerhető a telefonszám"
                Exit Function
            End If
            PhoneNumber2 = "+36 " & Pre & " " & Left(Post, 3) & " " & Right(Post, 4)
            Exit Function
        End If
    Next
    PhoneNumber2 = "nem felismerhető a telefonszám"
End Function

Private Function PotentialPhoneNumber(ByVal BaseString As String, ByVal Pos As Long) As String
    Dim sTemp As String, i As Long, c As String
    
    For i = Pos To 1 Step -1
        c = Mid(BaseString, i, 1)
        Select Case c
        Case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
            sTemp = c & sTemp
        Case "-", " ", "/", "", "+"
            'elválasztó jelek, nincs velük teendő
        Case Else
            Exit For
        End Select
    Next
    PotentialPhoneNumber = sTemp
End Function

Előzmény: dorogszu (35005)
dorogszu Creative Commons License 2020.11.05 0 0 35005

A H9 cellába email cím és telefonszám kerül de ezeket facebook messenger üzenetben kapom. Szóvel előre nem tudom melyik lesz elől és a lelkes érdeklődők megannyi módon képesek megadni adnak egy telefonszámot persze semmilyen állandó formában aztán kérdez valamit majd hirdtelen eszébe jut, hogy az email címet elfelejtette megírni. Amikor megírja akkor persze a mobilról kapott email cím sokszor nagybetűvel kezdődik . Így szabályszerűséget sajnos nem tudok rá mondani. Van aki / jelet használ van aki a 06-ot elfelejti van aki +36 kezdődéssel használja a megadást. A messengerből csak kimásolom az egybn kapott szöveget és sokszor ugyan jók a kinyert adatok de valami automatizálást szeretnék rá:(

Előzmény: Törölt nick (35004)
Törölt nick Creative Commons License 2020.11.05 0 0 35004

Amikor azt mondod, hogy "vegyesen email cím és telefonszám és más szövegeket tartalmaz", ez mit jelent?

Jelentheti azt, hogy a telefonszám mögött még további szöveg jön? Jelentheti azt, hogy az email címet egyéb szöveg előzi meg? Jelentheti azt, hogy az email cím és a telefonszám közé valami szöveg beékelődik? El lehet mondani azt, hogy a telefonszám után esetleg megjelenő szövegben nem fordulhatnak elő további számjegyek? Vagy mit lehet mondani? El lehet mondani legalább azt, hogy minden telefonszám magyarországi?

Kicsit több konkrétum kellene, hogy a H9 cella mindig változó tartalmára milyen szabályszerűségek érvényesek.

Előzmény: dorogszu (35003)
dorogszu Creative Commons License 2020.11.04 0 0 35003

És még akkor ott a nagybetű is ha azzalkezdődik az email cím:(

 

Előzmény: dorogszu (35002)
dorogszu Creative Commons License 2020.11.04 0 0 35002

Ebből a ciklus szót nem értem:) Ennyire nem vagyok benneotthon. A függvényeket még csak csak kikeresem de hogyan néz ki fordítva?

 

Előzmény: Törölt nick (35001)
Törölt nick Creative Commons License 2020.11.04 0 0 35001

Fordítsd meg a ciklust, és a sztring végéről kezdd el szedni a számokat. Az utolsó hét szám a telefon, következő kettő a körzetszám, más nem is kell.

Mármint, feltéve, hogy a telefonszám mögött már nincs olyan szöveg, ami számokat tartalmaz.

 

Előzmény: Delila10 (34999)
dorogszu Creative Commons License 2020.11.04 0 0 35000

Az első kapottemail címemnél hozta is a hibát sajnos. A kapottemail címben volt szám és persze mobiról kaptam így a kezdőbetű is nagybetű volt Svalami76@gmail.com 20/5234572

 

Előzmény: Delila10 (34999)
Delila10 Creative Commons License 2020.11.04 0 0 34999

Szia!

 

Írtam egy saját funkciót a feladathoz. A hivatkozott cellából kigyűjti a számokat, majd a megfelelő formátumúra rendezi. Baj akkor van, ha a szövegben máshol is szerepel számjegy, pl. gefghggh15@gmailcom 20/5234572.

 

Function TelSzam(Cella As Range)

    Dim betu As Integer, szoveg As String

   

    For betu = 1 To Len(Cella)

        If IsNumeric(Mid(Cella, betu, 1)) Then szoveg = szoveg & Mid(Cella, betu, 1)

    Next

    If Left(szoveg, 2) = "06" Then szoveg = Right(szoveg, Len(szoveg) - 2)

    TelSzam = "+36 " & Left(szoveg, 2) & " " & Mid(szoveg, 4, 3) & " " & Right(szoveg, 4)

End Function

 

H9-ben van a vegyes szöveged, I3-ba jön a képlet: =TelSzam(H9)

 

A vágólapra a szokásos Ctrl+c-vel teheted ki, de a beillesztésnél ne Ctrl+v-t alkalmazz, hanem irányított beillesztést, értékként. Ez persze az Excelbe beillesztésre igaz.

 

Előzmény: dorogszu (34997)
dorogszu Creative Commons License 2020.11.04 0 0 34998

Sziasztok!

Adott egy táblázatban a H9 cellám amely tartalma mindig változik vegyesen email cím és telefonszám és más szövegeket tartalmaz pl gefghggh@gmailcom 20/5234572

 

Ebből a H9 cellából kivettem az email címet az alábbi képlettel  I2 cellába :

 

=HAHIBA(KIMETSZ(KÖZÉP(HELYETTE(KIMETSZ(H9);" ";SOKSZOR(" ";200));(HOSSZ(BAL(H9;SZÖVEG.KERES("@";H9)))-HOSSZ(HELYETTE(BAL(H9;SZÖVEG.KERES("@";H9));" ";"")))*200+1;200));"H9 cellába adj meg egy email címet!") 

 

Ebből a H9 cellából kivettem formázatlan " telefonszámot"az alábbi képlettel I9 cellába:

 

=HA(SZUM(HOSSZ(H9)-HOSSZ(HELYETTE(H9;{"0""1""2""3""4""5""6""7""8""9"};"")))>0; SZORZATÖSSZEG(KÖZÉP(0&H9; NAGY(INDEX(SZÁM(--KÖZÉP(H9; SOR(INDIREKT("1:"&HOSSZ(H9))); 1)) * SOR(INDIREKT("1:"&HOSSZ(H9))); 0); SOR(INDIREKT("1:"&HOSSZ(H9))))+1; 1) * 10^SOR(INDIREKT("1:"&HOSSZ(H9)))/10);"")

 

Az I9 cellába így bekerült ez az adat 205234572

 

1. Szeretném I3 cellába beilleszteni ezt az adatot úgy hogy +36 20 523 4572 jelenjen meg (azaz egy telefonszámként). A szóköz a számok között nem fontos de átláthatóság szempontjából szebb lenne. Probléma még, hogy a kapott adatokban a telefonszámok mindig másképp jelennek meg. pl.: 20 5234572;20/ 5234572; 06205234572 íígy az I9 cellába kinyert adatok mások. Ritkán ugyan előfordul a ó formátum is:) 

 

2. I2 és I3 cellára ha rákattintok akkor ott a képlet jelenik meg és másolás esetén az is kerül  a vágólapra. Hogyan van arra lehetóség, hogy az eredmény legyen a másolt tétel és ne a képlet.

 

3. Amennyiben az emailcím tartalmaz számot akkor az I9 cellába bekerült adat az email címből kivett számot is tartalmazza ezt ki lehet úgy küszöbölni, hogy ne vegye figyelembe?

 

4. az email cím amelyet I2 cellába kinyerek helyes formátumba megjelníthető pl ha nagybetűvel kezdődik az email cím akkor az helyesen változzon át kisbetűre 

 

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

dorogszu Creative Commons License 2020.11.04 0 0 34997

Sziasztok!

Adott egy táblázatban a H9 cellám amely tartalma mindig változik vegyesen email cím és telefonszám és más szövegeket tartalmaz pl gefghggh@gmailcom 20/5234572

 

Ebből a H9 cellából kivettem az email címet az alábbi képlettel  I2 cellába :

 

=HAHIBA(KIMETSZ(KÖZÉP(HELYETTE(KIMETSZ(H9);" ";SOKSZOR(" ";200));(HOSSZ(BAL(H9;SZÖVEG.KERES("@";H9)))-HOSSZ(HELYETTE(BAL(H9;SZÖVEG.KERES("@";H9));" ";"")))*200+1;200));"H9 cellába adj meg egy email címet!") 

 

Ebből a H9 cellából kivettem formázatlan " telefonszámot"az alábbi képlettel I9 cellába:

 

=HA(SZUM(HOSSZ(H9)-HOSSZ(HELYETTE(H9;{"0""1""2""3""4""5""6""7""8""9"};"")))>0; SZORZATÖSSZEG(KÖZÉP(0&H9; NAGY(INDEX(SZÁM(--KÖZÉP(H9; SOR(INDIREKT("1:"&HOSSZ(H9))); 1)) * SOR(INDIREKT("1:"&HOSSZ(H9))); 0); SOR(INDIREKT("1:"&HOSSZ(H9))))+1; 1) * 10^SOR(INDIREKT("1:"&HOSSZ(H9)))/10);"")

 

Az I9 cellába így bekerült ez az adat 205234572

 

1. Szeretném I3 cellába beilleszteni ezt az adatot úgy hogy +36 20 523 4572 jelenjen meg (azaz egy telefonszámként). A szóköz a számok között nem fontos de átláthatóság szempontjából szebb lenne. Probléma még, hogy a kapott adatokban a telefonszámok mindig másképp jelennek meg. pl.: 20 5234572;20/ 5234572; 06205234572 íígy az I9 cellába kinyert adatok mások. Ritkán ugyan előfordul a ó formátum is:) 

 

2. I2 és I3 cellára ha rákattintok akkor ott a képlet jelenik meg és másolás esetén az is kerül  a vágólapra. Hogyan van arra lehetóség, hogy az eredmény legyen a másolt tétel és ne a képlet.

 

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

 

 

 

 

Delila10 Creative Commons License 2020.10.31 0 0 34996

Örülök, hogy sikert értél el.

Azt, hogy miért van összefűzés, a 43986-os hsz-ben írtam le.

Előzmény: fitbee (34994)
Hoter Creative Commons License 2020.10.31 0 0 34995

Hogy ez milyen egyszerű! Köszönöm szépen.

Előzmény: Fferi50 (34993)
fitbee Creative Commons License 2020.10.31 0 0 34994

Szia zárásul!

Addig kínlódtam, míg összejött a dolog. (A "B" oszlopban egy-egy kód, a "C" oszlopban a kód két elhelyezkedési változata szerepel)Ezzel a megoldással egyszerre két feltételt lehet figyelembe venni a keresésnél, pl. a HOL.VAN függvény keresési értékét így lehet egyszerre két keresési célra megadni.
Ha nem írod meg a | jel beviteli kódját, akkor nem jutottam volna el a megvilágosodáshoz. Köszi!



Előzmény: Delila10 (34986)
Fferi50 Creative Commons License 2020.10.31 0 0 34993

Szia!

A "0" helyére írj "" -t. Vagyis a 0 helyett üres szöveg fog megjelenni.

Üdv.

Előzmény: Hoter (34991)
Hoter Creative Commons License 2020.10.31 0 0 34992

A CC oszlopba kerülne a függvény. :)

 

Hoter Creative Commons License 2020.10.31 0 0 34991

Sziasztok! Sajnos egyáltalán nem értek az excel bugyraihoz. Segítséget szeretnék kérni egy név függvény kiegészítéséhez. Azt szeretném, hogy ha az AG oszlop megfelelő cellája üres, akkor a CC oszlop megfelelő cellájába a 0 ne jelenjen meg. Segítségeteket előre is köszönöm.

 

A kiegészítendő függvény:

 

=HA(JOBB(AG2;4)="téné";BAL(AG2;HOSSZ(AG2)-4)&"té";HA(JOBB(AG2;3)="áné";BAL(AG2;HOSSZ(AG2)-3)&"a";HA(JOBB(AG2;3)="éné";BAL(AG2;HOSSZ(AG2)-3)&"e";HA(JOBB(AG2;2)="né";BAL(AG2;HOSSZ(AG2)-2);"0"))))

 

fitbee Creative Commons License 2020.10.31 0 0 34990

A feltételes formázás a te barátod.
Jelöld ki az oszlopodat, ahol az A és B váltakoznak, és a menü (felső sor) Kezdőlap fülén kattints a Feltételes formázás parancsra. A szabálytípusnál válaszd a "Csak az adott tartalmú cellák formázása" parancsot, ott pedig szerkeszd a szabályt úgy, hogy a cellaérték egyenlő legyen "A"-val, a Formátum résznél pedig állítsd be a betű színét pl. pirosra) és ha akarod még félkövérre is. OK és már működik is, hogy ha "A" betű kerül a kiválasztott oszlopod egyik cellájába, akkor az pirossal fog megjelenni.
Ha nem működne, akkor több idézőjel van a szabályban a kelleténél, ami a szabály szerkesztésénél tudsz eltávolítani.
Ha a "B" betűt is színezni akarod,akkor ugyanezzel a módszerrel válassz másik színt arra.
A szabály hatása arra a tartományra lesz igaz, amely az Érvényesség résznél látszik. Ha a szabály választása előtt kijelölted a teljes oszlopot, akkor ezen a helyen a teljes oszloptartomány fog látszani.

Előzmény: Flash02 (34988)
fitbee Creative Commons License 2020.10.31 0 0 34989

Szia újra!

 

Megtaláltam a teljes feladatot a YouTube-on, elküldöm neked a linket, hátha téged is foglalkoztat ennek a | jelnek a használata.
Sajnos angolul megy alatta a komment, így számomra a szöveg nem elég jól érthető. Ha te jobb angol szövegértéssel rendelkezel, akkor biztosan minden megvilágosodik, mert a kommentelő külön magyarázza a videóban ennek a | jelnek a használatát is, de nekem ez több meghallgatás után sem lett lefordítható.
A link:
https://www.youtube.com/watch?v=4QaSwRgkeZo&list=PLrRPvpgDmw0kjL4875H36yNhWBb0f-nci&index=2

Nagyon jó lenne, ha te meg tudnád fejteni a HOL.VAN fv. ilyen használatát, mert engem legalább is erősen kíváncsivá tett ez a (számomra) szokatlan módszer.
Kérlek nézz rá, és segíts a megfejtésben.
Kösz előre is.

Előzmény: fitbee (34987)
Flash02 Creative Commons License 2020.10.31 0 0 34988

Excel táblázatom egyik oszlopában 1db A vagy B betű van írva.  Hogyan tudnám az egyiket más színnel íratni? Több mint 100 sorról van szó és a betű naponta változik. Köszönöm

fitbee Creative Commons License 2020.10.31 0 0 34987

Szia, kösz a válaszaidat.
Pontosan azért kérdeztem rá, mert eddig még nem találkoztam a cellák összefűzésének(??) ezzel a formájával. Elég fura, elég körülményes, és nem értem az indokát sem, amikor egy sima "&" is összefűzné a két cellát. (Ha már egyszer pl. lusták lennénk az ÖSSZEFŰZÉS függvény használatára.)
Ez mitől jobb, mitől indokolt, egyáltalán mi miatt kellett(??) kitalálni?
Te már használtad ezt korábban, vagy találkoztál vele korábban? A korábbi Excelek is elfogadták utasításnak?

Előzmény: Delila10 (34986)
Delila10 Creative Commons License 2020.10.31 0 0 34986

A HOL.VAN függvény következő paramétere (ami már nem látszik a képen) mutatja meg az F és G oszlopok összefűzésének az oszlopát, ahol keresel. Nyilván ezzel (|) a karakterrel fűzték össze a két értéket, azért kell így rákeresni.

 

Szokás a 2 érték közé szóközt, kötőjelet, alsó kötőjelet, miegymást tenni. Ez azért kell, mert pl. a 111 és 50 összefűzése 11150 értéket ad, de ugyanezt kapod a 11 és a 150 összefűzésével.

Előzmény: fitbee (34984)
Delila10 Creative Commons License 2020.10.31 0 0 34985

Itt az INDEX, HOL.VAN függvény párossal keresel ki egy értéket egy tartományból.

 

 

A keresés sorát az F és G oszlopok együttes tartalma határozza meg. Valószínű, hogy egy oszlopban ezeket előre összefűzték, csak a képletnek a további része nem látszik a képen.

 

Érdekes, hogy az F-nél a 9. sort fűzik össze a G oszlop 8. sorával, de biztos így kell.

Előzmény: fitbee (34984)
fitbee Creative Commons License 2020.10.30 0 0 34984

Szia Delila10!

Már nem először segítesz! Kösz a gyors válaszodat. Ez tényleg hozza a keresett jelet, de tudnál mondani valamit arról is, hogy ez milyen Excel funkciót határoz meg?
Látszólag ez a jel két cella tartalmát "segíti" összefűzni, de ez menne enélkül a fura karakter nélkül is, tehát nyilván ennél többről van szó.

Előzmény: Delila10 (34983)
Delila10 Creative Commons License 2020.10.30 0 0 34983

Jobb oldali Alt + w.

Előzmény: fitbee (34982)
fitbee Creative Commons License 2020.10.30 0 0 34982

Sziasztok!

Belefutottam egy tömbképletes megoldásnál egy olyan szintaktikába, amit eddig nem ismertem, és nem is találok a billentyűzeten olyan billentyűt, amivel ezt - működőképesen - meg tudnám valósítani.
Erről van szó: &" I "&
Olyan, mintha egy kis l betűt, vagy egy nagy I betűt tartalmazna idézőjelek között és - funkcióját tekintve - mintha két keresési tartományt kapcsolna össze: HOL.VAN(F9&" I "&G8)..........
Tudnátok erről valamit mondani? Hogyan lehet ezt létrehozni?
Előre is köszönöm.

Redlac Creative Commons License 2020.10.30 0 0 34981

Ahaaa, akkor ilyesmit már használok párat, csak jelölőnek hívom :-)

 

Több lapból álló formot használunk, több lapból álló munkafüzettel, és például szerettem volna azt, hogy ha adott munkalapról indítom a formot, akkor azt bezárva ugyanarra a lapra menjen vissza. Ezért egy rejtett jelölőbe beírtam, hogy honnan "jöttem", és ezt vizsgálom a form bezárásakor. De volt olyan textbox_change eseménykezelés, ami egy folyamat végén újra lefutott, de akkor már nem volt rá szükség. Ezért itt is egy rejtettjelölőbe írtam be, hogy "aktív", illetve "nem aktív", és ezt figyeli a textbox eseménye.

 

No, akkor az eredeti problémára visszacsatolva, arra kellene rájönnöm, hogy melyik esemény szúrja el a textbox működését, és azt feltétellé tenni. A baromi nehéz, hogy gyakorlatban időnként olyan combobox-ban is boxon belül ugrik tabot, amelyiknek nincs is tulajdonsága, illetve nem találtam ilyet a comboboxnál. Valamint az érdekes, hogy amennyiben egérrel kikattintok a boxból, majd vissza, akkor megjavul. Vagyis, ha kikerül a fókuszból, akkor megszűnik a hiba.

Hmm, közben elkezdett valami derengeni :-)

Programozó az ismerősök között mesélte, hogy van egy "Mondd el a gumikacsának!" mondatuk, Vagyis sok esetben nem kell valós problémamegoldás, hanem elég, ha valakinek (egy gumikacsának az asztalon) elmondani a problémát, és a probléma megfogalmazása olyan módon, hogy a másik fél is megértse, elégséges lehet a probléma okainak feltárására. 

Most ilyesmit érzek :-)

Van pár textbox, ahol .setfocus-szal állok rájuk. Megnézem, hogy ezen a vonalon lehet-e probléma.

 

Köszönöm a segítséget.

Előzmény: Fferi50 (34980)
Fferi50 Creative Commons License 2020.10.30 0 0 34980

Szia!
Az Application.EnableEvents metódussal tudod az Excel eseménykezelőjét ki-be kapcsolni, azaz szabályozni, hogy egy esemény lefusson vagy ne. Ez az Excel beépített eseménykezelőire van hatással - amiket az adott objektumnál lehet kiváltani (pl. Workbook_Open a munkafüzetnél, Worksheet_SelectionChange a munkalapnál stb. - de nem hat a Formokon végbemenő eseményekre.

A Userformok eseményeit úgy tudod szabályozni, ha a form kódlapján te magad felveszel egy - ajánlatosan publikus - logikai változót, ennek az értékét minden eseménykezelő első sorában megvizsgálod és az értékétől függően végrehajtod az eseménykezelést vagy átléped.

Pl. 

Public esemenykell as Boolean

Private Sub TextBox1_Change()

If esemenykell Then

   esemenykell=Not esemenykell  ' a következő esemény kezelések kikapcsolása

   a végrehajtandó sorok

   esemenykell=Not esemenykell  ' eseménykezelés visszakapcsolása

End If

End Sub

 

Üdv.

Előzmény: Redlac (34979)
Redlac Creative Commons License 2020.10.30 0 0 34979

Igen, használok eseménykezelőt, de ez az Application.EnableEvents még ne tiszta :-)

Előzmény: pimre (34977)
Eredő Vektor Creative Commons License 2020.10.29 0 1 34978

makróval meg.

de miért kéne törlődnie... legalább látod, hogy mennyi volt a kiadás, hol tart a havi keret....

Előzmény: Pipu52 (34976)
pimre Creative Commons License 2020.10.29 0 0 34977

Kapcsolódva Fferihez kérdezem, használsz-e eseménykezelést? Feltehetőleg igen.

 

És ha igen előfordul-e, hogy az eseménykezelőd új értéket ad az éppen elemzett textboxnak?

 

Ha igen, akkor haszálod-e az eseménykezelések tiltását. Ez az Application.EnableEvents property ami False-ra állítva megakadályozza, hogy az eseménykezelőn belüli értékadásnál ismét ráugorjon a vezérlés magára az éppen használt eseménykezelőre.

 

Az Application.EnableEvents sajnos formokon nem működik, ezért saját változót kellene bevezetni helyette.

Előzmény: Redlac (34974)
Pipu52 Creative Commons License 2020.10.29 0 0 34976

Sziasztok!

 

Pénzügyeimhez készítek táblázatot.

A cél az, hogy egy fix cellába tudjam beírni az aktuális kiadás összegét, ami ekkor rögtön törlődne és kivonásra kerülne egy havi keretet tartalmazó cellából.

Meg lehet ezt oldani valahogy?

Előre is köszi a segítséget!

 

Pipu

Törölt nick Creative Commons License 2020.10.29 0 0 34975

Másik tippem, hogy beragad a Ctrl gomb. A Ctrl+TAB kombó tabulátort tesz a textboxba, akkor is, ha TabKeyBehavior = False.

Előzmény: Redlac (34974)
Redlac Creative Commons License 2020.10.29 0 0 34974

Köszi, ez jó iránynak tűnt, de... :-)

 

- Végignéztem, és mindegyiknek False a tulajdonság, de ha ez okozná a problémát, akkor mi állíthatja át időnként, és mitől áll vissza. Mert, ha egérrel kikattintok a boxból, utána jó lesz.

- Eddig nem is hallottam ilyet, nem tettem ezt változóvá sehol.

- Azt elfelejtettem írni, hogy comboboxoknál is csinálja, de azoknak nincs ilyen tulajdonsága.

Előzmény: Törölt nick (34973)
Törölt nick Creative Commons License 2020.10.29 0 0 34973

A TextBox -nak van egy olyan tulajdonsága, hogy TabKeyBehavior. Ha ez False, akkor a TAB azt csinálja, amit szeretnél, ha True, akkor pedig azt, amit most hibának gondolsz. Meg kéne nézni, hogy van-e a textboxok között olyan, aminek True ez a tulajdonsága.

Előzmény: Redlac (34971)
Fferi50 Creative Commons License 2020.10.29 0 0 34972

Szia!

Talán valamelyik eseménykezelő babrál ki vele (feltéve, hogy vannak ilyenek benne - gondolom az automatikus kitöltést ilyenek végzik). 

Megpróbálnám alaposan tesztelni a folyamatot, figyelve és feljegyezve minden történést. Előbb-utóbb elő kell fordulnia a jelenségnek és akkor vissza lehet nézni, mi történt előtte. Ezután megpróbálni ismét előidézni.

Sziszifuszi munka, de enélkül szerintem nem lehet felderíteni az okot.

Üdv.

Előzmény: Redlac (34971)
Redlac Creative Commons License 2020.10.28 0 0 34971

Sziasztok!

 

Sok-sok textboxból álló formot használok. Sokféle szabály alapján töltjük ki, illetve sokféle automatikus kitöltési feltétel segíti a használatot.

Van egy visszatérő hiba, amivel nem tudok mit kezdeni. A textboxok között Tab-billentyűvel haladunk előre alapesetben simán. Bizonyos feltételek esetén automatikusan kitölt mezőket, majd ennek megfelelően a fókuszt áthelyezi egy következő utáni textboxra. 

Időnként - egyszerűen nem tudom eseményhez kötni - a Tab megnyomására nem ugrik át a következő textboxba, hanem adott textboxon belül valóban Tab-ként működve eltolja a szöveget, vagy, ha már mögötte van, akkor a kurzor tolódik el, de nem lép ki a boxból. Arra csak egérrel átkattintással van lehetőség.

 

Tudtok-e erre gyógyírt?

Olimpia96 Creative Commons License 2020.10.26 0 0 34970

Írtam e-mailt Neked, meg tudod nézni? És még egyszer nagyon köszönöm a rengeteg segítséget!

Előzmény: Törölt nick (34969)
Törölt nick Creative Commons License 2020.10.26 0 0 34969

Hm.. talán kicsit félrevezető, hogy a program utolsó sorának neveztem ezt:

CH.Axes(xlCategory).TickLabels.NumberFormat = "mm.dd."

amikor alatta még van pár sor.

A lényeg, hogy ez itt fentebb a végrehajtás sorrendjében az utolsó, de a teljes kódhoz természetesen hozzá tartozik az AddressBuilder függvény is, tehát ez:
Private Function AddressBuilder(Rng As Range) As String

és minden egyéb is, ami alatta van.

Előzmény: Törölt nick (34968)
Törölt nick Creative Commons License 2020.10.26 0 0 34968

A makró az valójában Visual Basic for Applications (VBA) programnyelven megírt program. 

A VBA programkód az Excel munkafüzetben úgynevezett kódmodulokon van tárolva.

Ahhoz, hogy a makrót futtatni tudjad, létre kell hozni a munkafüzetben 1 db kódmodult, és a kódot oda bemásolni.

 

Kódmodul létrehozása:

1) Nyomj Alt+F11 kombinációt a billentyűzeten. Erre megnyílik a Visual Basic Editor.

2) Az ablak bal oldalán kell lennie egy olyan panelnek, aminek a címsorában Project - VBAProject felirat van. Ez a Project Explorer panel. Ha nem látszik akkor a View menüből, vagy a Crtl+R kombóval hívható elő.

3) Ha egyszerre több Excel munkafüzet is nyitva van, akkor itt (általában) mindegyik látszik. Kattints rá arra, amelyikben a gyűrűzési adatok vannak, tehát amelyikben a makrót futtatni akarod.

4) Menüből válaszd ki az Insert -> Module parancsot. Erre a Project Explorer ablakban, a munkafüzet VBAProject-je alatt létrejön egy Modules nevű mappa, és abban egy Module1 nevű kódmodul. (Persze ha már van egy vagy több kódmodul ebben a munkafüzetben, akkor a Modules mappa nem jön létre, csak az új kódmodul, automatikusan generált névvel.)

5) Kattints duplán a Module1 nevére (vagy jobb kattintás + View Code parancs). Erre az ablak jobb oldalán megjelenik a modul kódszerkesztő felülete. Ide kell bemásolni az általam korábban posztolt makrót.

6) Mentsd el a munkafüzetet a Mentés másként paranccsal. A mentési ablakban, a fájltípus alatt válaszd ki azt, hogy Makróbarát Excel-munkafüzet (*.xlsm). Ha nem így teszel, akkor a makró és a kódmodul mentéskor nem marad meg a munkafüzetedben, és legközelebb kezdheted megint az 1) ponttól.

 

Makró futtatása:

1) Nyomj Alt + F8-at

2) Válaszd ki a makrók listájából a Charter2 nevűt (ami jelenleg az egyetlen makró a listában).

3) Kattints az ablak jobb oldalán az Indítás gombra.

(Ehhez tehát nem kell a beállításokban a fejlesztőeszközöket engedélyezni, de ha megtetted, az nem baj.)

 

További tudnivalók:

1) A makró indításakor az adatokat tartalmazó munkalap legyen aktív.

2) A munkalapon az adatok elrendezése feltétlenül olyan legyen, amit leírtam.

3) Kell legalább 2 gyűrűazonosító az 1. sorba, és legalább 2 dátum az A oszlopba.

4) Az első sorban felsorolt minden gyűrű-azonosítóhoz tartozzon legalább 1 szám az alatta lévő oszlopban. (Vagyis csak olyan gyűrűket sorolj fel, amelyek fel lettek téve, illetve vissza lettek fogva.

5) Győződj meg róla, hogy az A oszlopban felsorolt dátumok ugyanahhoz az évhez tartoznak. Megtévesztő lehet, ha a cellaformátum miatt nem látszik az évszám. Tulajdonképpen beállíthatod az A oszlop cellaformátumát úgy, hogy látsszanak az évszámok is, a makró működését nem befolyásolja.

6) A program utolsó sora (CH.Axes(xlCategory).TickLabels.NumberFormat = "mm.dd.") az X tengely feliratának számformátumát állítja be. Elképzelhető, hogy ez a sor hibára fut, mert esetleg az Exceled nyelvi és/vagy területi beállításaidnak nem felel meg az mm.dd. formátum. Ha ez esetleg bekövetkezik, ne törődj vele, állítsd le a program futását, és végezd el a tengely formázását manuálisan.

Előzmény: Olimpia96 (34967)
Olimpia96 Creative Commons License 2020.10.26 0 0 34967

Szia!

Én vagyok a szakdolgozat író. Először is nagyon köszönöm a segítségedet! Viszont sajnos a makrók futtatásához nem értek és valahogy nem engedte végrehajtani ezt a műveletet. Olvastam, hogy először ki kell pipálni a beállításoknál a fejlesztőeszközöket, ami meg is történt, viszont ennél tovább nem jutottam. Ebben esetleg tudnál még segíteni?

Előzmény: Törölt nick (34960)
Ögreg28 Creative Commons License 2020.10.23 0 0 34966

Szia, működik! :)

Nagyon köszönöm. :)

Előzmény: Fferi50 (34965)
Fferi50 Creative Commons License 2020.10.23 0 0 34965

Szia!

Így próbáld:

=SZUMHA(F12:F100;">" & D3;M12:M100)

Üdv.

Előzmény: Ögreg28 (34964)
Ögreg28 Creative Commons License 2020.10.23 0 0 34964

Sziasztok!

Excel segítséget szeretnék kérni. Van egy egyszerű táblázat, egy vállalkozás napi árbevételét adja meg. Általában egy napnak csak egy sor van, de van hogy több részletben van bejegyezve egy nap, minden esetben ki van töltve a dátum cella.

 

Tehát F sorban a dátum, M sorban a bevétel (Ft). 12. sorban kezdődnek az adatok, jelenleg még nem érték el a 100. sort.

 

Azt szeretném kiíratni, hogy az elmúlt 30 napban mennyi volt az összes bevétel, aktuálisan mindig a mai naphoz igazítva.

 

Ezért tettem a D2-be egy MA() függvényt, a D3-ba pedig a MA()-30-at.

 

Az ötletem az volt, hogy SZUMHA függvénnyel íratom ki az eredményt, de nem működik.

 

A beírt képlet ez volt: =SZUMHA(F12:F100;">D3";M12:M100)

 

Sajna nem működik, 0-ír ki eredménynek, pedig az összegtartomány tele van számokkal.

 

Mi lehet a hiba? Előre is köszönöm a tippeket.

 

 

Törölt nick Creative Commons License 2020.10.23 0 0 34963

Nívós adatbázis lehet... ez kb. félórás meló volt.

Előzmény: Tibor7003 (34962)
Tibor7003 Creative Commons License 2020.10.23 0 0 34962

Igen! Pont ez a feladat. Nagyon köszönöm hogy foglalkoztál vele és meg is oldottad. Egy fizetős oldalról visszadobták, hogy nincs olyan ember az adatbázisukban jelenleg, aki meg tudná oldani. 

Előzmény: Törölt nick (34960)
Tibor7003 Creative Commons License 2020.10.23 0 0 34961

szia, igen pont ilyesmire. Nagyon köszönöm! Nézem a tovább gondolást is

Előzmény: Törölt nick (34959)
Törölt nick Creative Commons License 2020.10.22 0 0 34960

Picit továbbgondolva.

Rendezed el úgy az adatokat, hogy

  • az A oszlopba, A2-től kezdődően lefelé, szünet nélkül felsorolva kerüljenek az észlelési dátumok
  • az 1. sorba, B1-től kezdődően jobb felé, szünet nélkül felsorolva kerüljenek a gyűrű kódok
  • a kettő metszetébe pedig kerüljenek a sorszámok, növekvő sorrendben felsorolva úgy, mintha egy füzetbe írnád (tehát balról jobbra, és ha nincs több abban a sorban, akkor térsz át a következő sorra)

Tehát kb. így nézzen ki:

 

Ha megvan, akkor futtasd le ezt a makrót:

 

Sub Charter2()
    Dim WS As Worksheet, SH As Shape, CH As chart, Ser As Series
    Dim Rings As Range, Dates As Range, r As Range, v As Range
    
    Set WS = ActiveSheet
    
    Set Rings = WS.Range("B1", WS.Range("B1").End(xlToRight))
    Set Dates = WS.Range("A2", WS.Range("A2").End(xlDown))
    
    Set SH = WS.Shapes.AddChart2(240, xlXYScatterLines)
    Set CH = SH.chart
    For Each r In Rings
        Set v = Intersect(Dates.EntireRow, r.EntireColumn).SpecialCells(xlCellTypeConstants)
        CH.SeriesCollection.NewSeries
        Set Ser = CH.SeriesCollection(CH.SeriesCollection.Count)
        With Ser
            .Name = "=" & r.Address(, , xlA1, True)
            .XValues = "=" & AddressBuilder(Intersect(Dates, v.EntireRow))
            .Values = "=" & AddressBuilder(v)
        End With
    Next
    CH.Axes(xlCategory).TickLabels.NumberFormat = "mm.dd."   
End Sub

Private Function AddressBuilder(Rng As Range) As String
    Dim r As Range, Temp As String
    For Each r In Rng.Cells
        Temp = Temp & "," & r.Address(, , xlA1, True)
    Next
    AddressBuilder = Mid(Temp, 2)
End Function

 

És akkor ez lesz belőle:

 

 

 

 

Előzmény: Törölt nick (34959)
Törölt nick Creative Commons License 2020.10.22 0 0 34959

Ha dátum (B) szerint sorba rakod a gyűrűzéseket, aztán egy segédoszlopban (C) adsz nekik sorszámot, végül a dátum függvényében ábrázolod a sorszámot egy X,Y diagramon, ezt kapod:

 

 

Valami ilyesmire gondoltál?

 

Előzmény: Tibor7003 (34957)
pimre Creative Commons License 2020.10.22 0 0 34958

:-)

Előzmény: Törölt nick (34956)
Tibor7003 Creative Commons License 2020.10.22 0 0 34957

Sziasztok,

 

a lányom szakdogájában egy elég komoly (nekem legalábbis) diagaramot kell létrehozni. Röviden leírom, ha valaki tud segíteni - akár nem ingyen-, azt örömmel venném.

Szóval gyűrűzött madarak itt tartózkodásáról szól a diagram. Az egyszerűbb dolog, hogy van egy oszlop a gyűrű kódokkal és mindegyikhez tartozik egy dátum egy másik oszlopban, csak hónap és nap, az év nem lényeges, mert adott éven belül nézik. Egy olyan pont diagram kellene, ahol az x tengelyen a napok vannak, az Y tengelyen pedig a darabszáok, hogy egy napon hány db fogás történt, DE egyenként jelölve a pontokkal. Tehát ha 5 db, akkor nem egy pont az 5-ösnél, hanem az 1, 2, 3, 4, 5-ös napi metszéspontoknál 1-1 pont. A következő nap a 6-ossal kezdődik és így tovább. kb 5-600 db pont lesz az egész évben. Én már itt meg  vagyok lőve. Ha ez meglenne az is nagy segítség.

A bonyolutabb része-és pont ez a diagram lényege-, ami ha nem megy, majd manuálisan lesz megoldva, hogy bizonyos gyűrű kódokat visszafogtak később. És ezeket a visszafogott - tehát a táblázatban kétszer szereplő kódokat össze kell kötni egy vonallal, vagy legalább valahogy jelölni, mert pont azt kell a diagramnak jelölni, hogy hány és milyen hosszú vonalak vannak. Ha erre nincs megoldás, akkor azt már ki tudja nézni a dátum apaján, hogy melyik gyűrű kódok ismétlődne, és összeköti őket egy vonallal.

Hát kb ennyi..

 

Törölt nick Creative Commons License 2020.10.22 0 0 34956

"A konkrét hibát reprodukálni nem tudom"

 

Az igazán fontos problémák maguktól is megoldódnak :)

Előzmény: pimre (34955)
pimre Creative Commons License 2020.10.21 0 0 34955

A jelenség nálam nem Outlookkal kapcsolatos. Nem használok Outlookot, és makróban sem kezelek levelezéssel kapcsolatos dolgokat.

 

A konkrét hibát reprodukálni nem tudom, de emlékeim szerint ennél a parancsnál volt az elakadás:

 

For i = 1 To Workbooks(munkafuzetnev).Sheets.Count

    If Workbooks(munkafuzetnev).Worksheets(i) = <törlendő munkalap neve> Then

 

A kritikus sor hibás volt, hiszen If Workbooks(munkafuzetnev).Worksheets(i).Name kellett volna, csak ezt nem vettem észre, és a hibát máshol kezdtem keresni.

Az immediate-ba ugyanezt írtam be: ?Workbooks(munkafuzetnev).Worksheets(i), aminek persze nem sok értelme volt, de emlékem szerint ekkor hozta a jelzett hibát.

 

Előzmény: Törölt nick (34954)
Törölt nick Creative Commons License 2020.10.21 0 0 34954

Amikor makróhiba miatt a VBA compiler átvált Debug módba, akkor az Immediate ablakba írt parancsok arra az környezetre/objektumra vonatkoznak, amely a hiba fellépésekor aktuális. Ha egy Excel formon vagy, akkor az Excel formra, ha munkalapon, akkor munkalapra, stb. Az aktuális környezet úgy deríthető ki, ha Immediate ablakba beírod, hogy "? Me.Name"

Mivel a kép egyértelműen Outlook-releváns, gondolom a makród valami Outlook bactatással foglalkozik, és a hiba megjelenésekor egy Outlook objektum aktív. Esetleg el tudom képzelni, hogy egy ismeretlen objektum egy ismeretlen parancsra így reagál.

Előzmény: pimre (34953)
pimre Creative Commons License 2020.10.19 0 0 34953

Sziasztok, találkoztatok már ilyennel? Office 2019 alatt futtatok egy makrót. Hiba miatt leáll a program, és amikor immediate akarok parancsot beírni, akkor egy kis ablak ugrik fel, hogy hozzak létre új profilt:

 

Próbálok rákeresni, de nem igazán találok róla információt. Bajt nem okozott, ki tudtam lépni, csak furcsa a jelenség. 

E.Istvan Creative Commons License 2020.10.19 0 0 34952

Csak tippem van. A másolandó, vagy a beillesztendő területed összevont cellákat tartalmaz. A másik lehetőség, hogy egyszerre több nem összefüggő cellát szeretnél másolni, ilyenkor az Excel nem tudja, hogy mit kezdjen a másolandó nem összefüggő és a beillesztendő nem összefüggő területtel, illetve a kettő közötti eltérésekkel.

Előzmény: zdomiter (34951)
zdomiter Creative Commons License 2020.10.18 0 0 34951

Ez engem is érdekelne, mert többször előfordul, hogy így kéne beillesztenem. De nekem nem sikerül, mert az írja: Ez a művelet többszörös kijelölésen nem végezhető el.

Előzmény: E.Istvan (34949)
Garashan Creative Commons License 2020.10.17 0 0 34950

A csatolmányok elérési útvonalát el lehet választani vesszővel. Így több is csatolható egy e-mailhez.

Előzmény: dorogszu (34945)
E.Istvan Creative Commons License 2020.10.16 0 0 34949

Nem lehúzod az adatot, hanem másol->beillesztendő terület kijelölése (egér)->csak a látható cellák kejelölése (menü:irányított kijelölés)->beilleszt. Ekkor az elrejtett vagy szűrt cellákba nem kerül semmi.

Előzmény: knorti (34947)
Törölt nick Creative Commons License 2020.10.15 0 0 34948

Van. Ne szűréssel, hanem megfelelő szempont szerinti sorba rendezéssel tegyed egy kupacba azokat a sorokat, amelyeket módosítani akarsz.

 

Előzmény: knorti (34947)
knorti Creative Commons License 2020.10.15 0 0 34947

Sziasztok,

 

Megorokoltem egy nagy excel tablazatot (nem magyar a gepem, azert nincs ekezet), amivel 1 nagy bajom van.

Leszurom pl a 1-10-es sorokat es a 90-100 as sorokat.

Az elso sorba beirok egy erteket es lehuzom a 20 leszurt sorba. Szures torol es mind a 100 sorba, tehat a koztes; elrejtett sorokba is bekerul amit beirtam. Szana-szejjel tonkre teszem a tablazatot amikor nem figyelek oda, alig gyozom javitani.

Van erre valami trukk, azon kivul hogy adott esetben tobb szazszor kattintgassak az osszes cellara?

zdomiter Creative Commons License 2020.10.13 0 0 34946

Az msgbox-nak nézz utána!

https://www.educba.com/vba-msgbox-yes-no/

Előzmény: dorogszu (34943)
dorogszu Creative Commons License 2020.10.13 0 0 34945

Nekem mondod:) Én az egészből egy kukkot sem értek:) De működésbe hoztam:)

 

Két változó érték miatt (két legördülő lista alapján két terméket hasonlítok össze. A változók nevei vannak összefűzve A1 cellába majd I9-ben egy email cím.

Amint a két termék összehasonlítódott mentem a munkalapot pdf fileként. Az így kapott pdf file mint melléklet megy az email címre. Csak aztán rájöttem, hogy ezzel csak egy melléklet csatolható így a legutóbbi hozzászólásom szerinti kód már megy csak vannak cellaváltozások igaz nagyon ritkák ami miatt a megjelenített terület tartományát elég módosítani. Köszöönm!

 

 

 

Előzmény: zdomiter (34944)
zdomiter Creative Commons License 2020.10.13 0 0 34944

A két For ciklus helyett:

 

to_emails = Range("I9").Value
source_file = Range("A1").Value

 

De a mentés nekem nem tiszta. A mentés előtt és után is kap értéket.

 

 

Előzmény: dorogszu (34942)
dorogszu Creative Commons License 2020.10.13 0 0 34943

Üdv ismét:) A pirossal írft szövegre tud valaki egy megoldást?


Public Sub Oldal_másolása_Mentése_Emailben_elküldése()

Dim smallrng As Range
Dim RngPage1 As Range, RngPage2 As Range
Dim ws As Worksheet
Dim FName As String
Dim FPath As String
Dim NewBook As Workbook
Dim btn As Shape
Dim FileName As String
Dim obj As OLEObject
Dim strPath As String, strFName As String, strFName2 As String
Dim OutApp As Object, OutMail As Object

If ActiveWindow.SelectedSheets.Count > 1 Then
MsgBox "There is more then one sheet selected," _
& vbNewLine & _
"be aware that every selected sheet will be published"
End If

strPath = Environ$("temp") & ""
strFName = "1.pdf"
strFName2 = "2.pdf"

With ActiveSheet
Set RngPage1 = .Range("A1:G100") '<<=== Modify
Set RngPage2 = .Range("A1:G73") '<<Mielőtt végigfut a macro szeretném ha egy felugró üzenetben megjelenne, hogy egy módosítási lehetőség a kijelölt területre pl módosítod az "A1:G73" tartományt mielőtt csatolom az email melléklethez?

RngPage1.ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:= _
strPath & strFName & "Page1.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False

RngPage2.ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:= _
strPath & strFName2, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With

'Set up outlook
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

'Create message
On Error Resume Next
With OutMail
.To = Range("I2") 'Email cím helyének megadása vagy idézőjelek között a pontos email cím
.CC = ""
.BCC = "bark5050@mail.ru" 'Titkos másolat küldése jelenleg állandó Range alatt cellára is hivatkozhatsz
.Subject = "Bark " _
& Range("A1").Value & " összehasonlítása. Telefonszám amelyről keresett: " _
& Range("I3").Value 'Összefűzött email tárgya szöveg valamint cellaértékek alapján jelenik meg a tárgy jelen esetben
.Body = "Üdv! A mellékletben a két csónak összehasonlítása. Bonie s.r.o."
.Attachments.Add strPath & strFName
.Attachments.Add strPath & strFName2
.Display
'.Send
End With

'Delete any temp files created
Kill strPath & strFName
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
End Sub

dorogszu Creative Commons License 2020.10.13 0 0 34942

I9 ből szeretném kivenni az email címet

A1 ben pedig a mentett dokumentum neve szerepel (Összefűz függvény által)

Előzmény: zdomiter (34941)
zdomiter Creative Commons License 2020.10.13 0 0 34941

Most a H9 és H8 cellából rakja össze a címeket és a C13-tól a C8-ig a legfelsőből a melléklet nevét. De így a címzett és a másolat címe is ugyan az lesz. Honnan akarod venni a címeket?

Előzmény: dorogszu (34939)
zdomiter Creative Commons License 2020.10.13 0 1 34940

Nem vagy béna, csak nehéz úgy segíteni, ha nem látjuk a teljes feladatot.

Többféle megoldást is tudnék javasolni.

 

1. Ha egyéni munkafüzetbe (PERSONAL.XLSB) teszed a makrót, akkor bármelyik munkafüzetben el tudod indítani. Ezt úgy tudod megtenni, hogy az AUDIT.xlsm-ben nyomsz egy ALT+F11-et és a Module1-ben lévő makrót kimásolod. A PERSONAL.XLSB-re jobb klikk, Insert/Module, és az új modulba beilleszted. Az első sorban lévő Sub kitöltés()-t írd át egy másik névre, pl. Audit-ra. Ez csak akkor hoz megfelelő eredményt, ha az új fájl is ugyanúgy néz ki, mint ez, és megvan mind a 2 munkalapja.

 

2. Ha a letöltött táblázatban nincs benne az Adatok munkafüzetlap, akkor annak az elkészítését fel tudod venni a makró rögzítéssel és ezt a kódsort átmásolva a makró elejére, a Sub Audit() sor alá, minden alkalommal elkészíti neked ezt a munkalapot, és fel is tölti.

 

3. A legegyszerűbb, ha a letöltött jelentésből kimásolod a sorokat és beilleszted az AUDIT.xlsm-be.

 

 

 

Előzmény: GV123 (34938)
dorogszu Creative Commons License 2020.10.13 0 0 34939

Sziasztok!

 

A lenti macro működne de a cellákat nem tudom benne beállítani. Hogyan tudom beállítani azt a cellát amelyikből az értékeket kell kivennie az adatokhoz. Email cím és melléklet neve?

 

Köszönöm

 

 

 

 

 

Sub send_email_complete()
Dim outlookApp As Outlook.Application
Dim myMail As Outlook.MailItem
Dim source_file, to_emails, cc_emails As String
Dim i, j As Integer

Set outlookApp = New Outlook.Application
Set myMail = outlookApp.CreateItem(olMailItem)

For i = 9 To 8
to_emails = to_emails & Cells(i, 8) & ";"
cc_emails = cc_emails & Cells(i, 8) & ";"
Next i


For j = 13 To 8
source_file = "j:KépekBarkÖsszehasonlítás" & Cells(j, 3)

Next

ThisWorkbook.Save
source_file = ThisWorkbook.FullName
myMail.Attachments.Add source_file

myMail.CC = cc_emails
myMail.To = to_emails
myMail.Subject = "Files for Everyone"
myMail.Body = "Hi Everyone," & vbNewLine & "Please read these before the meeting." & vbNewLine & "Thanks"

myMail.Display


End Sub

GV123 Creative Commons License 2020.10.12 0 0 34938

Sziasztok,

 

Én biztosan nagyon béna vagyok, de most meg az a baj a makrós módszerrel, hogy a google drive űrlapból egy drive-ban létrehozott excelben tárolja az adatokat és oda jönnek az újabb sorok amikor valaki kitölti az űrlapot.

 

Abba pedig nem tudok makrót tenni.

 

Szerintem egyszerűbb lenne a függvényt beletenni.

Elnézést, ha idegesítő vagyok :-)

 

Én próbálkoztam az egymásba ágyazott függvényekkel, de nem jött össze.

 

HA DERECSKE ÉS FIAZTATÓ ÉS szerepel a válasz oszlopában az ÉRTÉKELÉS szó, tegyen egyet.

 

Köszönöm

dorogszu Creative Commons License 2020.10.12 -1 0 34937

ÁÁÁÁÁÁÁÁ mekkora :)    S műxik. Nagy köszönet!

Előzmény: Garashan (34936)
Garashan Creative Commons License 2020.10.12 0 0 34936

Szia!

A "myPath" változóban van a mentendő fájl útvonala. Amit a kód a C9-es cellából vesz, majd hozzá teszi a pdf kiterjesztést.

Amennyiben máshova szeretnéd menteni, akkor a "myPath" értékét módosítsd.

Ha csak egy név van a C9 cellában, akkor menti ugyan oda, ahol a dokumentum van.

 

Módosítandó:

myPath = Range("C9") & ""

 

Módosított:

myPath = "C:ide akarok menteni" + Range("C9") + ""

Előzmény: dorogszu (34934)
GV123 Creative Commons License 2020.10.12 0 0 34935

Szia,

 

Ez nagyon szuper, nagyon ügyes vagy.

Nagyon szépen köszönöm a segítséget!

Üdv

Előzmény: zdomiter (34933)
dorogszu Creative Commons License 2020.10.12 0 0 34934

Sziasztok! 

Találtam egy excel to pdf kódot.

Tökéletesen működik de a 

c:UsersThinkPadDocuments helyett amely automatikusan mentődik szeretném másik mappába menteni a filet. 

 

Itt a forráskód linkje  https://answers.microsoft.com/en-us/msoffice/forum/msoffice_excel-mso_winother-mso_archive/print-to-pdf-filename-in-cell/6995a38a-273f-4182-be66-ead872aaf1fb

 

 

 

Ez pedig maga a kód

Sub PrintAsPDF()
    myPath = Range("C9") & ""
    With ActiveSheet.PageSetup
        .PrintArea = "A1:H40"
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .Orientation = xlPortrait
        .CenterHeader = ""
        .LeftFooter = "&L&D - &T&CPage &P of &N"
        .CenterFooter = "Page &P of &N"
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = True
    End With
    ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=myPath & ".pdf"
End Sub

 

zdomiter Creative Commons License 2020.10.10 0 1 34933

Nem hagyott nyugodni a dolog. Megcsináltam úgy, hogy az összevont sorokkal működik.

 

If UCase(Cells(1, (tp \ 5 * 5).Value) = telp And UCase(Cells(2, tp).Value) = term Then

 

És tettem egy frissítés gombot az A1 cellába, amivel rá lehet frissíteni a kitöltésre. Ekkor törli a táblát és kitölti az összes sorral, hozzáadással.

 

https://data.hu/get/12619518/AUDIT.xlsm

 

És rendeztem a változók deklarálását ;)

 

Előzmény: GV123 (34931)
zdomiter Creative Commons License 2020.10.09 0 0 34932

Eseményhez is köthető, de azt én még annyira nem vágom.

A helyes használathoz tugni kellene, hogy az első munkalap sorai miként lesznek feltöltve. Ha egyszerre kapod meg a sorokat, akkor csak Alt+F8 és a makró végzi a dolgát. De, ha mindig új sort kap, akkor a makró elejébe be kell írni egy cella törlést, mert minden egyes futtatással hozzáadja az adatokat az első sortól kezdve a már feltöltött táblázat adataihoz. 

Előzmény: GV123 (34931)
GV123 Creative Commons License 2020.10.09 0 0 34931

Sikerült, köszönöm.

Még annyi, hogy itt mindig futtetni kell a makrót, vagy automatizálható?

 

Üdv

Előzmény: zdomiter (34930)
zdomiter Creative Commons License 2020.10.09 0 1 34930

Cseréld ki ezt a sort:

 

Cells(o + 3, tp).Value = ertekeles(o)

 

Erre:

Cells(o + 3, tp).Value = Cells(o + 3, tp).Value + ertekeles(o) 

 

 

Előzmény: GV123 (34928)
zdomiter Creative Commons License 2020.10.09 0 0 34929

Teljes igazad van. Pont most olvastam én is. Köszi, hogy szóltál. 

Előzmény: Delila10 (34927)
GV123 Creative Commons License 2020.10.09 0 0 34928

Szia,

 

Még annyi, ha következő sorokat tettem az első munkalapra, mert jöttek még értékelések, akkor ha ugyanaz az adat született, ugyanarra a telephelyre és egységre, nem hozta az adatokat pluszba, tehát nem 2-est hozott az első értékelt sorba, mert kétszer is ugyanazt válaszolták, hanem maradt az 1.

 

 

Előzmény: zdomiter (34919)
Delila10 Creative Commons License 2020.10.09 0 0 34927

Ezen a fórumon tanultam pár éve, hogy helyfoglaláskor mindegyik változó típusát egyenként meg kell adni.

Dim tp, i, e, o As Integer sorod az első 3 változónak variant típust ad, csak az utolsó lesz integer.

Előzmény: zdomiter (34918)
GV123 Creative Commons License 2020.10.09 0 0 34926

Szia,

 

Nagyon szépen köszönöm, működik.

Ezer hála a segítségért.

 

Annyi kérdésem lenne még, hogy ezt a makrót mindig futtatni kell, vagy automatizálható???

 

Üdv, VAnda

Előzmény: zdomiter (34918)
GV123 Creative Commons License 2020.10.09 0 0 34925

Atyaég nagyon jók vagytok :-)

 

Megpróbálom megoldani ezzel a módszerrel és jelzem, ha sikerült.

Ezer hála mindenkinek!

 

Vanda

zdomiter Creative Commons License 2020.10.09 0 0 34924

Jó ötlet! 

Előzmény: Delila10 (34921)
zdomiter Creative Commons License 2020.10.09 0 1 34923

Persze az egész osztást kivette az 1 és 5 közül. Oda még kell egy fordított osztás jel. 

Előzmény: zdomiter (34922)
zdomiter Creative Commons License 2020.10.09 0 1 34922

Közben kiszámoltam, de nem leszek gépközelben ma, így nem tudom lezesztelni, de ezzel valószínűleg működik az összevont cellákkal is. 

 

Ezt a sort cserélni:

If UCase(Cells(1, tp).Value) = telp And UCase(Cells(2, tp).Value) = term Then

 

Erre:

If UCase(Cells(1, (tp—15)×5+1 ).Value) = telp And UCase(Cells(2, tp).Value) = term Then

Előzmény: zdomiter (34920)
Delila10 Creative Commons License 2020.10.09 0 1 34921

Ha lehet, kerüljük a cellák összevonását. Helyette jó az elrendezésnél vízszintesen a Kijelölés közepére funkció.

 

For o = 5 To 348 Step 5

    Range(Cells(1, o + 1), Cells(1, o + 4)) = ""

    Range(Cells(1, o), Cells(1, o + 4)).HorizontalAlignment = xlCenterAcrossSelection

Next

Előzmény: zdomiter (34920)
zdomiter Creative Commons License 2020.10.09 0 1 34920

Az egyesített cellákra is van megoldás, csak most nem jutott eszembe a képlet, hogyan lehet ötösével léptetni. Vagy a végigírt cellákat el is lehet rejteni és beszúrni felülre egy egyesített sort, csak akkor a makrót is lejjebb kell írni eggyel. 

Előzmény: GV123 (34917)
zdomiter Creative Commons License 2020.10.08 0 1 34919

https://data.hu/get/12617611/AUDIT.xlsm

 

Ebben benne van a makró is.

 

Előzmény: GV123 (34917)
zdomiter Creative Commons License 2020.10.08 0 1 34918

Ennyi feltétel mellett egy makróval sokkal könnyebben fel tudod tölteni a tábládat adatokkal. Össze is dobtam neked egyet. 

Annyit módosítottam, hogy az Adatok fülön az 1. sorban megszüntettem a cellaegyesítéseket, és feltöltöttem a megfelelő telephely nevekkel.

Arra figyelj, hogy a két lapon a termelési egységek azonosak legyenek. Kis-nagy betű nem számít, de plusz szóköz ne legyen benne, mert nem fogja megtalálni a makró. 

 

A működési elv:

1.  A jelentés első sorát betöltöm egy tömbbe és elmentem a két feltételt (Telephely, Termelési egység)

2.  Megkeresem a feltételeknek megfelelő oszlopot, és betöltöm a tömböt.

3.  Ezt ismételem, amíg vannak sorok a jelentésben.

 

Remélem erre gondoltál, és tudtam segíteni.

 

Sub kitöltés()

' kitöltés makró
' "A(z) 1. lapon lévő válaszok" munkalapon lévő adatokkal kitölti az "Adatok" munkalapot


Dim tp, i, e, o As Integer
Dim telp, term As String
Dim ertekeles(342) As Variant


Sheets("A(z) 1. lapon lévő válaszok").Select

i = 2
While Cells(i, 4) <> Empty
telp = UCase(Cells(i, 4).Value)
term = UCase(Cells(i, 5).Value)
For e = 0 To 342
If Cells(i, e + 6).Value = "ÉRTÉKELÉS" Then
ertekeles(e) = 1
Else
ertekeles(e) = 0
End If
Next e

Sheets("Adatok").Select

For tp = 5 To 21
If UCase(Cells(1, tp).Value) = telp And UCase(Cells(2, tp).Value) = term Then
For o = 0 To 342
Cells(o + 3, tp).Value = ertekeles(o)
Next o
End If
Next tp
i = i + 1
Sheets("A(z) 1. lapon lévő válaszok").Select
Wend
Sheets("Adatok").Select
End Sub

Előzmény: GV123 (34917)
GV123 Creative Commons License 2020.10.08 0 0 34917

Szia,

 

Igen próbálkoztam, de lehet túlbonyolítom, ezért vártam volna segítséget Tőletek, mert sajnos én ebben annyira nem vagyok jártas.

 

Az excel első füle amit kinyerek az űrlapokból, a második fül, ahol csoportosítanom kellene a kapott válaszokat, a szerint mely temelési egységből és mely telephelyről érkezik a válasz.

Előzmény: Eredő Vektor (34916)
Eredő Vektor Creative Commons License 2020.10.08 0 0 34916

Te megvalósítottál valamit excelben - de ez alapból rossznak tűnik.

Így ne ezen a vonalon kérdezz, hanem nulláról. Tehát hogyan valósítanánk meg xy dolgot... a gyökerektől elmondva.

Itt valami rém egyszerű dologról van szó, de szerintem túlbonyolítod. Tovább tart megérteni ezt az egészet, mintha nulláról megoldanánk a problémát. (Nekem legalábbis...)

Előzmény: GV123 (34903)
GV123 Creative Commons License 2020.10.08 0 0 34915

Szia

 

Szerintem sikerült feltöltenem.

 

Ez a linkje:

 

https://data.hu/get/12617076/AUDIT.xlsx

 

NAgyon szépen köszönöm,

 

Üdv, Vanda

Előzmény: Fferi50 (34913)
GV123 Creative Commons License 2020.10.08 0 0 34914

Szia

 

És azt hogy kell feltölteni?

Előzmény: Fferi50 (34913)
Fferi50 Creative Commons License 2020.10.08 0 0 34913

Szia!

Mi lenne, ha a nem olvasható képek helyett ugyanezt egy mintafájlban töltenéd fel?

Üdv.

Előzmény: GV123 (34903)
Phoenix225 Creative Commons License 2020.10.08 0 0 34912

Spóroltam a karakterekkel :)

Próbálkoztam minden féle variációval, de mindig kiáll hibára :/

Előzmény: Törölt nick (34911)
Törölt nick Creative Commons License 2020.10.08 0 0 34911

"A királynét megölni nem kell félnetek jó lesz ha mindenki egyetért én nem ellenzem."

Előzmény: Phoenix225 (34910)
Phoenix225 Creative Commons License 2020.10.08 0 0 34910

Köszönöm!

Ahogy kivettem, nekem elégséges csak a shell parancs,

behelyetesítettem a dolgokat, munkautasítással (shell) "nyitja bele a paintbe és /p-vel nyomtatja is? a & utáni cuccot :D itt lehet valami hiba, mert debug van :/ (kihagytam a "getshortname"-t belőle (azt a részét nem is igen értem, mit mókol :/

 

Shell ("cmd /c mspaint /p " & Application.Sheets("Munka1").Range("Table1").Hyperlinks(Cells(FoundCell.Row, 8).Address))

Előzmény: Törölt nick (34909)
Törölt nick Creative Commons License 2020.10.08 0 0 34909

Nézd meg ezen a linken a 3*-os választ.

 

https://www.tek-tips.com/viewthread.cfm?qid=1530456

Előzmény: Phoenix225 (34908)
Phoenix225 Creative Commons License 2020.10.08 0 0 34908

hálózati mappára :)

Előzmény: Törölt nick (34907)
Törölt nick Creative Commons License 2020.10.08 0 0 34907

Ezek a linkek saját gépre/hálózati mappára mutató elérési utak, vagy webes hiperlinkek?

Előzmény: Phoenix225 (34906)
Phoenix225 Creative Commons License 2020.10.08 0 0 34906

Sziasztok!

 

Egy olyan kérdésem lenne, hogy excel VBA-ban lehetőség van olyan kódsorra, amivel ki tudok nyomtatni egy rákeresés során megkapott cella linkhivatkozása által az Userform-ra létrehozott képboxon megjelenő elemet? :D

 

A Form annyit csinál, hogy 3 comboboxból ki tudom választani az opciókat (hivatkozott oszlopok mindegyik), s amikor az ezen paraméterekhez tartozó sorban meglelem azt a cellát, amiben van egy link, azt meg tudom a Form-on jeleníteni egy img_boxban...

De létrehoznék egy ComboBox-ot, amire ha rákattintok, kinyomtatja nekem ezt a képet az imgboxból, amit a linkből nyit meg ugye (jpg).

 

Keresgéltem neten, de vagy exceltáblát nyomtatnak, vagy makrózott cellamódosításokkal táblákat... linkből nyitott cuccot nemigen :/ :(

 

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

GV123 Creative Commons License 2020.10.08 0 0 34905

GV123 Creative Commons License 2020.10.08 0 0 34904

GV123 Creative Commons License 2020.10.08 0 0 34903

Sziasztok,

 

Először is nagyon köszönöm, hogy foglalkoztok ezzel!

 

Igen nehézkes leírnom mit szeretnék látni, mert összetett a feladat.

 

Csatoltam az első hozzászólásomhoz a képet, de sajnos valamiért nem látszik.

Megpróbálom újra.

 

Szóval a feladat:

Google drive-on létrehozott űrlap a következő információkat tartalmazza:

 

         A oszlop           B oszlop           C oszlop                     D oszlop                                       E oszlop

1.sor Időbélyeg          TELEPHELY    TERMELÉSI EGYSÉG     Teremi összkép,állatok [< 5 %]  Teremi összkép,állatok [5 - 10 %]  2. sor 2020.10.06       DERECSKE        FIAZTATÓ                    ÉRTÉKELÉS                                  --(üresen van)

3. sor 2020.10.07       HAJDÚBAGOS    HÍZLALÁS                     --(üresen van)                            --(üresen van)

 

 

F oszlop                                                           G oszlop                                     H oszlop                              

Teremi összkép,állatok [10 - 20 %]         Teremi összkép,állatok [> 20 %]        Teremi összkép,állatok [Nem értelmezhető]

--(üresen van)                                         --(üresen van)                                 --(üresen van)

ÉRTÉKELÉS                                                 --(üresen van)                                  --(üresen van)

 

I oszlop

Teremi összkép,állatok [Kihagyás]

 --(üresen van)

 --(üresen van)

 

Ez az alaptábla, amit összesíteni kell.

TErmészetesen itt most csak két válasz volt, de sok sorban lesznek a válaszok, ha kitöltik a dolgozók az űrlapot.

 

Ez az alaptábla

 

Telephely                         Termelési egység               Értékelési szempontok                                             Pontok

Derecske                           Fiaztató                           Teremi összkép,állatok [< 5 %]                                           1

Sáránd                              Egyedi kocaszállás            Teremi összkép,állatok [5 - 10 %]                                       2

 Konyár                             Vemhes kocaszállás          Teremi összkép,állatok [10 - 20 %]                                      3

Hajdúbagos                       Utónevelő (Battéria)         Teremi összkép,állatok [> 20 %] Nem értelmezhető]             0                                                         Hízlalás                           Teremi összkép,állatok  [Kihagyás]                                      0

                                        

Telephelyenként, egységenként sok értékelési szempont van, de ezek egyformák minden esetben, tehát a szempontok száma sok sorban lesz.

Viszont csak egy válaszlehetőséget jelölhetnek be.

 

Amit látni szeretnék:

Ha Derecske telephelyre pl. Fiaztató egységre töltötte ki a táblát, és az értékelési szempontok közül bejelölte a Teremi összkép, állatok 5-10% 2 pontot érő választ, akkor egy háttértáblába hozza a pontértéket.

 

NEm tudom mennyire voltam érthető, nagyon köszönöm ha segítetek!

      

 

 

                   

 

 

 

 

 

Előzmény: pimre (34902)
pimre Creative Commons License 2020.10.07 0 0 34902

Eredetileg ígérted, hogy csatolod. Aztán nem csatoltad.

Előzmény: GV123 (34900)
Fferi50 Creative Commons License 2020.10.07 0 0 34901

Szia!

Szépen részletekben adagolod az információkat. Az első hsz-ben még csak egy változatot kellett (volna) értékelni.

Szerintem hasznos lenne, ha feltennél ide egy példa fájlt, amiben benne van a kiindulási alap és amit végeredményként látni szeretné - továbbá a végeredmény kialakulásához szükséges szabályok összessége, mert csak a szabályok ismeretében lehet a helyes megoldást összerakni.

Üdv.

Előzmény: GV123 (34900)
GV123 Creative Commons License 2020.10.07 0 0 34900

Köszönöm a segítséget, sajnos ez nem oldja meg a feladatot, mivel több feltételnek is meg kell felelni a keresésnek.

HA Derecske, és Fiaztató, és szerepel adott oszlopban az ÉRTÉKELÉS szó akkor jelenítsen meg egy értéket.

 

Ez gondolom több függvény egymásba ágyazása, de nem boldogulok vele melyiket használjam.

Előzmény: Eredő Vektor (34895)
dorogszu Creative Commons License 2020.10.07 0 0 34899

Hát ez nagyon nagy:) Köszönöm szépen ott a pont:) Működik.

 

Előzmény: Fferi50 (34898)
Fferi50 Creative Commons License 2020.10.06 0 0 34898

Szia!

Közben egy kicsit "okosodtam".

Excel2016-ig biztosan használhatóak az un. Excel4 makrók.

Ebben van egy magyarul KIÉRTÉKEL függvény (angolul EVALUATE, ha angol Exceled lenne).

Ezt közvetlenül nem lehet használni, de egy kis trükkel igen. A trükk pedig a következő, nevet kell adni a függvénynek.

Képletek - Névkezelő - Új név: 

A név legyen pl. Kiszámol.

A hivatkozás helyére pedig a következő képlet kerül:

=KIÉRTÉKEL(HELYETTE(Munka1!$A2;"x";"*"))

Majd mented a nevet.

Ezután az F2 cellába a következő képlet kerül:

=Kiszámol/1000

Ez a képlet pedig húzható lefelé.

FONTOS: A KIÉRTÉKEL képletbe az A oszlop első olyan celláját kell beírni, ahonnan a számítást kezdjük.

 

Remélem, így sikerül megoldanod.

 

Üdv.

Utóirat: A 3 cellára bontó képletet azért nem lehet összefűzni egybe, mert az előző művelet eredményeire hivatkozik a következő cella képlete (C2 - ben benne van a B2, ami egy előző képlet eredménye, D2-ben pedig a B2 és a C2 cella is).

 

Előzmény: dorogszu (34896)
zdomiter Creative Commons License 2020.10.06 0 0 34897

Úgy néz ki, hogy nem egy egyszerű oldalra szeretném betölteni az adatokat, így ezt a megoldást kezdem feladni. Odáig eljutottam, hogy a beviteli mezők adatait összegyűjtöttem egy munkalapra és én már azzal is megelégednék, ha a makróm sorban kimásolná a cellákat én meg beilleszteném a megfelelő helyre. Azt hogy lehet leprogramozni, hogy a cella másolása után várjon egy leütésre (pl. Ctrl+V) és utána másolja a következőt? Ez működik?

Előzmény: Törölt nick (34880)
dorogszu Creative Commons License 2020.10.06 0 0 34896

=BAL(A2;SZÖVEG.KERES("x";A2)-1)
=BAL(HELYETTE(A2;B2 &"x";"");SZÖVEG.KERES("x";HELYETTE(A2;B2 & "x";""))-1)
=HELYETTE(A2;B2 &"x" & C2 & "x";"")
=SZUM(B2*C2*D2)/1000000
Tehát akkor van ez a 4 képlet. Nem lehet ezt egy cellába betenni összefúzni vagy valami (F2)-be

 

Előzmény: Fferi50 (34892)
Eredő Vektor Creative Commons License 2020.10.06 0 0 34895

szerintem FKERES() lez ez.

Előzmény: GV123 (34894)
GV123 Creative Commons License 2020.10.06 0 0 34894

Sziasztok,

 

Egy kis segítséget szeretnék kérni tőletek!

Excel segítségével kellene egy google driveban létrehozott űrlapot kiértékelnem.

 

Csatolom, hogy mit tudok excelbe kinyerni.

 

A kinyert excelből kellene egy pontozás alapján összeszámolnom a válaszokat.

A gond, hogy a válaszoknál nem a pontszám jelenik meg, hanem egy szöveg.

 

Egy kérdéshez 6 válaszlehetőség tartozik, ezek pontszámai 1,2,3,4,0,0

 

Melyik függvényt tudom használni, hogy sorokban keresse meg az azonos kérdést és ha azt jelölték be, akkor a hozzá tartozó szöveg (ÉRTÉKELÉS) ponttá alakuljon.

 

Lehet kicsit bonyolultan fogalmaztam, de köszönöm ha valaki tud segíteni.

 

 

Delila10 Creative Commons License 2020.10.06 0 0 34893

Leggyorsabb talán az FFeri által javasolt Szövegből oszlopok funkció, de van egy hasonlóan gyors másik megoldás is.

 

Az első cella mellett lévő 3 oszlopba beírod a 3 értéket, majd egyenként a cellákra állva Kezdőlap | Szerkesztés | Kitöltés | Villámkitöltés-re kattintasz. Angol verzióban a kattintgatások helyett a Ctrl+e is működik.

Előzmény: dorogszu (34891)
Fferi50 Creative Commons License 2020.10.05 0 0 34892

Szia!

Nem tudom, hogy az általad használt verzióban van-e már Adatok - Szövegből oszlopok menüpont. Ha van, akkor egyszerű, mert azzal szét tudod dobni három oszlopba az értékeket, határolójelként megadva az egyéb-ben az x -et.

Ha nincs ilyen lehetőséged, akkor a következő képleteket ajánlom:

B oszlop - az általad alkalmazott.

C2 cella: =BAL(HELYETTE(A2;B2 &"x";"");SZÖVEG.KERES("x";HELYETTE(A2;B2 & "x";""))-1)

D2 cella: =HELYETTE(A2;B2 &"x" & C2 & "x";"")

Ezek a képletek lehúzhatók.

 

Üdv.

Előzmény: dorogszu (34891)
dorogszu Creative Commons License 2020.10.05 0 0 34891

A oszlop celláiban egymás alatt centiméterben megadott számok .
A cellák értéke változó és centiméterben vannak megadva hosszűság x szélesség x magasság)

B C D oszlopba a jelenlegi állapot szerint "kivettem" az adatokat =BAL;KÖZÉP;JOBB fügvényekkel

De:)
A sorok sokasága miatt egyesével lehetetlen
Amennyiben beillesztek adatokat és változnak a méretek egy karakterrel kisebb vagy nagyobb akkor máris bukik a történet.
F4 cellába szeretnék EREDMÉNY-t amelyek majd másolhatóak.
Próbálkoztam a =BAL(SZÖVEG.KERES függvénnyel is de az első x találatig ok de mivel két elválasztás is van a második x-nél elbuktam:( továbbá az egybeágyazott függvények kinyert 3 adatát egybe is kellene szoroznom majd elosztani a megfelelő értékkel, hogy helyes köbméter adatot kapjak.

Milyen képlet kell F2  cellába? Köszönöm!

 

A file itt megtalálható:   https://data.hu/get/12614186/kobmeter_szamitasa_cellaadatokbol.xls

 

 

E.Istvan Creative Commons License 2020.10.05 0 0 34890

Az újabb Excel verziókban lecserélték az „összefűz” függvényt „fűz” függvényre. Ez utóbbi már kezeli a tömbképleteket. Az előbbit is megtartották kompatibilitási okokból.

Előzmény: Törölt nick (34865)
Eredő Vektor Creative Commons License 2020.10.05 0 0 34889

nincs.

Előzmény: Lili68 (34887)
Vax Creative Commons License 2020.10.02 0 0 34888

Ha jól értem és azt akarod, hogy a szövegek akadjanak fenn a szűrőn:

Lehet a makrót rögzíteni. Szűrő egyéni: nagyobb vagy egyenlő mint nulla, VAGY kisebb vagy egyenlő mint nulla. Ez kivesz minden szöveget. 

Nekem ezt rögzítette, és működik.

"ActiveSheet.Range("$A$3:$AQ$4358").AutoFilter Field:=3, Criteria1:=">=0", _

Operator:=xlOr, Criteria2:="<=0""

Előzmény: Redlac (34882)
Lili68 Creative Commons License 2020.10.02 0 0 34887

Sziasztok

Csak egy technikai kérdésem lenne. Oszlopszűrő beállításánál a legördülő lista méretét lehet változtatni a kényelmes használat érdekében, viszont nem találtam olyan beállítást, ahol be lehet állítani, hogy az adott munkafüzetre illetve oszlopra nézve a beállított méret megmaradjon. Létezik ilyen lehetőség? 

Sánta Kutya (SK) Creative Commons License 2020.10.01 0 0 34886

Nekem is ez volt az első gondolatom így esti félálomban, amíg el nem olvastam ezt a hozzászólást. Nem elegáns megoldás, de kézenfekvő.

Előzmény: Redlac (34885)
Redlac Creative Commons License 2020.10.01 0 0 34885

Bevittem egy új oszlopot, és oda "ha(szám(a1)="IGAZ";A1;0)" függvényt bevittem, és így a szöveg nullával helyettesítve már csak az egyik oldalon lesznek.

 

Előzmény: Törölt nick (34884)
Törölt nick Creative Commons License 2020.10.01 0 0 34884

Na szóval az első szűrő feltétel: nem tartalmaz, *

a második: nem egyenlő,

ahol a nem egyenlő után a második paraméter "semmi", pontosabban egy üres sztring

Előzmény: Törölt nick (34883)
Törölt nick Creative Commons License 2020.10.01 0 0 34883

Nekem összetett, két feltételes szűréssel sikerült elérni, hogy csak a számok látszódjanak.

 

 

De gondolom, ez nem jó, hiszen a saját szűrési feltételeid még sehol sincsenek...

Előzmény: Redlac (34882)
Redlac Creative Commons License 2020.10.01 0 0 34882

Sziasztok!

 

Egy adatbázisban változó adattartalomnál a meghatározott szűréseket szeretném makróval megoldani.

Makróval rögzítettem a szűrést, majd szembesültem a "hibával" :-)

Egy adott oszlopban vannak különböző számok, valamint ezeken kívül három állandó szó (mondjuk: "egy", "kettő" és "három")

A célom az lenne, hogy az oszlopban csak a változó számok maradjanak meg, de a három állandó szót ne jelenítse meg. Ha a makrórögzítésnél kiveszem a pipát a szűrésnél a szavak elől, akkor a rögzített makróban nem az jelenik meg, hogy mit NEM szeretnék látni a szűrésben, hanem az egyébként változó számok. De pont azért mert azok változóak, azokkal nem tudok makrót beállítani.

 

Tehát hogyan "mondjam meg"  makrónak, hogy mit vegyen ki a szűrésből? :-)

 

Előre is köszönöm

Sánta Kutya (SK) Creative Commons License 2020.10.01 0 0 34881

Zárójelben: milyen adatbázis az, amit pár ezer rekord megterhel?

Előzmény: zdomiter (34878)
Törölt nick Creative Commons License 2020.09.30 0 0 34880

A konkrét oldal ismerete nélkül nem tudok érdemben válaszolni.

Egy tippem azért van. Úgy emlékszem, hogy az id csak a html hierarchia adott szintjén belül egyedi. Különböző szinteken, különböző tárolókon belül lehet két elemnek ugyanaz az id-je.

Ekkor a Document.getElementByID az elsőt találja meg, és nem biztos, hogy neked arra van szükséged.

Ha nagyon összetett a weblap, akkor az ilyen mellélövések elkerülése érdekében célszerű először egy magasabb szintű blokk elemre (table, div, section, akármi) ráállni, és onnan indítani a getElementByID-t.

 

És még egy ötlet. Gondolom, alapesetben nem Internet Explorert használsz. Szóval ki kellene próbálni manuálisan, hogy az IE-ben működik-e az oldal egyáltalán, vagy esetleg kell neki valami java kiegészítést telepíteni.

 

Előzmény: zdomiter (34879)
zdomiter Creative Commons License 2020.09.30 0 0 34879

Egy picit elakadtam ott, hogy a termék felvételhez nincs konkrét URL cím, hanem el kell oda navigálni.

(Exception message: Az objektumhivatkozás nincs beállítva semmilyen objektumpéldányra.)

 

Ha a gomb elemet megnézem, nem találok nevet csak ezt:

 

<span class="ms-cui-tt-span ms-cui-tt-span-selected" id="logistics">Logisztika</span>

 

Ha beállítom az id-ra a klikkelést, akkor le akar tölteni egy logistics.json fájlt.

ieApp.Document.getElementByID("logistics").Click

 

Nem ez lehet a gomb?

 

Előzmény: Törölt nick (34872)
zdomiter Creative Commons License 2020.09.30 0 0 34878

Nincsen sajnos, az új termék importot még nem írták meg. De nem is lenne ideális a számunkra, mert több ezer termékkel terhelnénk az adatbázist. Ezt a megoldást viszont célirányosan csak azokra a termékekre alkalmaznánk, amelyikre tényleg szükségünk is van.

Előzmény: Eredő Vektor (34873)
zdomiter Creative Commons License 2020.09.30 0 0 34877

Pontosan erre gondoltam. Na ennek most nekiülök, köszi szépen.

Előzmény: Törölt nick (34872)
Ftamas1985 Creative Commons License 2020.09.30 0 0 34876

Köszönöm a válaszod. Tulajdonképpen a célom az lenne hogy a hivatkozás ne A1 vagy B1 cellára hivatkozzon , hanem az előző hivatkozáshoz képest tolódjon 1 cellát.

 

Köszönöm

Előzmény: Törölt nick (34875)
Törölt nick Creative Commons License 2020.09.30 0 0 34875

Ha beírod A1-be, hogy =cikklista!B3, és ezt lehúzod, akkor A2-be automatikusan =cikklista!B4 kerül.

Ha beírod A1-be, hogy =cikklista!B3, aztán az A1 cellát másolod*, és beilleszted A2-be, akkor A2-be automatikusan =cikklista!B4 kerül.

 

*Tehát ehhez magát a cellát kell másolni. Ha a szerkesztőlécben kijelölöd a képletet, és azt másolod, akkor a beillesztés helyén természetesen az eredeti képlet (=cikklista!B3) fog megjelenni.

 

Ha azt szeretnéd, hogy A1-et másolod és beilleszted egy tetszőleges cellába, pl K8-ba, és ott legyen =cikklista!B4 a képlet, nos, nincs olyan függvény, amivel ezt meg lehet oldani.

Előzmény: Ftamas1985 (34874)
Ftamas1985 Creative Commons License 2020.09.30 0 0 34874

Sziasztok.

 

Amatőr kérdés lesz, de segítségre lenne szükségem cellahivatkozàsokkal kapcsolatban. Szeretnék létrehozni egy olyan egy excelt ahol az egyik lapfülön található adatokra szeretnék hivatkozni egy másik lapfülről. A kérdés az milyen függvénnyel tudok úgy cella hivatkozást létrehozni, hogy a függvény másolásànàl nem a sor számát vegye alapul hanem az előző hivatkozáshoz adjon hozzá plusz egyet. Pl =cikklista!B3  a következő hivatkozás pedig =cikklista!B4 , viszont ezt függvény oldja meg. 

 

Előre is köszönöm

Eredő Vektor Creative Commons License 2020.09.30 0 0 34873

ott kezd, hogy a számlázóprogramot jobban felderíted - hátha van valamilyen importálási lehetőség a tömeges előállításhoz. (Mert szerintem ez alap kell, hogy legyen)

Előzmény: zdomiter (34871)
Törölt nick Creative Commons License 2020.09.29 0 0 34872

Én azt a módszert ismerem, amikor

- a VBA kódban létrehozol egy Internet Explorer objektumot,

- azt elnavigálod a megfelelő oldalra,

- az oldalon megkeresed a különböző kitöltendő mezőket, feltöltöd őket adatokkal

- megkeresed az adatrögzítést befejező (Save, Submit, Befejez, stb/akármi) gombot, programból "ráklikkelsz".

 

Ezzel a módszerrel gyakorlatilag bármit megtehetsz az Internet Explorerrel.

Ez itt egy jó kiindulópontnak tűnik: https://www.wiseowl.co.uk/blog/s324/vba-ie.htm

 

De azért várj még egy kicsit, hátha valaki más tud jobbat.

Előzmény: zdomiter (34871)
zdomiter Creative Commons License 2020.09.29 0 0 34871

Sziasztok! 

Lehetséges excel táblázatban lévő adatokkal webes űrlapok kitöltése? Konkrétan egy webes számlázó programba szeretnék új termékeket felvinni úgy, hogy az űrlapot az excelből vett adatokkal szeretném kitölteni. Az átmásolgatást szeretném automatizálási. Arra már csináltam egy makrót, hogy az űrlap mezőit összegyűjti egy munkalapra, csak ezeket kellene átmásolni a helyükre. Milyen irányba induljak el?

Köszi szépen 

dorogszu Creative Commons License 2020.09.28 0 0 34870

=FKERES(CSERE(E3;SZÖVEG.KERES("-";E3)+1;5;"   ");$C$2:$D$21;2;HAMIS) átírtam ezt a részt +1;5;"   mert pl egy NPDK esetén már hiba volt

de minden ok nagy köszönet mégegyszer

 

 

Előzmény: Törölt nick (34868)
dorogszu Creative Commons License 2020.09.28 0 0 34869

Orosz a karakter:) Hallelujah Köszönöm megy minden 

 

Előzmény: Törölt nick (34868)
Törölt nick Creative Commons License 2020.09.28 0 0 34868

A képlet F3-ba:

=FKERES(CSERE(E3;SZÖVEG.KERES("-";E3)+1;3;"   ");$C$2:$D$19;2;HAMIS)

 

De nálam volt még egy érdekesség.

A dropboxból letöltött és megnyitott fájlban olyan kötőjeleket találtam, amelyeknek a karakterkódja 63. Ezzel szemben az a kötőjel, amit a billenyűzetről beírok, 45-ös karakterkóddal megy.

A kétféle kötőjel szemre ugyanúgy néz ki, de nem ugyanaz. A kereső függvények viszont csak akkor találják meg az egyezést, ha mindenhol ugyanaz a karakter van..

Ezért nálam a képlet csak azután működött, hogy az A és C oszlopokban minden eredeti (63-as) kötőjelet kicseréltem normál (45-ös) kötőjelre.

Lehet, hogy neked is ezt kell tenned.

 

Ezen kívül, C5-ben a K betű mögött van 3 fölösleges szóköz, ami miatt az FKERES nem találja meg a "B-   K" karaktersorozatot, szóval azt a 3 szóközt törölni kellene.

 

 

 

 

Előzmény: dorogszu (34867)
dorogszu Creative Commons License 2020.09.28 0 0 34867

http://www.filedropper.com/helpme_2  oldalra feltöltöttem a filet a lehetséges variációkkal de a számokat mivel tudom helyettesíteni a változó legördülő lista alapján a lekérdezés során?

 

 

 

Előzmény: Törölt nick (34865)
Törölt nick Creative Commons License 2020.09.28 0 0 34866

Ja még annyit, szerintem az felejtős, hogy a helyettesítő szövegek ragozva jöjjenek ki a képletből. (pl: "Mozgatható ülés könyvpadlóval")

Előzmény: dorogszu (34862)
Törölt nick Creative Commons License 2020.09.28 0 0 34865

Mivel több feltételt (több különböző karakter/karaktersorozat előfordulását) kellene vizsgálni egymástól függetlenül, teljesen általános megoldást egy tömbképlettel adhatna.

Csakhogy, a végén össze kellene fűzni a helyettesítő szövegeket, az ÖSSZEFŰZ függvény viszont nem működik tömbképletben. Így szerintem általános megoldás nincs, legalábbis natív függvényekkel.

 

Ezzel szemben, ha a keresendő karakterek/karaktersorozatok száma egy jól definiált és nem túl nagy szám, akkor lehetne egymásba ágyazott HA függvényekkel, vagy ÖSSZEFŰZ és FKERES kombinációkkal szórakozni.

Szóval szerintem kellene egy teljes lista a betűkről, és a hozzájuk tartozó helyettesítő szövegekről, és/vagy a tartomány (N sor x 2 oszlop) címe, ahol ezek fel vannak sorolva.

Előzmény: dorogszu (34862)
pimre Creative Commons License 2020.09.27 0 0 34864

1. Nésd meg a Bővítményeknél, nem maradt-e valami. (Excel megnyitás után File->Beállítások->Bővítmények majd Ugrás, és ha a kapott listában ott van, akkor kiszeded a pipát mellőle. 

Ha nincs ott, akkor ugyanitt látsz egy Tallózás gombot, ami ráugrik az Addins könyvtárra. Ha itt látod, akkor törölheted. Ha nem, akkor passz.

Előzmény: [fidelio] kottagrafikus (34863)
[fidelio] kottagrafikus Creative Commons License 2020.09.27 0 0 34863

Telepítettem egy ChemDraw nevű programot kipróbálásra.
Azóta az Excel megnyitásakor állandóan keresi a ChemDrawExecl.xla fájlt, pedig töröltem az alkalmazást (uninstall).
Most csináltam egy üres, ilyen nevű fájlt, így nem hiányolja, viszont minden excel indításkor van egy ilyen nevű munkafüzet (ChemDrawExecl.xla), mikor indítom az excelt.
Hogy lehetne ettől megszabadulni?

 

dorogszu Creative Commons License 2020.09.27 0 0 34862

Sziasztok!

 

D4 cellában van egy változó értékekkel rendelkező listám amely az alábbi adatokat tartalmazza

 

B‐xxx
B‐xxx K
B‐xxx DK
BT xxx S
BT xxx SD
BT xxx NPDK
B xxx CN stb  

Amenyiben a cella tartalmazza a K beűt akkor a   B5 cellában a könyvpadló jelenjen meg

Amenyiben a cella tartalmazza a DK beűt akkor a B5 cellában a Mozgatható ülés könyvpadlóval jelenjen meg

Amenyiben a cella tartalmazza a S beűt akkor a   B5 cellában a keel jelenjen meg

és így tovább.

Tehát az adott karakterek alapján a B5 cellában ki szeretném íratni a meghatározott szöveget

Ha a D4 cella tartalmazza a betű vagy betűk valamelyikét amelyek az xxx előtt vagy után vannak akkor az alapján a B5 cellában megjelenne a helyettesítő szöveg

 

Pl    BT xxx S     van a D4 ben  akkor B5 cellában a BT (fartükrös) és az S(keeles) karakterek miatt  megjelenne, hogy Fartükrös keeles 

 

Mi az a képlet amely a B5 cellába működne

 

Köszönöm!

      

NPW Creative Commons License 2020.09.25 0 0 34861

Halleluja, ez működik! Nagyon köszönöm!!!

Előzmény: Törölt nick (34860)
Törölt nick Creative Commons License 2020.09.25 0 0 34860

Bár én a táblázatot nem érem el, egy javaslat a képletre:

 

=MAX(INDIREKT(N2&"!"&CÍM(HOL.VAN(A2;US!B:B;0);HOL.VAN(F2;US!1:1;0))&":II"&HOL.VAN(A2;US!B:B;0)))

 

Kicsit egyszerűbbé tehető, ha a munkalapra történő hivatkozást (N2 cella) az INDIREKT függvényből átteszem a CÍM függvénybe, ennek ugyanis van egy ötödik paramétere, ami a munkalap megadására való.

 

=MAX(INDIREKT(CÍM(HOL.VAN(A2;US!B:B;0);HOL.VAN(F2;US!1:1;0);;;N2)&":II"&HOL.VAN(A2;US!B:B;0)))

 

 

Előzmény: NPW (34859)
NPW Creative Commons License 2020.09.25 0 0 34859

Szia! Sajnos ez sem segített...

Előzmény: Fferi50 (34856)
NPW Creative Commons License 2020.09.25 0 0 34858

Szia!

Köszönöm, ha megnézed:

https://data.hu/get/12604147/20200925proba.xlsx

Előzmény: Fferi50 (34855)
djuice Creative Commons License 2020.09.24 0 0 34857

Off: javascriptben van otthon valaki köztetek?

Fferi50 Creative Commons License 2020.09.24 0 0 34856

Szia!

A HOL.VAN függvénynek légy szíves ad meg 3. paraméterként a 0-t. Így keres pontos értéket.

Üdv.

Előzmény: NPW (34854)
Fferi50 Creative Commons License 2020.09.24 0 0 34855

Szia!

Feltennéd ide a fájlt, hogy ránézzünk?

Mert így elég kevés az információ.

A direktben beírt Max függvény ad eredmény?

Üdv.

Előzmény: NPW (34854)
NPW Creative Commons License 2020.09.24 0 0 34854

Köszi, de sajnos ez sem segít, ugyanúgy #érték! hiba...

Előzmény: Fferi50 (34853)
Fferi50 Creative Commons License 2020.09.24 0 0 34853

Szia!

Próbáld meg tömbfüggvényként bevinni:

Lezárás Ctrl+Shift+Enter

Az Excel pedig kapcsos zárójelbe teszi.

Üdv.

Előzmény: NPW (34852)
NPW Creative Commons License 2020.09.24 0 0 34852

Üdv! Van a következő függvényem: =MAX(INDIREKT(N2&"!"&CÍM(HOL.VAN(A2;US!B:B);HOL.VAN(F2;US!1:1))):INDIREKT("II"&HOL.VAN(A2;US!B:B)))

A probléma az, hogy #érték! hibát ír ki.

A saját szándékom és a képletkiértékelő utolsó lépése szerint is a fenti függvény ez lesz: =MAX(US!$IC$26:$II$26)

Ha ezt az utóbbi függvényt írom csak be, akkor gond nélkül hozza a kívánt megoldást.

Mi lehet a hiba az első függvénynél?

dorogszu Creative Commons License 2020.09.23 0 0 34851

Ezt értem tökéletes megoldás Köszönöm mindenkinek a segítséget. A tizedesvessző és pontok miatt nem izgulok mert egy keres csere és azzá változtatom aminek lennie kell:)  Nem kőbe vésett  a választójel.  Mégegyszer nagyon szépen köszönom 

 

 

Előzmény: pimre (34841)
djuice Creative Commons License 2020.09.23 0 0 34850

Köszi! Működik.

Nem tudtam hogy van ilyen függvény és azt sem, hogy ilyenkor az első cella megadása kell. Érdekes!

Előzmény: Fferi50 (34846)
Fferi50 Creative Commons License 2020.09.23 0 0 34849

Szia!

Sok türelmed van.

Azért az a március 14-re alakítás megérne egy IgNobel-díjat a Microsoft felé szerintem. 

Bár már nemegyszer panaszkodott ezen a fórumon is - meg máshol is - jópár felhasználó, hogy a ponttal elválasztott számokat menthetetlenül dátumokká alakítja az Excel. Ezeket izgalmas feladat visszaalakítani, pl. így: =HÓNAP(A1) & "." & NAP(A1)

Üdv.

Előzmény: pimre (34848)
pimre Creative Commons License 2020.09.23 0 0 34848

Szia, nem ismertem, de az én 2019-es verziómban is működik. Azért nem hagytam annyiban, és teszteltem, hogy miből mit lehet kihozni. A következőkre jutottam a területi beállításokat és az Excel tizedesbeállításait állítgatva:

 

 

Azért a fenti kép forrásául szolgáló Excel táblát feltettem a drájvra, hogy könnyebb legyen ellenőrizni, amit csináltam: https://drive.google.com/file/d/1wy-7B7pbFqjWT7cVxFgWGwwag3bKTfLW/view?usp=sharing 

 

Azt hiszem, nem hibáztam el a tesztelést. 

 

Inkább érdekességként teszem hozzá, hogy a hónapok óta írt, és nemrég elkészült programomban mit tapasztaltam tizedesjel ügyben (Ugyanis igyekeztem úgy véglegesíteni a programot, hogy bármilyen - akár egymásnak ellentmondó - beállítások mellett is hibátlanul működjön):

 

Userformokon dolgoztam, és TextBoxokba kértem be az adatokat.

Azt tapasztaltam, hogy ha a területi beállításokban pont van, akkor az Excelben mindegy mi van, bármelyiket elfogadja, de a cdbl() függvény ponttá alakítja a vesszőt is.

Ha a területi beállításokban vessző van, akkor mindegy mi van az Excelben, vesszőt kell megadni a textboxokba. Ha ponttal adnánk meg, akkor a cdbl() függvény Type mismatch hibát ad (mással meg nem tudtam helyesen kiolvasni a TextBoxokban tárolt tizedespontot tartalmzó számokat).

Ez mintha a fordítottja lenne annak, ami az itteni táblázatban látszik: Itt a veszővel megadott stringet nem sikerült pontot tartalmazó számmá alakítani.

 

 

 

 

Előzmény: Fferi50 (34844)
Jozsef Creative Commons License 2020.09.23 0 0 34847

Úgy látom, hogy a magyar Excel 365-ben is elérhető vált a LET függvény. Szerintem, nagyon sok lehetőség van benne,  a bonyolult és/vagy egymásba ágyazott képleteket sokkal átláthatóbban, olvashatóbban lehet segítségével megírni.

https://support.microsoft.com/en-us/office/let-function-34842dd8-b92b-4d3f-b325-b8b8f9908999

 

Fferi50 Creative Commons License 2020.09.23 0 0 34846

Szia!

 

Kijelölöd a formázandó területet.

Kezdőlap - Feltételes formázás - új szabály 

A formázandó cellák kijelölése képlettel

Értékek formázása, ha ez a képlet igaz: kockába a képlet:

=PÁRATLANE(A1)   A1 helyébe írd a kijelölt területed első cellájának címét dollárjelek nélkül

Kiválasztod a szükséges formátumot és OK.

 

Üdv. 

Előzmény: djuice (34845)
djuice Creative Commons License 2020.09.23 0 0 34845

Sziasztok!

 

Cellákra hogy tudok olyan feltételes formázást beállítani, hogy azon cellák háttere legyen más színű, ahol páratlan számok szerepelnek?

Köszi!

Fferi50 Creative Commons License 2020.09.23 0 0 34844

Szia!

Van rá megoldás képlettel.

A SZÁMÉRTÉK függvény ugyanis tartalmaz egy olyan paramétert, amellyel megadhatjuk, hogy a szövegben mi a tizedes jele, sőt egy másik paraméterrel az ezres elválasztó is megadható:

Ráadásul az a kellemes tulajdonsága van, hogy nem reklamál, ha pontot teszünk a tizedes elválasztóhoz és a szövegben mégis vessző lenne - ami a rendszer szerinti elválasztó nálam. Gondolom ez fordítva működik ott, ahol pont a tizedesjel.

Kicsit általánosabban vizsgálva, ugyanis elképzelhető, hogy az első rész és a második rész sem fix hosszú. A mértékegységet egy karakter hosszúnak véve az egyszerűség érdekében (no meg azért is, mert azt talán könnyebb egy karakterré alakítani, ha hosszabb lenne).

Ezek után a 

1.30x0.52m

első részét a 

=SZÁMÉRTÉK(BAL(A1;SZÖVEG.KERES("x";A1)-1);".")

a második részét pedig a

=SZÁMÉRTÉK(KÖZÉP(BAL(A1;HOSSZ(A1)-1);SZÖVEG.KERES("x";A1)+1;HOSSZ(A1));".")

képlettel lehet meghatározni.

Ha nem egy karakter lenne a mértékegység a végén, akkor a HOSSZ(A1)-1 kifejezésben a -1 helyére a mértékegység hosszát kell írni.

DE megtehetjük az is, hogy Szövegből oszlopok varázslóval az x -nél kettéválasztjuk a kifejezést segédoszlopokba és utána egyszerűbb képlettel dolgozhatunk. Pl. ha a szétválasztás a H1-I1 oszlopba történt, akkor a képlet:

=SZÁMÉRTÉK(H1;".")*SZÁMÉRTÉK(BAL(I1;HOSSZ(I1)-1);".")

Mindezeket a 2016-os Excelben tudtam elkövetni, gondolom a magasabb verziószámúak biztosan tudják.

Üdv.

 

Előzmény: pimre (34843)
pimre Creative Commons License 2020.09.22 0 0 34843

A probléma ennél egy picit árnyaltabb.

Te nyilván tizedesvesszőt használsz az Excel beállításoknál (Speciális->Tizedesjel)

Ezért ha a C3-ban pont szerepel tizedesjelként, akkor nálad #ÉRTÉK! jelenik meg. Ha átállítod pontra, akkor jó lesz.

 

Fordított esetben, ha a C3-ban 1,30x0,52m lenne, akkor nálad lenne jó a képlet, és aki tizedespontot használ, annál nem.

 

Programban simán lehetne kezelni a dolgot az Application.DecimalSeparator kiolvasásával, függvényben nem tudok megoldást.

Előzmény: m54-b (34842)
m54-b Creative Commons License 2020.09.22 0 0 34842

Vagy amit ő használt =KÖZÉP(C3;1;4)*KÖZÉP(C3;6;4)

Gondja a tizedesvessző/tizedespont lesz, azt kell rendezni. Nekem ez működött:

=HELYETTE(KÖZÉP(C3;1;4);".";",")*HELYETTE(KÖZÉP(C3;6;4);".";",")

Előzmény: pimre (34841)
pimre Creative Commons License 2020.09.22 0 0 34841

Dehogynem. A D3 cellába írd a következőt: =BAL(C3;4) * KÖZÉP(C3;6;4)

Előzmény: dorogszu (34840)
dorogszu Creative Commons License 2020.09.22 0 0 34840

Sziasztok!

C3 cellában 1.30x0.52m szerepel. Ebből az egy cellában lévő adatból szeretnék négyzetmétert számolni.  =KÖZÉP(C3;1;4) és =KÖZÉP(C3;6;4) függvénnyel kiveszem az adatokat egy tetszőleges helyre majd a két adatot összeszorzom. Így megoldom. De nincs erre egy képlet amely automatikusan D3 cellába beteszi a szorzatot (eredményt)?  Köszönöm! Valami Függvények egymásba ágyazása a képletekben

Delila10 Creative Commons License 2020.09.15 0 0 34839

Tévedtem. A belinkelt leírásban szerepel, hogy a vezérlők tárolója a form.

Előzmény: Eredő Vektor (34837)
Delila10 Creative Commons License 2020.09.15 0 0 34838

Videókat is lehet találni.

Szenvedtem vele egy darabig, mert sehol nem írták, hogy a párbeszédelemek a userformon vannak, nem a tab füleken. Az eszköztár is csak akkor érhető el, ha a formon állunk.

Előzmény: Eredő Vektor (34837)
Eredő Vektor Creative Commons License 2020.09.15 0 0 34837
Előzmény: Delila10 (34835)
Eredő Vektor Creative Commons License 2020.09.15 0 0 34836

megvan a megoldás, köszi mindenkinek aki foglalkozott vele:

 

Előzmény: Eredő Vektor (34827)
Delila10 Creative Commons License 2020.09.15 0 1 34835

Használtátok már formon a TabStrip funkciót? Valamikor megnéztem a működését, de csak most lett olyan feladatom, hogy 4 lapra kell felvinni azonos elrendezésű táblázatokba adatokat.

Egyszer kellett felvinnem a párbeszédelemeket, és egyszer megírnom hozzájuk a makrókat.

Csak kiválasztom a formon a megfelelő tabot, már adhatom is be az adatokat, oda menti, ahova én akarom.

Nagyon klassz megoldás.

Eredő Vektor Creative Commons License 2020.09.15 0 0 34834

hát nem jó.

Előzmény: Eredő Vektor (34833)
Eredő Vektor Creative Commons License 2020.09.15 0 0 34833

ez úgy néz ki, jó:

=(DARABTELI($A:$A;"<="&B1)-DARABTELI($B:$B;"<="&A1))<2

De nagyon kíváncsi vagyok, más hogy csinálná meg.... :(

 

 

Előzmény: Eredő Vektor (34827)
Fferi50 Creative Commons License 2020.09.15 0 0 34832

Szia!

Félreértés volt részemről...

Üdv.

Előzmény: Eredő Vektor (34830)
Eredő Vektor Creative Commons License 2020.09.15 0 0 34831

itt bőven elég lenne az is, hogy csak a 4. sor hamis.

az megint mindegy, hogy a vizsgált sor mivel van jelölve, igaz, vagy hamis, vagy bármi, ami elkülöníti azt, ami fedésben van.

Előzmény: Eredő Vektor (34827)
Eredő Vektor Creative Commons License 2020.09.15 0 0 34830

Nem értem, miért használod a C oszlopot, azt csak mintának tettem, hogy így kéne kinéznie a felállított szabályok szerint

Előzmény: Fferi50 (34824)
Eredő Vektor Creative Commons License 2020.09.15 0 0 34829

Köszönöm FFeri, ezt vizsgálom...

Előzmény: Fferi50 (34824)
Eredő Vektor Creative Commons License 2020.09.15 0 0 34828

ez logikalag nem helyes, de az oprtátorok jól vannak benne:

=ÉS($A$1:$A$5>=$A1;$A$1:$A$5<=$B1;$B$1:$B$5>=$A1;$B$1:$B$5<=$B1)

és ezt nem tudom megérteni, hogy hogyan működik.

 

Előzmény: Eredő Vektor (34827)
Eredő Vektor Creative Commons License 2020.09.15 0 0 34827

1,2,4 sor azért hamis, mert az 5,8 fedi a 1,5 és 6,9-et is

 

ninc soszlopcím, de az a = -tól, b= -ig.

tehát intervallumok átfedését vizsgálja

 

én ilyesmikkel próbálkozom:

=ÉS(A1<=$A$1:$A$5;B1>=$B$1:$B$5)

de persze nem helyes az elgondoloás, mert egy igaz mindig lesz.

Előzmény: Törölt nick (34823)
Eredő Vektor Creative Commons License 2020.09.15 0 0 34826

Szia, köszönöm szépen!

Írtam, hogy a mátrixot mellőzném és egyetlen tömbből történő vizsgálat módja érdekel.

Azonban ebből is lehet tanuln a sok ÉS fgv helyett ez tök jó. Köszönöm.

Előzmény: Delila10 (34825)
Delila10 Creative Commons License 2020.09.14 0 0 34825

A C3 képlete: =ÉS($A3=MEDIÁN($A3;C$1;C$2);$B3=MEDIÁN($B3;C$1;C$2))

Másolható le, és jobbra.

 

Előzmény: Eredő Vektor (34822)
Fferi50 Creative Commons License 2020.09.14 0 0 34824

Szia!

Az intervallum alsó és felső határát két tömbképlettel meg lehet határozni:

Alsó határ (D1 cella képlete):

Felső határ (E1 cella képlete):

Ezután gondolom az van átfedésben, amelyik az alsó - felső intervallum közé esik mindkét értékében.

Üdv.

Előzmény: Eredő Vektor (34822)
Törölt nick Creative Commons License 2020.09.14 0 0 34823

Tudsz betenni egy képet arról, hogy milyen kimenetet szeretnél?

Előzmény: Eredő Vektor (34822)
Eredő Vektor Creative Commons License 2020.09.14 0 0 34822

így csináltam, de gy nem szeretném:

Előzmény: Eredő Vektor (34821)
Eredő Vektor Creative Commons License 2020.09.14 0 0 34821

mátrixban meg tudtam csinálni, de azt szeretném kerülni.

 

(sorban(1,2) és oszlopban(B,C) az intervallumok és a mátrix belsejében pedig a képlet

=ÉS(E$1>=$B3;E$1<=$C3;E$2>=$B3;E$2<=$C3)

Előzmény: Eredő Vektor (34820)
Eredő Vektor Creative Commons License 2020.09.14 0 0 34820

Hogy tudom meghatározni az inervallumok közötti átfedéseket?

Pl.:

 

HAMIS1-5

HAMIS 6-9

IGAZ 10-14

HAMIS 5-8

IGAZ 15-16

 

A tól-ig értékek egy-egy oszlopban vannak.  HAMIS-ok között átfedés van, mert az 5-8 benne van a  1-5 és 6-9-ben is.

Ez valamilyen és/vagy tömbképletes játék lehet, de nem jövök rá a logikájára :(

 

Vax Creative Commons License 2020.09.13 0 0 34819

Nekünk is jó lett volna, bár nem otthonra, de Dropboxot használunk, és az kényszerített bele a váltásba. 

Előzmény: Sánta Kutya (SK) (34818)
Sánta Kutya (SK) Creative Commons License 2020.09.13 0 0 34818

Azt a hét meg a nyolcát! Megint megerősítést nyertem, hogy jók nekem itthonra a régi verziók.

Előzmény: Vax (34817)
Vax Creative Commons License 2020.09.13 0 0 34817

Üdv,

Tegnapról ma reggelre annyit fejlődött az Excel2019, hogy az évek óta használt feltételes formázásokat hibának látja és kinyírja. Nem kis munka van bennük.

Nem az első eset, hogy valami buzerációval találkozom. 

Nem értem, hogy ha egyszer valami jó, azt miért kell tovább javítgatni?

bringas1 Creative Commons License 2020.09.10 0 0 34816

Tudtam, hogy én rontottam el. :)

Nagyon köszönöm

Előzmény: Törölt nick (34815)
Törölt nick Creative Commons License 2020.09.10 0 0 34815

34773-ben olyan példát hoztál, amiben 6 adatból álló rekordok voltak, és én erre adtam képletet. Itt viszont olyan példát hozol, amiben 5 adatból álló rekordok vannak. Erre ugyanaz a képlet, ami a 6-os szettben működött, nyilván nem lesz jó.

Módosítsd úgy a képletet, hogy a 6-osokat kicseréled 5-ösökre:

 

 

=ELTOLÁS($A$1;(SOR()-1)*5+MARADÉK(OSZLOP()-4;5);0)

 

 

Előzmény: bringas1 (34813)
bringas1 Creative Commons License 2020.09.10 0 0 34813

Valamit biztos elrontottam.

Elcsúsznak az oszlopok.

 

Előzmény: Törölt nick (34775)
pimre Creative Commons License 2020.09.09 0 0 34812

Ja és még office 365-el is kipróbáltam. Azzal sem volt gond.

Viszont ha ondrive-re tettem, és engedtem a szinkronizálást, az rendszeresen elakadt. Mert a program hoz létre új munkafüzeteket, vagy nyit meg meglévőket, azokba szükség szerint ír, vagy azokból olvas. Aztán lezárja őket, van amit töröl. Namármost a még nem befejezett szinkronizálás ezek közül egyes feladatok befejezését megakadályozza, és ekkor hibaüzenet jön. Hosszasan keresgélve azt találtam, hogy egy beállítással le lehet tiltani a szinkronizálást, viszont arra nem találtam parancsot, hogy ezt hogyan lehetne programból elérni. Úgy találtam, mások sem találtak ilyet:

 

 

Feltehető, hogy működne az ActiveWorkbook.AutoSaveOn=False beállítás, de ezt egyelőre nem értem rá kipróbálni. Végig kellene vezetni a program egészén, ahol fájl I/O műveletek várhatóak. Egyszer majd visszatérek rá.

Most annyit tudtam, hogy megnézem, hogy Onedive-on fut-e a program (A thisworkbook eredményéből kiderül), és ha igen, jelzem, hogy onedrive könyvtárból nem használható szinkronizálási problémák miatt, és leállítom a programot. 

Előzmény: pimre (34811)
pimre Creative Commons License 2020.09.09 0 0 34811

Kösz, szerencsére 2010 alattt írtam és csak az utolsó pillanatban próbáltam ki 2016-on, meg 2019--en. Aztán - bár javítani nem, de megkerülni sikerült a problémákat - és a 2010-es verziót sem zavarták ezek. 

Előzmény: Törölt nick (34809)
James 42 Creative Commons License 2020.09.09 0 0 34810

Sőt, általában esélyesebb, hogy az újban megírt dolgok nem működnek a régebbiekben.

Előzmény: Törölt nick (34809)
Törölt nick Creative Commons License 2020.09.09 0 0 34809

"Persza, aztán abban írok meg egy programot, és ha kiadom a kezemből, akkor az szív vele, aki újabb verzióval használja."

 

Sajna ez visszafelé is igaz lehet. Megírod az új verzióban, aztán valaki régivel próbálja, és nem megy úgy, ahogy kellene.

De legrosszabb esetben a kritikus kódrészeket meg lehet írni verziófüggően, az aktuális Office verziót pedig programból lekérdezni hozzá.

 

https://stackoverflow.com/questions/31718490/finding-ms-office-revision-and-build-version-using-vba

 

 

Előzmény: pimre (34806)
XNC Creative Commons License 2020.09.09 -1 0 34808

"Mint ahogy azzal az undorító dologgal sem, hogy mindenáron rá akarnak kényszeríteni a Microsoft felhasználó használatára."

 

Bizony ez az, ami nekem se tetszik. Nekem ne kösse senki semmilyen fiókhoz a program használatát.

Most éppen Office-problémákkal küzdök, még meg is venném a legújabbat; de emiatt nem teszem.

 

Egyelőre esélyes befutó valamelyik FREE office-program.

Ha lesz pénzem, veszek vinyókat a tesztelésükhöz....

Előzmény: James 42 (34799)
XNC Creative Commons License 2020.09.09 -1 0 34807

Elvileg ennek nem így kellene működnie!

 

Na meg kérdés mire kell: ha csak 1 szaros levelet kell megírni a wordben, akkor utólag a kinyomtatott papírból már meg nem mondod, hogy melyik verzió volt.

 

Néha én még használok egész régi programot is, mert az az új gépeken kurva gyorsan fut.

Nyilván ez a te esetedben nem megoldás.

Előzmény: pimre (34806)
pimre Creative Commons License 2020.09.09 0 0 34806

Persza, aztán abban írok meg egy programot, és ha kiadom a kezemből, akkor az szív vele, aki újabb verzióval használja.

Előzmény: James 42 (34802)
kogabi77 Creative Commons License 2020.09.09 0 0 34805

Megnéztem amiket írtál, köszi, segítség volt. A regitry mentés, visszaállítás lesz a megoldás egyenlőre, amíg meg nem oldják Mikroék.

Előzmény: kogabi77 (34801)
XNC Creative Commons License 2020.09.09 -1 0 34804

Ez a registry-buzerálás nagyon meredek!

Előzmény: Törölt nick (34797)
James 42 Creative Commons License 2020.09.09 -1 0 34803

lassan úgy is ki lesz tiltva a Win7 bankokból, kormányzati oldalakról

 

Mikor lesz "kitiltva"? Én még ma is XP alatt használom ezeket, legalábbis a céges gépemen. És ha fel lehetne tenni az XP-re az újabb böngészőket és más gyakrabban használt programokat, akkor alighanem otthon is még azt használnám.

Előzmény: kogabi77 (34801)
James 42 Creative Commons License 2020.09.09 0 0 34802

Oké, Te nem ajánlod a 2010-est. Én meg úgy vagyok vele, hogy nem érdekel, meddig támogatják. Inkább használom azt, amire már nincs támogatás, de jól működik, mint azt, amit támogatnak ugyan, de vacak. Ami meg a problémákat illeti: ez a mostani talán nem olyan nagyon komoly, de ki tudja, mi mindent szartak még el az újabb verziókban? Én ugyan nem próbáltam még az összes 2010-es utáni verziót, de amelyiket igen, azzal csak problémák voltak, míg a 2010-essel nem. Úgyhogy én meg inkább az utóbbit tudom ajánlani használatra.

Előzmény: pimre (34800)
kogabi77 Creative Commons License 2020.09.09 0 0 34801

Köszönöm, hogy ennyire alaposan körbe jártad a dolgot, köszönöm a segítséged! Igen, igazad van abban is, hogy sajnos rá akar kényszeríteni az online dolgokra a mikro(fos)soft. Megnézem a registry-t, figyelem mi történik. Korábban Win7-et és 2016- os Office-t használtam, annál soha nem fordult elő ilyen. De azt már tapasztaltam, hogy a Win 10 sem olyan kezes, mint volt a Win7. Csak azért tértemát rá, mert lassan úgy is ki lesz tiltva a Win7 bankokból, kormányzati oldalakról, és volt valami szösz a 7-esben is. Gondoltam, akkor már legyen minden frissebb. 

Előzmény: Törölt nick (34797)
pimre Creative Commons License 2020.09.09 0 1 34800

"Ha valamivel korábbi verziókat használnál..." Attól tartok, hogy az Office csomagban jelentkező hibák (van több más is, pl. screenupdating hibás kezelése a makrókban, indokolatlan hibákkal való leállások a programban, amik a korábbi /2010/ verzióban nem jelentkeztek) a 2016-os verzóban már jelentkeznek. Kipróbáltam. Talán már a 2013-asban is, de azt nem próbáltam. Szóval az utolsó - komolyabb hibák nélküli - verzió a 2010-es lehetett, de azt már nem támogatják, ezért nem ajánlom oda visszalépni. Egyűtt kell élnünk ezekkel a problémákkal, aztán hátha egyszer javítják:-(

Előzmény: James 42 (34799)
James 42 Creative Commons License 2020.09.09 0 1 34799

Szerintem a legnagyobb hiba az, amit a második mondatodban írtál. Ezeknek nem volna szabad eltűnni (ugyanis minden ilyenhez van egy LNK kiterjesztésű fájl a megfelelő mappában, és azoknak sem volna szabad eltűnni). Ha mégis megteszik, akkor valamit elszartak a Microsoftnál. Ha valamivel korábbi verziókat használnál, akkor valószínűleg nem kellene ilyesmivel szívnod. Mint ahogy azzal az undorító dologgal sem, hogy mindenáron rá akarnak kényszeríteni a Microsoft felhasználó használatára.

Előzmény: kogabi77 (34792)
Törölt nick Creative Commons License 2020.09.09 0 1 34798

Reg. kulcsok helyesen:

 

HKEY_CURRENT_USER\Software\Microsoft\Office

 

HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\User MRU\ADAL_XXXXXXX\File MRU 

HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\User MRU\ADAL_XXXXXXX\Place MRU

 

Előzmény: Törölt nick (34797)
Törölt nick Creative Commons License 2020.09.09 0 1 34797

Keresgéltem kicsit, és találtam ezt a linket:

 

https://answers.microsoft.com/en-us/msoffice/forum/all/pinned-and-recent-files-are-disappearing/45c09c8e-4f79-4bb1-9e29-2152d347cfc7?page=1

 

Itt (meg máshol is) azt mondják, hogy a legutóbbi fájlok listájának kiürülése a Microsoft által kikényszerített frissítésekkel van kapcsolatban, és mivel a Microsoft nagy ívben nem foglalkozik a megoldással, valamint amúgy is rá akarnak kényszeríteni arra, hogy a MS fiókodba bejelentkezve éld le az életedet, nem is létezik egyszerű megoldás.

 

Mivel nekem ilyen problémám eddig nem volt, nem tudok tesztelt és működő megoldást mondani, de amit szerintem ki lehetne próbálni:

 

Az alábbi linken leírtakból kiindulva megkeresni a registryben, hogy hol vannak eltárolva az MRU (Most Recently Used) listák.

https://www.reddit.com/r/sysadmin/comments/682yph/users_losing_recent_documents_lists_in_office/

Ez szerintem nem egységes, több helyen is lehet, de valahol a

 

HKEY_CURRENT_USERSoftwareMicrosoftOffice

 

kulcson belül lesz. Én pl. itt találtam rá:

 

HKEY_CURRENT_USERSoftwareMicrosoftOffice16.0ExcelUser MRUADAL_XXXXXXXFile MRU 

HKEY_CURRENT_USERSoftwareMicrosoftOffice16.0ExcelUser MRUADAL_XXXXXXXPlace MRU

 

(ahol XXXXXXX egy hosszú karaktersor, valószínűleg GUID)

 

Úgy nézem, a rendszer külön listákat tart fenn Excelre, Wordre, és a többi Office alkalmazásra is, szóval több lista is lesz.

 

Ha megvan, akkor figyelni kellene egy darabig, hogy amikor Excelben/Wordben azt tapasztalod, hogy eltűnnek legutóbbi és/vagy rögzített fájlok a listából, akkor ellenőrizni, hogy a Registry fentebb megtalált helyein mi van. Megvannak-e az elemek, vagy eltűntek innen is. Ha eltűntek, akkor valószínűleg az történik, hogy a frissítés telepítésekor törlődnek a Registryből ezek a bejegyzések. Ez lenne a jó hír, mert akkor csak annyit kell tenni, hogy valami Registry Backup alkalmazással napi szinten biztonsági másolatot készíteni az MRU listákat tartalmazó kulcsokról, aztán MS Update után visszatölteni őket.

 

Ha a Registrybenaz MS frissítés után továbbra is megvannak az MRU bejegyzések, az Office alkalmazásban viszont nem látod őket, akkor máshol lesz megoldás, de arra most nincs tippem.

 

Jelzem azért, hogy a registryben turkálás nem kicsi kockázatot rejt, szóval ha nem tudod, miről beszélek, akkor inkább hagyd a fenébe az egészet.

Ha tudod, akkor is óvatosan, és mielőtt bármit kipróbálsz, csinálj egy rendszermentést, vagy legalább egy rendszer-visszaállítási pontot.

 

 

 

 

Előzmény: kogabi77 (34792)
pimre Creative Commons License 2020.09.09 0 0 34796

A kijelentkezési kép nem jött át. Most pótolom:

 

Előzmény: pimre (34795)
pimre Creative Commons License 2020.09.09 0 0 34795

"Nem bejelentkezve használom az office-t, mert nekem ne tegye a felhőbe a dolgaim." Mit nevezel "dolgaimnak"? Ha a fájljaidra gondolsz, akkor ettől nem kell tartanod. Ugyanis csak azokat a fájlokat teszi felhőbe, amiket az erre a célra létrehozott Onedrive mappába teszel, és ott kezelsz. Azt én sem használom. Kipróbáltam, de egyelőre nem használom.

Most megnéztem mit ír, ha ki akarok jelentkezni a fiókból:

 

 

Tehát a testre szabott elemeimet távolítaná el. Közöttük nyilván a beállításaim egy részét is. Dokumentumokat nem, hiszen nem a felhőben (onedrive) tartom.

 

Szóval talán próbáld meg a bejelentkezést. 

 

Előzmény: kogabi77 (34792)
kogabi77 Creative Commons License 2020.09.09 0 0 34794

Ja, nem tudtam. Bocs, hogy kérdeztem.

Előzmény: XNC (34793)
XNC Creative Commons License 2020.09.09 -4 0 34793

Hány ilyen kérdés lesz még?

Szerintem egyszerű programhiba.

Előzmény: kogabi77 (34792)
kogabi77 Creative Commons License 2020.09.09 0 0 34792

Sziasztok! Nem régen tértem át Windows 10-re, és Office 2019-re. Az a bajom, hogy időnként, az excelből és a Wordból is eltűnnek a legutóbbi megnyitott fájlok, és azok is, amiket a rögzítettek közé berögzítek. Nem értem, miért csinálja. Nem bejelentkezve használom az office-t, mert nekem ne tegye a felhőbe a dolgaim. Mi lehet a hiba? 

Fferi50 Creative Commons License 2020.09.07 0 0 34791

Szia!

A köszönet pontosan elég.

Üdv.

Előzmény: Penge8806 (34790)
Penge8806 Creative Commons License 2020.09.07 0 0 34790

Szia! Ez egyszerűen csodálatos. :) Nagyon köszönöm! Melyik a kedvenc söröd / borod? :)

 

Szép napot!

Előzmény: Fferi50 (34788)
Törölt nick Creative Commons License 2020.09.07 0 1 34789

Javasolnám a Protect utasításban használni a UserInterFaceOnly:=True paramétert.

Akkor a munkalap le lesz védve felhasználói nyúlkapiszka ellen, de a makrók akadálytalanul futhatnak a háttérben, tehát nem kell feloldani a kód elején, és újra levédeni a végén.

Előzmény: Penge8806 (34787)
Fferi50 Creative Commons License 2020.09.07 0 1 34788

Szia!

Szerintem ott van a probléma, hogy ezek a makrók eseménykezelőben vannak. Ezért bármit változtatsz a munkalapokon, az eseménykezelő újraindul.

A zárolás feloldása után be kell tenni az eseménykezelés letiltását, majd a feladat elvégzése után az eseménykezelés bekapcsolását.

Tiltás:

Application.EnableEvents=False

Bekapcsolás

Application.EnableEvents=True

Üdv.

 

Előzmény: Penge8806 (34787)
Penge8806 Creative Commons License 2020.09.07 0 0 34787

Sziasztok! Excel makrókkal szöszmötölök. Egész idáig sokmindent felleltem neten, de most elakadtam.

 

2 sheet-em van, amiket a makrók főleg használnak. Ezeket a sheet-eket jelszóval levédtem, mert nem szeretném, hogy a képleteket lássák, módosítsanak cellákat, amiket módosítani lehet, azok meg vannak jelölve. Viszont a makrók futtatásáho a védelmet a módosítás idejére fel kell oldani, lefut a makró majd újra levédeni. Találtam is egy kódot:

 

Sheets("Sheet1").Unprotect Password:="mypassword"

 

...kód...

 

Sheets("Sheet1").Protect Password:="mypassword"

 

Sheet-enként két makró van (azaz összesen 4) és a 4ből 3 mindkét sheet-en változtat értékeket. Tehát ennél a 3 makró lefutásakor mind a két sheet védelmét oldani kell, majd újból levédeni. Ez egyesével működik (tahát egyszerre csak egy makróhoz írom be a fenti kódrészletet) de ha mindegyikhez beírom, akkor összeakad és ami eddig működött, hibát dob. A kód kb. így néz ki

 

Private Sub cbMDP_Click() 'Sheet1 / makró1

 

Sheets("Sheet1").Unprotect Password:="mypassword"

Sheets("Sheet2").Unprotect Password:="mypassword"

 

...kód...

 

Sheets("Sheet1").Protect Password:="mypassword"

Sheets("Sheet2").Protect Password:="mypassword"

 

End Sub 'Sheet1 / makró1 vége

----------

Private Sub Worksheet_Change(ByVal Target As Range) 'Sheet1 / makró2

 

Sheets("Sheet1").Unprotect Password:="mypassword"

Sheets("Sheet1").Unprotect Password:="mypassword"

 

...kód...

 

Sheets("Sheet1").Protect Password:="mypassword"

Sheets("Sheet1").Protect Password:="mypassword"

 

End Sub 'Sheet1 / makró2 vége

 

A fenti példa esetében, ha makró2 gond nélkül lefut, viszont makró1 esetében a Sheet1-en lévő dolgokat módosítja, Sheet2-n lévő legelső módosításnál fennakad (kicsit olyan, mintha annak a unprotect-jét nem hajtaná végre). Ha a makró2-höz nem írom be a unprotect / protect részt, de makró1-hez igen, akkor makró1 lefut gond nélkül, viszont olyan makró2 értelemszerűen nem tud lefutni, mert egyből betközik abba, hogy hát védettek az érintett sheet-ek.

 

Köszi a segítséget előre is! Szép napot! :)

 

pimre Creative Commons License 2020.09.06 0 1 34786

Bocs, de ezt írtam le. És ezt teszi a körlevél funkció. A sorrend ne zavarjon, hiszen a Word-nek van körlevél funkciója, nem az Excelnek.

 

Tehát:

1. Megírod a levél sablont egyszer. WORD-ben!!!

2. Az Excel táblát hozzárendeled ehhez. mindegy, hogy a végleges-e, vagy később még bővül újabb sorokkal (az is érdektelen, hogy hány felhasználó bővíti, és hogyan). Ugyanis a következő megnyitáskor már az újat használja. És persze később már magától nyitja, nem kell újra hozzárendelni.

3. Aztán a már hozzárendelt Excel tábla segítségével (aminek legalább 1 fejléc sora, és egy adatsora ekkorra már legyen) hozod létre az adatmezőket a Sablonban.

Tehát A megszólításban "Tisztelt Gipsz Jakab Úr, vagy Gipsz Jakabné Úrhölgy"  helyett ezt fogod látni:

"Tisztelt" <Vezetéknév> <Keresztnév> <Megszólítás>, ahol a <> által bezárt neve az Excel táblázatod fejlécnevei lesznek. Aztán később, ha iktatószám jön, akkor "Iktatószám: " <ikt.sz.> kerül és így tovább.

 

És már közben is válthatsz arra hogy a mezőködot akarod-e látni, vagy azt, hogy az első levélben hogyan nézne ki.

 

Aztán ha kész a sablon levél, akkor egyesítést kérsz fájlba (vagy nyomtóra, de szerintem jobb a fájl, mert ha mondjuk elakad a papír nem kell elölről kezdeni), és ha az Excel táblázatodban van 30, vagy 100 sor, akkor ennyi levelet készít a rendszer, mindegyikben az egyes sorokban lévő adatokkal.

 

Aztán ezt kinyomtatod, vagy kiküldöd.

 

Csak azt felejtsd el, hogy Excelből akard indítani, mert ez egy Word feladat, ami nagyon jól tudja kezelni az Excel adatokat. 

 

Próbáld ki egy pici mintán. Egy egy, vagy két soros levéllel, és egy 2-3 soros Excel táblával, és meglátod, azt fogja csinálni, amit leírtál.

Előzmény: Redlac (34784)
m54-b Creative Commons License 2020.09.06 0 0 34785

Excelből megnyithatsz Word dokut, és futtathatsz Word makrót

 

(részlet)

Set wrd = CreateObject("Word.Application")
Set doc = wrd.Documents
wrd.Documents.Open Filename:=konyvtar + doc_nev

 wrd.Visible = True
 wrd.Application.Activate

 

' beillesztés, aztán makró futtatás
'wrd.Selection.PasteSpecial DataType:=2
'Application.CutCopyMode = False

wrd.Run "word-makro-neve"

Előzmény: Redlac (34784)
Redlac Creative Commons License 2020.09.06 0 0 34784

Egy Excel táblázatba több felhasználó visz be soronként adatokat, majd ezen adatok felhasználásával kellene egy-egy Word sablont megnyitni a makrónak, és a sablon meghatározott helyeire a táblázat meghatározott celláinak tartalmát beírni. Majd ezt a kész Word sablont megfelelő néven elmenteni. Az Excel egy sora egy Word dokumentum, de egyszerre csak egy készül. A cél, hogy a táblázatba már beírt adatokat ne kelljen újból beírni, hanem bizonyos feltételek mentén töltse ki a Word sablont. 

Ahogy nézem a körlevelet, az a Wordből indul, nekem pedig az Excelből kellene indítani. No, próbálkozom :-)

Előzmény: pimre (34782)
XNC Creative Commons License 2020.09.05 -1 0 34783

Magyarul lehet privát vagy publikus módon.

Előzmény: pimre (34781)
pimre Creative Commons License 2020.09.05 0 0 34782

" körlevél nem tűnt rossznak, viszont nálam az Excelben soronként bevitt adatok után az Excelből kiválasztva lenne jó egy sablon dokumentum meghatározott pontjaira importálni az Excel meghatározott cellatartalmát."

 

Ha jól értem a kérdésedet, és importálásnak azt nevezed, hogy az első levélbe az Excel tábla első sorában lévő adatok kerüljenek, a mkövetkezőbe a 2. sor adatai stb, akkor szerintem sem kell hozzá makró, hiszen a körlevél funkció éppen ezt tudja:

 

Megírod Wordben a sablon körlevelet, hozzákapcsolod az Excel fájlt, majd azokon a helyeken, ahol az egyes címzettek adatait akarod a kész levelekben látni, oda adatmezőket szúrsz be a Word sablonba, és a végén az "Egyesítés" gombbal létrehozhatsz annyi személyre szóló levelet, ahány sorod van az Excel táblázatban. Persze lehet szűkíteni, hogy csak ettől eddig kérsz leveleket. Fájlba kéred, ellenőrzöd, és ha kell kinyomtatod, vagy kiküldöd a címzetteknek.

 

Részletesebben itt írtam le: https://forum.index.hu/Article/viewArticle?a=148646714&t=9034275

Előzmény: Redlac (34776)
pimre Creative Commons License 2020.09.05 0 0 34781

Szerintem azzal sem engedte volna megnézni. A Google drive a feltöltött linket kétféleképpen engedi eljuttatni.

 

 

Alapértelmezésben csak azok nyithatják meg, vagy tölthetik le, akiket email címmel megjelölt a drive tuulajdonosa. A másik az, hogy a link birtokában bárki megtekintheti.

bringas1 barátunk valószínűleg elfelejtkezett az alapértelmezés átállításáról.

Előzmény: Törölt nick (34774)
Redlac Creative Commons License 2020.09.05 0 0 34780

Hú, ez jónak tűnik. Köszi, próbálkozom :-)

Előzmény: m54-b (34778)
Fferi50 Creative Commons License 2020.09.05 0 0 34779

Szia!

Szerintem mégis a körlevélben kellene gondolkodnod. A körlevélben meg tudod határozni, hogy melyik rekord kerüljön egyesítésre.

Az Excel makróban meg lehet nyitni a Word dokumentumot és ki tudod választani azt, amit egyesíteni szeretnél a körlevél sablonban.

Üdv.

Előzmény: Redlac (34776)
m54-b Creative Commons License 2020.09.05 0 0 34778

Remélem jól értelmezem.

 

Felveszel könyvjelzőket a megfelelő pontokra, majd

 

Sub ugras_konyvjelzore()
    
    Selection.GoTo What:=wdGoToBookmark, Name:="a1"
    Selection.PasteExcelTable False, False, False


End Sub

 

Előzmény: Redlac (34776)
bringas1 Creative Commons License 2020.09.05 0 0 34777

Köszönöm. Tökéletes lett.

Előzmény: Törölt nick (34775)
Redlac Creative Commons License 2020.09.04 0 0 34776

Sziasztok!

 

Érdeklődöm, hogy van-e arra lehetőség, hogy Excelbe bevitt adatokat Word meghatározott részére importáljak át.

A Wordben tartalomvezérlőkkel már próbáltam játszani, de azokat nem tudom, hogyan lehetne "megcímezni". 

A körlevél nem tűnt rossznak, viszont nálam az Excelben soronként bevitt adatok után az Excelből kiválasztva lenne jó egy sablon dokumentum meghatározott pontjaira importálni az Excel meghatározott cellatartalmát.

Erre lenne valami ötletetek?

Törölt nick Creative Commons License 2020.09.04 0 0 34775

Ha ez a szerkezet, akkor 6 adat tartozik össze.

Legyen az adathalmaz az A oszlopban A1-től kezdődően.

Ekkor a D1 cellába írd be ezt a képletet:

=ELTOLÁS($A$1;(SOR()-1)*6+MARADÉK(OSZLOP()-4;6);0)

és húzd el jobbra meg lefelé

Előzmény: bringas1 (34773)
Törölt nick Creative Commons License 2020.09.04 0 0 34774

Igen, nekem is google fiókos bejelentkezést kér, azt meg nem adok neki.

Szóval töltsd fel máshová (pl. data.hu, dropbox, stb.) vagy másképp (ha googledrive-on van olyan megosztás, ami nem akarja a macskád nevét is tudni, mielőtt megadja a hozzáférést a fájlhoz)

Előzmény: bringas1 (34768)
bringas1 Creative Commons License 2020.09.04 0 0 34773

Nekem csak beillesztés gomb van. Beillesztés nagyban nincs. :( 
Hátha most sikerült. 

Előzmény: m54-b (34771)
m54-b Creative Commons License 2020.09.04 0 0 34772

Megadható internetes kép is, lényeg, hogy megjelenjen a hsz. író box alatt.

Előzmény: XNC (34770)
m54-b Creative Commons License 2020.09.04 0 0 34771

 

1.) Rányomsz a "Kiválasztom a képet"-re

2.) A megjelenő ablakban megkeresed, és a megnyitásra nyomsz

3.) Megjelenik a kép (piros körben)

4.) Rányomsz a "Beillesztés", vagy a "Beillesztés nagyban"-ra

5.) mindenki boldog...

Előzmény: bringas1 (34768)
XNC Creative Commons License 2020.09.04 -1 0 34770

A saját gépedre kell lementeni a képet, onnan feltölteni az Indexre, majd beillesztés!

Egyszer csak összejön..........   :)

Előzmény: XNC (34769)
XNC Creative Commons License 2020.09.04 -1 0 34769

Ha a linkedre rányomok, nekem a google-fiókba akar belépni.  :)

Előzmény: bringas1 (34768)
bringas1 Creative Commons License 2020.09.04 0 0 34768

Köszönöm válaszod. 
Word-ben van az adat. Onnan szeretném Excelbe áttenni. 
Sajnos a nagyobb feltöltési lehetőséget nem találtam meg. A linken látható, hogy mire gondolok. 

 

https://drive.google.com/file/d/18PyuQDxVHQ8B__12ePqcs1QfDaBobHZU/view?usp=sharing

 

Maradjunk 5 adatnál. De nem egy sorban van hanem egymás alatt 5 sorban (a képen látszik).

Előzmény: Törölt nick (34766)
bringas1 Creative Commons License 2020.09.04 0 0 34767

Köszönöm.

Előzmény: XNC (34765)
Törölt nick Creative Commons License 2020.09.04 0 0 34766

Pontosítsunk a kérdésen. Én így értelmeztem:

Eredetileg volt egy normál táblázat 6 oszloppal, és - egy meg nem nevezett transzformáció során - ennek a táblázatnak az összes adata ugyanabba az egy oszlopba került, és azt kellene visszarendezni táblázat formába.

Jól értettem?

 

Ha igen, akkor az a következő kérdés, lehet-e pontosítani, hogy egy sorban 5 vagy 6 adat van-e.

Ha VAGY 5 adat van egy sorban, VAGY 6, akkor ezt a feladatot képlettel egyszerűen meg lehet oldani.

Figyelem! Ebből a szempontból adatnak számít az üres cella is, tehát ha valahol csak 5 adat van, de ott az üres cella a hatodiknak, akkor az 6 adatnak számít!

 

Ha viszont egyszer 5 adat van, máskor 6 adat van, és ez véletlenszerűen változik, az nagyban megnehezíti a helyzetet.

Ez esetben csak olyan megoldást tudok elképzelni, ami valamilyen algoritmus segítségével felismeri, hogy hol kezdődik és/vagy végződik egy adatsor. Ez a megoldás valószínűleg makrós lesz.

Előzmény: bringas1 (34763)
XNC Creative Commons License 2020.09.04 -1 0 34765

Van ott pl.1 olyan, hogy "beillesztés nagyban".

Arra is rá kell nyomni.

Előzmény: bringas1 (34764)
bringas1 Creative Commons License 2020.09.04 0 0 34764

Feltöltöttem egy képet az előző kérdéshez de nem jelenik meg.

bringas1 Creative Commons License 2020.09.04 0 0 34763

Sziasztok!

 

Van egy excel tábla 5-6 soronként ismétlődő adatokkal.

Hogy oldható meg, hogy minden (5-6) sorban szereplő adat külön oszlopba kerüljön?

 

 

pimre Creative Commons License 2020.08.31 0 0 34762

Megtaláltam egy jó megoldást itt: https://stackoverflow.com/questions/54703137/how-to-get-the-pathfilename-of-an-excel-workbook-stored-in-my-local-onedrive-fo

 

Az első megoldást (a Split off the filename ... kezdetűt) el kellett vetnem, mivel akkor is beleveszi a onedrive könyvtárat, ha nem onnan indítom, de egyébként létezik a könyvtár.

A második megoldás viszont - aki nem emlékszik, hol találta - hibátlanul működik. Egy apró eltérés, hogy nem a Thisworkbook.Path-al egyenértékű megoldást ad, hanem benne van a fájl neve is a végén, de ezt könnyű orvosolni, ha leveszem belőle a Thisworkbook.Name eredményét

A harmadik megoldást nem értem. Valami olyasmi,hogy ha folyamatban van a szinkronizálás, akkor az URL címet adja, ha befejeződött, akkor a helyit. De ezt honnan tudja a program?

Előzmény: pimre (34760)
pimre Creative Commons License 2020.08.31 0 0 34761

Persz az elérés D:\OneDrive\Dokumentumok\Program\

Előzmény: pimre (34760)
pimre Creative Commons License 2020.08.31 0 0 34760

Tegnap letöltöttem a Microsoft 365 ingyenes próbaverzóját, így van rá egy hónapom tesztelni, hogy érdemes-e előfizetnem rá. Ami igazán csábító az az 1TB-os tárhely, amivel nem kell rendszeresen külső adathordozóra menteni azokat a fájlokat, emivel dolgozom. 

 

Sikerült is telepítenem az Office csomagot, amit kipróbáltam, és egyelőre hibátlanul működik. Illetve azonos módon a 2019-es Office-al.

 

Ma álltam neki, hogy kipróbáljam a szinkronizáló funkciót. Létrehoztam a Onedrive könyvtárat, és áttettem bele néhány könyvtárat, amivel ki akartam próbálni. Ahogy látom, a fájlokat és a könyvtárakat rendben szinkronizálja. Gondoltam, elindítom a programomat.

 

Csak hogy a programom fizikailag a OneDrive könyvtárban van: D:OneDriveDokumentumokProgram, viszont a Thisworkbook.path parancs a következőre mutat:  https://d.docs.live.net/3de9302fce57d698/Dokumentumok/Program

 

Így aztán, amikor a hozzá szeretnék férni egy másik fájlhoz ugyanebben a könyvtárban, akkor 52-es hibát kapok: BadfFile name or number

 

Ismeritek ezt a környezetet? Hogyan lehet elérni, hogy ne a docs-ban akarja megnyitni a makrót?

MZ/Y Creative Commons License 2020.08.29 0 0 34759

Kösz a válaszokat.

 

Nos, a Ctrl+G nem működik, mert belehal... (ahogy szokott)

 

A makrót lefuttattam (volna), de az sem boldogult vele. Ott legalább nem halt meg az excel (nem ment át Nem válaszol-ba), de fél óra után meguntam, hogy csinál valamit, de semmi eredmény. Utána megpróbáltam még az általam módosított fájlon futtatni, akkor lefutott gyorsan, de nem jött fel semmi ablak, ahol láttam volna, mit talált.

 

Ja, igen, Ctrl+End-re elugrott a "világ végére", de nem találtam semmit.

 

Végül az lett, hogy megnéztem a saját tábláimat és egyáltalán nem szerepel benne Drawing könyvtár, úgyhogy kitöröltem az egészet. A tábla megnyitásakor köhögött, hogy sérült a fájl, javítsa-e, igen, erre bedobott egy naplófájlt, hogy 4 rajz törölve. Azóta a tábla villámgyors.

 

Még annyit láttam, hogy bár a Drawing könyvtárban az Drawing1.xml a rettenetesen nagy, a szintén ott található vmlDrawing1.vml és vmlDrawing2.vml néz úgy ki, hogy valami grafika van benne. De már feladtam, hogy megértsem :), ha tényleg nem szándékosan volt rajz valahol, akkor kész a hölgy óhaja, tudja használni a tábláját. Ha kell a rajz, akkor szenvedek még.

 

Köszönöm még egyszer!

Delila10 Creative Commons License 2020.08.29 0 0 34758

Mivel egyáltalán nem kell képeknek lenniük, a Ctrl+g -vel belépsz az Ugrás menübe, ott Irányított, majd Objektumok. Ez kijelöli a lapon lévő összes objektumot, amiket a Delete billentyűvel egyszerre törölheted.

 

Volt ilyen eset egy ismerősömnél, aki netről másolt. A képek nem látszottak, mert a szélességük nullára volt állítva. A fenti módszerrel drasztikusan csökkent a fájl mérete, a sebesség pedig drasztikusan megnőtt.

Előzmény: MZ/Y (34757)
MZ/Y Creative Commons License 2020.08.28 0 0 34757

Kösz! Holnap megpróbálom, bár ma délután abszolút használhatatlan volt az Excel, ha megnyitottam a táblát.

Én addig jutottam, hogy ebben a könyvtárban van egy drawing2.xml is, az 2 kB. Azzal felülírtam a drawing1.xml-t (persze maradt a 2-s is), a tábla látszólag jó, villámgyors, de hát fene tudja, ezzel mit is csináltam.

 

Az az érdekes még, hogy én is rajzra gondoltam név alapján, de a táblázat mezei szöveges, nem lehetne benne kép, ezt elvetettem. De az .xml-be nézelődve valóban shape-eket láttam, ha jól emlékszem.

 

Holnap megírom, mire jutottam.

 

Kösz még egyszer!

Előzmény: Törölt nick (34756)
Törölt nick Creative Commons License 2020.08.28 0 0 34756

Próbáld lefuttatni ezt a makrót:

 

Sub ListShapes()
    Dim sh As Shape, ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        For Each sh In ws.Shapes
            Debug.Print ws.Name & " - " & sh.Name

            'sh.Delete
        Next
    Next
End Sub

 

A kód a VB Editor immediate ablakába kilistázza az összes munkalapon lévő összes Shape (tkp. grafikus) objektum nevét. (A drawing ugyanis arra utal, hogy képek/rajzok vannak a munkafüzetben valahol.) Ha olyat shape-nevet látsz, ami nem odavaló, akkor ugyanebben az Immediate ablakban add ki az utasítást:

 

Worksheets("munkalap neve").Shapes("shape neve").Delete

 

ami törli az adott nevű Shape objektumot.

Ha mindegyik kilistázott Shape objektumot törölni kellene, akkor csak vedd ki az aposztrófot a 'sh.Delete sor elől.

Ha pedig a kód nem listáz ki semmit akkor tévedtem.

 

 

 

 

Előzmény: MZ/Y (34755)
MZ/Y Creative Commons License 2020.08.28 0 0 34755

Szóval a drawing1.xml nőtt meg.

Adná magát, hogy a még jóból másoljam át, csak az a baj, hogy normál esetben is változik, nem biztos, hogy jó. Meg ugye azt sem tudom, mi a fene ez.

Előzmény: MZ/Y (34754)
MZ/Y Creative Commons License 2020.08.28 0 0 34754

Kösz!

Szerintem nagyobb a baj, de most meg sem tudom nézni, mert teljesen halott a gép tőle.

 

De itteni ötletet alapul véve átneveztem. zip-re és azt megtaláltam, mi nőtt meg: xldrawingsdrawing2.xml. Ez lett 27 meg helyett 52 mega. (Mivel 97-98 %-ban tudja tömöríteni, így nőtt kb. 1 megával az xlsx.) Viszont erre nem találok javítást/leírást, csak olyat, mikor hibaüzenet van, itt meg az nincs.

Előzmény: pimre (34753)
pimre Creative Commons License 2020.08.28 0 0 34753

Gyanús, hogy elállítódott a munkalap utolsó cellájának helye. Olvasd el ezt: http://forum.index.hu/Article/viewArticle?a=154594621&t=9009340. Hátha így tudjátok javítani. A lényeg: "Ctrl + End billentyű kombináció a munkalap utolsó használt cellájára ugrik. Ha ez túl van az általad szükségesnek ítélt tartományon, akkor a felesleges oszlopot, sort töröld."

Előzmény: MZ/Y (34752)
MZ/Y Creative Commons License 2020.08.28 0 0 34752

A cégnél van egy tábla, amivel történt valami és használhatatlanul lassú lett. Értsd, 5 perc a megnyílás - vagy nem, de egyszer csak gondolkodni kezd a fenti időre. A használója nem tudja mihez kötni, egyszer csak ilyen lett.

Amit én látok, bő 2000 sor, kb. 10 oszlop, mondjuk ezek nagy részére szűrő van beállítva, de ezek a még jó táblában is ott voltak. Ami látszik, hogy amikor elromlott, akkor a 2 mb-os tábla 3 mb-ra nőtt.

 

Nincs valami "konzol" vagy valami, ahol konkrétan látszana, mivel szöszöl? Ja, igen, az i5-ös gépemen a processzor-használat 50 % fölötti volt, memória szinte semmi. Utoljára úgy megfogta a gépem, hogy 10 perc után is csak a feladatkezelőből tudtam kilőni az excelt. Azért lenne jó valami konzol (vagy debug), mert amúgy is nehéz megkeresni, mi került bele, de ha közben még gyakorlatilag meg is áll állandóan az excel, sosem jutok a végére.

Delila10 Creative Commons License 2020.08.28 0 0 34751

"Úgy tűnik, ez a sötétedés arra való, hogy szemléltesse, a terület már ki volt jelölve."

(szerény személyemtől)

Előzmény: Törölt nick (34750)
Törölt nick Creative Commons License 2020.08.28 0 0 34750

Viszont a szín ilyetén változása arra utal, hogy ez nem bug, hanem design. Szóval valami célja biztosan van, de mi?

Egyébként jó soxor (legalább 51x) ki lehet jelölni ugyanazt a cellát, bár a színárnyalat néhány kijelölés után nem sötétedik már tovább.

Előzmény: Delila10 (34749)
Delila10 Creative Commons License 2020.08.28 0 0 34749

Valójában nem a kiválasztott színnek egy sötétebb árnyalatát mutatja  a háttér, hanem egy szürkével sötétítettet.

Előzmény: Delila10 (34748)
Delila10 Creative Commons License 2020.08.28 0 0 34748

Mikor Ctrl segítségével kijelölünk egy területet, a terület háttere szürke lesz, ezzel látványosan megmutatja a terület egységét.

 

Ha a Ctrl+ klikkel ugyanazt jelöljük ki, itt is sötétebb lesz a háttér. Valóságban nem, mint az egyszeres kijelölésnél sem, amit jól mutatnak a színlekérdezés változatlan paraméterei.

 

Ez a feltételes formázást juttatja eszembe, ahol a formázott háttér paraméterei az eredeti színesésével azonosak.

 

Feltételesen formáztam pár adatot (hátteret). Itt is sötétebb lett a kiválasztott cella Ctrl+klikkel, a paraméterek az eredeti adatait mutatták. Amint leléptem a celláról, a feltételhez beállított színre változott vissza a háttér.

 

Úgy tűnik, ez a sötétedés arra való, hogy szemléltesse, a terület már ki volt jelölve.

Előzmény: Törölt nick (34745)
Delila10 Creative Commons License 2020.08.28 0 0 34747

Lekérdeztem a színkódot a világos hátterű cellánál, majd Ctrl+klikk. Sötétebb lett a háttér, ahogy írtad, de a kódok maradtak. A következő klikknél dettó.

A színeknél a jobb felső halovány zöldet választottam. A lekérdezés szerint a háttér RGB(226,239,218), a színkód 35.

Előzmény: Törölt nick (34745)
Delila10 Creative Commons License 2020.08.28 0 0 34746

Nahát!!!

Előzmény: Törölt nick (34745)
Törölt nick Creative Commons License 2020.08.28 0 0 34745

Ma észrevettem egy érdekességet. Ha a Ctrl gombot lenyomva tartom, és egy cellára többször rákattintok, akkor a cella színe egyre sötétebb lesz.

Ha z F31-re 6-szor kattintok, akkor a VB Editor immediate ablakában ezeket kapom:

 

? selection.address
$F$31,$F$31,$F$31,$F$31,$F$31,$F$31

? selection.cells.count
 6

Még nem tudom, mire lehet ezt használni...

Törölt nick Creative Commons License 2020.08.28 0 0 34744

Mostanában úgy írom az Excel programokat, hogy lehetőleg kerülöm a direkt cellaműveleteket ciklusban, helyette beolvasom egy tömbbe az egész érintett cellatartományt, és a tömbben keresgélek. Mindig újra és újra meglepődöm rajta, hogy mennyire gyorsan mennek a számítások és keresési műveletek a memóriában.

Előzmény: Delila10 (34742)
Törölt nick Creative Commons License 2020.08.28 0 0 34743

Ha sikerül megfejtenem a 10 évvel ezelőtti gondolatmenetemet, akkor megpróbálom kiadni hatchback változatban is ;-)

Előzmény: James 42 (34741)
Delila10 Creative Commons License 2020.08.28 0 0 34742

Gyorsabb a makród a Solvernél!

Előzmény: Törölt nick (34740)
James 42 Creative Commons License 2020.08.27 0 0 34741

Igen, így tényleg sokkal... nagyobb. De ha kombi, akkor nem csoda. Azok általában nagyobbak szoktak lenni.  :-)

Előzmény: Törölt nick (34740)
Törölt nick Creative Commons License 2020.08.27 0 0 34740

Kicsit felturbóztam, mert lassú volt, meg javítottam rajta optikailag.

 

Sub kombi()
    Dim Rng As Range, hit As Range
    Dim ix As Long, Lvl As Long, Cnt As Long, iter As Long
    Dim LvlAct, LvlSel
    Dim BaseSum As Double, TestSum As Double
    Dim Dest As Double, small_ix As Double
    
    Dest = Range("c3")
    Set Rng = Range("A3:A29")
    Rng.Interior.ColorIndex = xlNone
    Cnt = Rng.Cells.Count
    ReDim LvlAct(1 To Cnt)
    ReDim LvlSel(1 To Cnt)
    If Dest > Application.WorksheetFunction.Sum(Rng) Then
        MsgBox "A célszám nagyobb mint a tételek összege, szóval ennek biztosan nincs megoldása."
        End
    End If
    For ix = 1 To Cnt
        LvlAct(ix) = ix
        LvlSel(ix) = 0
    Next
    
    Lvl = 1
    Do
        iter = iter + 1
        If Right(CStr(iter), 2) = "00" Then
            Application.StatusBar = iter
            DoEvents
        End If
        small_ix = Application.WorksheetFunction.Small(Rng, LvlAct(Lvl))
        TestSum = BaseSum + small_ix
        If (Round(TestSum, 5) < Round(Dest, 5)) Then
            If LvlAct(Lvl) < Cnt Then
                LvlSel(Lvl) = small_ix
                BaseSum = BaseSum + LvlSel(Lvl)
                Lvl = Lvl + 1
                LvlAct(Lvl) = LvlAct(Lvl - 1) + 1
            ElseIf LvlAct(Lvl) = Cnt Then
                Lvl = Lvl - 1
                BaseSum = BaseSum - LvlSel(Lvl)
                LvlAct(Lvl) = LvlAct(Lvl) + 1
                LvlSel(Lvl) = 0
            End If
        ElseIf (Round(TestSum, 5) > Round(Dest, 5)) Then
            Lvl = Lvl - 1
            BaseSum = BaseSum - LvlSel(Lvl)
            LvlAct(Lvl) = LvlAct(Lvl) + 1
            LvlSel(Lvl) = 0
        ElseIf (Round(TestSum, 5) = Round(Dest, 5)) Then
            MsgBox "heuréka"
            For ix = 1 To Cnt
                If LvlSel(ix) = 0 Then Exit For
                Set hit = Rng.Find(what:=LvlSel(ix), lookat:=xlWhole, LookIn:=xlValues)
                If hit Is Nothing Then
                    MsgBox "bibi van"
                    Stop
                Else
                    hit.Interior.ColorIndex = 4
                End If
            Next
            Set hit = Rng.Find(what:=small_ix, lookat:=xlWhole, LookIn:=xlValues)
            If hit Is Nothing Then
                MsgBox "bibi van"
                Stop
            Else
                hit.Interior.ColorIndex = 4
            End If
            Application.StatusBar = False
            Exit Sub
        End If
    Loop
End Sub

Előzmény: Delila10 (34739)
Delila10 Creative Commons License 2020.08.26 0 0 34739

Szívesen.

Amit Jimmy linkelt be, az még ki is színezi az adataidat. Nem semmi egy makró!

Előzmény: Ketele69 (34737)
Ketele69 Creative Commons License 2020.08.26 0 0 34738

Köszönöm, meg fogom ezt is nézni!

Előzmény: Törölt nick (34736)
Ketele69 Creative Commons License 2020.08.26 0 0 34737

Nagyon köszönöm!

 

Sikerült is megcsinálnom !!!

 

 

Előzmény: Delila10 (34735)
Törölt nick Creative Commons License 2020.08.26 0 0 34736

Ha esetleg a solverrel nem boldogulsz, kb. 10 éve összeütöttem egy kis progit erre a célra.

http://forum.index.hu/Article/viewArticle?a=102071235&t=9009340

Előzmény: Ketele69 (34733)
Delila10 Creative Commons License 2020.08.26 0 0 34735
Előzmény: Ketele69 (34733)
Delila10 Creative Commons License 2020.08.26 0 0 34734

Szia!

Keress rá a solver kifejezésre, és megvan a válasz.

Előzmény: Ketele69 (34733)
Ketele69 Creative Commons License 2020.08.26 0 0 34733

Sziasztok!

 

Van egy változó kb. 40 db számot tartalmazó tartományom és van egy adott számértékem, mely e tartomány egyes számainak összege, de! nem tudom, mely számok összege.

 

A kérdés: a manuális próbálkozós módszer helyett van-e más módszer pl. mondjuk függvény segítségével megállapítani, hogy mely számokat kell összeadnom.  

 

Szerencsére nem gyakran előforduló problémáról van szó :)

 

Köszönöm,

Delila10 Creative Commons License 2020.08.20 0 0 34732

másolási terület kijelölését.

Előzmény: Delila10 (34731)
Delila10 Creative Commons License 2020.08.20 0 0 34731

Megszünteti a másolás kijelölését, és törli a vágólapról.

Előzmény: James 42 (34730)
James 42 Creative Commons License 2020.08.20 0 0 34730

Gondoltam, hogy nincs szükség arra, hogy minden benne legyen, amit én beírtam. De ez a CutCopyMode mit csinál? Lehet, hogy az enyémbe is kéne?

Előzmény: Delila10 (34729)
Delila10 Creative Commons License 2020.08.19 0 0 34729

Ennek megfelelőt tettem a personalba, hogy minden füzetben elérhető legyen. Sűrűn használom. Nálam Ctrl+e, mint érték beillesztés, de ez csak részletkérdés.

 

Sub Ertek_beillesztese()

    'Billentyűparancs: Ctrl+e

    Selection.PasteSpecial Paste:=xlValues

    Application.CutCopyMode = False

End Sub

Előzmény: James 42 (34728)
James 42 Creative Commons License 2020.08.19 0 0 34728

Mint írtam, esetleg kipróbálhatod a makrómat. Ha mindig A-ból B-be másolsz, akkor mindegy, hogy melyikben rögzíted.

A makró tartalma:  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=False

Ezt csinálja nálam a Ctrl-Q megnyomására. Azért arra, mert ezt a kombinációt nem használom másra, és a két gomb viszonylag közel van egymáshoz.

Előzmény: axemiskolc (34727)
axemiskolc Creative Commons License 2020.08.19 0 0 34727

Ezt nem értem én se. Már egy éve konzultálgatok legalább mindenféle szinten excelt használóval de ezt a hibát nem ismeri senki.

Most manuálisan végigmentem az összes lapfülön és az összes kijelölést használva általános cellává alakítottam mindet.

Már ezt is megcsináltam vagy kétszer, de a 2019 lehet, hogy nem kavarja vissza.

Elképesztően zavaró, hogy nem tudok rájönni az okra.

Előzmény: James 42 (34725)
axemiskolc Creative Commons License 2020.08.19 0 0 34726

Az eddigi tartalmakat jelöltem ki (tehát nem az egész oldalt) és tettem át (nem volt egy könyvelői sem köztük) de az alattuk keletkező új sorokban máris ott virítottak az €-k és tsai...

Előzmény: pimre (34724)
James 42 Creative Commons License 2020.08.19 0 0 34725

Azt írta, hogy eredetileg csak egyes sorokat akart átmásolni. Ebben az esetben miért "normális, hogy nem sikerült"? Ha se a forrás-, se a célállományban nem voltak így formázva a számok, akkor miért változtatta ezt meg a másolás?

Előzmény: pimre (34724)
pimre Creative Commons License 2020.08.19 0 0 34724

"...a rendelési táblázatból minden lapfül tartalmát egyesével átmásoltam egy új munkafüzetbe..."

Ha jól értelek rámentél a munkalapra (amit lapfülnek nevezel), megnyitottad, kijelöltet az összes sort, vagy oszlopot, és bemásoltad az új munkafüzetbe? Mert akkor normális, hogy nem sikerült.

 

Ha a teljes munkalapot másolod, akkor megőrződnek a formázási beállítások. De még jobb, ha a teljes munkafüzetet másolod az összes munkalapjával. Aztán átnevezed, ha szükséges. 

És ha van feleslegessé vált munkalap akkor azokat a fülre kattintva egér jobb gombbal eltávolítod.

 

Előzmény: axemiskolc (34720)
James 42 Creative Commons License 2020.08.19 0 0 34723

Nem szerver az, ha vége a munkaidőnek, akkor leállítom a gépet.

Előzmény: Sánta Kutya (SK) (34722)
Sánta Kutya (SK) Creative Commons License 2020.08.19 0 1 34722

Ezen még annyit lehet fejleszteni, ha nem is zárod be őket a munkaidő végén. :-)

Előzmény: James 42 (34721)
James 42 Creative Commons License 2020.08.19 0 0 34721

Nem akarom Rád erőltetni, de ha gondolod, kipróbálhatod:

Én a melóhelyen minden reggel meg szoktam nyitni egypár táblázatot, amelyek aztán nyitva vannak a munkaidő végéig. Abban a táblázatban, amit először szoktam megnyitni, létrehoztam egy makrót, ami annyit tesz, hogy a kurzor helyén beilleszti a vágólap tartalmát, de formázás nélkül, azaz értékként. Ehhez hozzárendeltem a Ctrl-Q kombinációt. Ez általában jól működik minden táblázatból táblázatba másolás esetén, amíg a makrót tartalmazó táblázat is meg van nyitva.

Előzmény: axemiskolc (34720)
axemiskolc Creative Commons License 2020.08.19 0 0 34720

Sziasztok!

 

Egy munkafüzetből (amelyikben nincs könyvelési cellla) kivágok egy sort és egy másik táblába beillesztem.Ott ez a művelet néhány cellát könyvelésivé tesz (ezen sincs alapvetően egy ilyen sem), azaz pl.: a sima 3 ból 3,00€ lesz.

Ez egy rendelési táblázat ami lezárult azt az archívban tárolom és ez így mindennapos probléma.

Az Office 2016 volt, gondoltam a csere megszünteti ezt a gondot, leváltottuk 2019-re, és a rendelési táblázatból minden lapfül tartalmát egyesével átmásoltam egy új munkafüzetbe, de így is előjött a cumi.

Mi lehet a megoldás? 

Eredő Vektor Creative Commons License 2020.08.17 0 0 34719

Csak megjegyzem, hogy a Ctrl+L dolog engem is rohadtul idegesített a gyakori használat miatt. Aztán megszoktam a Ctrl+D-t....

Előzmény: pimre (34716)
Sánta Kutya (SK) Creative Commons License 2020.08.16 0 0 34718

Hühh, lehet, hogy egyszer majd rákényszerülők a 2020 használatára, sőt valószínű. :-) :-(

Előzmény: hellsing (34717)
hellsing Creative Commons License 2020.08.13 0 1 34717

Korábban kértem segítséget, mert a magyar és angol Excelek között nem működött a CELLA/CELL függvény. A hivatkozásokban használni kellett a "col/oszlop" és a "row/sor" kifejezéseket, és emiatt ugyanaz a munkalap a különböző nyelvű Excelekben nem működött.

 

Most csak egy új tapasztalatot jöttem megosztani: a Microsoft megtanította a magyar Excel 2020-at angolul (az angol továbbra sem tud magyarul), így a magyar már egyformán működik a row és col, illetve a sor és oszlop opciókkal is. Az angol persze nem megy az utóbbival, de legalább már nem kell a nemzetköziesítéssel bajlódni.

 

Remélem még valakinek hasznos az infó :)

pimre Creative Commons License 2020.08.13 0 0 34716

Köszönöm. CSak azt nem értem, hogy miért kellett egy eddig jól működö megoldáson változtatni. Amint azt sem, hogy pédául  a kitöltés lefelé billentyűkombinációját a magyar verzióban miértl kellett a már megszokott Ctrl + L-ről  az angolna megfelelő Ctrl + D-re változtatni. Meg ki tudja még mit. NA jó, ezt legalább néhány hónapon belül újra megszokom. 

Előzmény: Fferi50 (34715)
Fferi50 Creative Commons License 2020.08.13 0 0 34715

Szia!

Jó, hogy rájöttél a megoldásra. Igaz, munkával fog járni az ellenőrzés, de legalább nem lesz belőle hiba.

További jó munkát!

Üdv.

Előzmény: pimre (34714)
pimre Creative Commons License 2020.08.13 0 0 34714

Azt hiszem, megvan a megoldás. Ha nem kapcsolom vissza a ScreenUpdate-et, akkor nem áll le a program, és szépen visszamegy a menübe. Csak ennek az a következménye, hogy az onnan indított valamennyi menüpontnál ellenőriznem kell, hogy nem szükséges-e visszakapcsolni. Mert az sem mindig jó, ha végég ki van kapcsolva, mert egyes képernyőelemek meg éppen ettől nem jelennek meg.

Előzmény: pimre (34713)
pimre Creative Commons License 2020.08.13 0 0 34713

"Biztosan visszakerül a vezérlés erre a formra a feladatok elvégzése után?"

 

Szerintem rajta van. Azért tudok a bal szélső képre kattintva visszajutni a menühöz (mart például az nem nyitott "fájl" hanem a Form képe. Csak előzőleg a 2019-es rendszer fennakadt azon a képen, és leállította a vezérlést. Ha viszont ezen a tájékon megállítom a futást, majd továbbengedem, akkor nem akad el, hanem továbbmegy a menüre. Ezért tippeltem elsőre azt, hogy valami timer probléma lehet.

 

A dühítő, hogy a visszamásolom a programot az adatokkal együtt a másik gépemmre, ahol office 2010-es fut, ott gond nélkül lefut, nem villant a képernyő Excel fejléceket, és amikor a fájlba írja az eredménylistákat, akkor nem kell letiltani a screenupdate-ot, mert akkor sem listázza a képernyőre az éppen fájlba írt adatokat.

 

Hoppá erről ugrik be valami. Mivel itt, ha engedélyezve van a screenupdate, akkor majdnem abban a formában írja ki képernyőre a fájl tartalmát, ahogy a fájlba íródik. A táblázati adatokat ott bekeretezem, és a k$pernyőn is így jelenik meg. Lehet, hogy ezzel van inkább összefűggésben a leállás. Tehát leáll a fájlba írás, leáll a képernyőn is a továbblépés. Mi okozhatja ezt? Van valami beállítás akár az Excelben, akár a Windows 10-ben, hogy a fájlba írást kövesse a képernyő? Megpróbálok erről az oldalról utánanézni. 

Előzmény: Fferi50 (34712)
Fferi50 Creative Commons License 2020.08.12 0 0 34712

Szia!
Háát... szép mennyiségű Excel fájl van nyitott állapotban úgy látom. Talán a vezérlés visszaadás körül kellene keresgélni. Biztosan visszakerül a vezérlés erre a formra a feladatok elvégzése után?

Próbáld az adott feladat befejezése után megállítani a futást és utána lépésenként megnézni, mi történik.

Üdv.

Előzmény: pimre (34711)
pimre Creative Commons License 2020.08.12 0 0 34711

Bocs, ezt csak most vettem észre. Szóval nem tudom, hogy be van-e töltve, mindenesetre ott van. Amikor megáll az Excel munalapot mutatva, akkor atálván az Excel gombra kattintva a következők jelennek meg: Először az alsó sor listájának jobb szélső képe jelenik meg nagyban, de maga a menü pedig a lista bal szélén van, és ha arra kettintunk, akkor megjelenik a menü, ahogy a képen most látható. És ezzel lehet folytatni a munkát. És ha csak én dolgoznék vele, akkor ezt akár tudomásul is venném, de nem hagyhatom ennyiben.

Már azt is próbáltam, hogy létrehozok egy másik fájlt is őelőtte, vagy őutána, abba írok is egy adatot, majd lezárom, de ez mindkét esetben ott marad. Pedig nem teszek vele mást, csak valamivel többet írok bele. Különböző fájlok tartamának részeit bekeretezett táblázatokban.

 

 

 

Előzmény: Fferi50 (34708)
pimre Creative Commons License 2020.08.12 0 0 34710

Kösz. Épp az imént próbáltam. Nem segített.  

Előzmény: Törölt nick (34709)
Törölt nick Creative Commons License 2020.08.12 0 0 34709

Az Application.ScreenUpdating=True után tegyél be egy ThisWorkbook.Activate sort.

Előzmény: pimre (34706)
Fferi50 Creative Commons License 2020.08.12 0 0 34708

Szia!
Tehát a problémád az, hogy a menüd egy formon van, aminek az aktuális feladatok elvégzése után ismét meg kellene jelennie.

Jól értem?

Biztosan be van töltve a form a memóriába?

Sajnos innen csak találtatni lehet.

Valamit nem tudnál mutatni belőle?

Üdv.

Előzmény: pimre (34707)
pimre Creative Commons License 2020.08.12 0 0 34707

Bocs, lehet hogy nem is ScreenUpdating a probléma. Kitöröltem, és mégsem megy vissza a menu képernyőre, hanem az utoljára létrehozott munkafüzet aktuális munkalapját mutatja.

Előzmény: pimre (34706)
pimre Creative Commons License 2020.08.12 0 0 34706

Egy újabb panasz az Excel 2019-nél.

 

Egyes feladatoknál kikapcsolom a képernyőfrissítést, mert nagyon ugrál közben a képernyő. És gyakori, hogy amikor visszakapcsolom, akkor felvillantja ugyan a formon a feladot követő menüt, de aztán elkapja, és az egyik munkalap képernyőjét mutatja. Külön rá kel lkattintanom az Excel alsó sorbeli listájában arra, ahol a menü látható.

 

Próbáltam rákeresni. Találtam olyan javaslatot, hogy az Application.ScreenUpdating=True után tegyek be egy DoEvents parancsot. Nem vált be.

Volt olyan javaslat, hogy használni kell az Application.ScreenRefresh parancsot. Csak ilyen nincs. Állítólag Excel 2003-ban volt.

 

Van valami megoldás a képernyőfrissítés érvényesítésére? (Megjegyzem, nekem a 2010-es verzió alatt nem jelentkezett ilyen probléma)

Delila10 Creative Commons License 2020.08.11 0 0 34705

Meglehet.

Előzmény: Törölt nick (34704)
Törölt nick Creative Commons License 2020.08.11 0 0 34704

Csipás volt a szemed :P

Előzmény: Delila10 (34703)
Delila10 Creative Commons License 2020.08.11 0 0 34703

Hogy nem láttam ezt reggel?!

Előzmény: Törölt nick (34699)
Delila10 Creative Commons License 2020.08.11 0 0 34702

Nem vagy egyedül ezzel.

Szívesen. :)

Előzmény: pimre (34701)
pimre Creative Commons License 2020.08.11 0 0 34701

Hát ez az, amikor a legegyszerűbb megoldások nem jutnak eszembe. Köszönöm.

 

Előzmény: Delila10 (34700)
Delila10 Creative Commons License 2020.08.11 0 0 34700

Nem kell vacakolni a szöveg függvényekkel.

 

 

    fájlnév = útvonal & "Valami " & Format(Date, "yyyy.mm.dd") & ".xlsm"

 

    ActiveWorkbook.SaveAs Filename:=fájlnév, ....

 

Előzmény: pimre (34698)
Törölt nick Creative Commons License 2020.08.11 0 0 34699

"és ezt szívesebben hsználtam mid() függvénnyel fájlnévhez fűzött dátumstring összeállítására"

 

Format(Now(),"yyyy.mm.dd")

?

Előzmény: pimre (34696)
pimre Creative Commons License 2020.08.10 0 0 34698

Igen, de dátummal együtt. Legalábbis nálam. A date ebből csak a dátumot.

 

Viszont megnéztem. Nem az Excel a hunyó, hanem a Windows. A Win7-ben a dátum és időbeállításoknál 4 verzióból lehetett választani. A Win10-ben csak kettőből, és mindkettő többlet szóközzel:

 

 

Viszont örülök, hogy most sikerült ezt is megtalálni, mert meg tudtam oldani, hogy ettől is független legyen a dátum megfelelő kiolvasása.

Előzmény: Fferi50 (34697)
Fferi50 Creative Commons License 2020.08.10 0 0 34697

Szia!

Nem kevered a Date függvénnyel? Mert az adja a dátumot éééé.hh.nn illetve a rendszernek megfelelő formátumban.

A Now az mindig a pontos időt adta.

Üdv.

Előzmény: pimre (34696)
pimre Creative Commons License 2020.08.10 0 0 34696

Köszönöm. 

 

Újabb döbbenet. A now eddig úgy nézett ki, hogy éééé.hh.nn, és ezt szívesebben hsználtam mid() függvénnyel fájlnévhez fűzött dátumstring összeállítására, mint a Year/month/day függvényeket (nem kellett vacakolni a hónap és nap vezető nulláinak a hozzáfűzésével).

Erre ma látom, hogy a dátumaim jgy néznek ki: "20. 0.. ". Megnéztem, hát nem módosult ez is: A now most 2020. 08. 10. 19:46:10. Hát ennyit a felülről kompatibilitásról.

 

Na meg annyit, hogy amikor fájlba készítek listát az adatokról, akkor a 2010-es Excel csöndben megcsinálta, ez meg listázza közben a képernyőre. Nem nagy baj, de zavaró. Szerencsére a screenupdating leállítja. De azért nem értem, hogy adatok fájlba történő kiírása hogy jelenhet meg a képernyőn. 

 

Ha 5-10 éve írtam volna a programot, most ezek mind előjönnének.

Előzmény: Fferi50 (34695)
Fferi50 Creative Commons License 2020.08.10 0 0 34695

Szia!

Ezen a linken:

https://docs.microsoft.com/en-us/office/vba/api/overview/excel

az Excel VBA van közvetlenül. Én felvettem a kedvencek közé :) 

Bal oldalon kibonthatod amit keresni szeretnél, illetve más office alkalmazások helpjei is elérhetők. Néha egész részletes, néha pedig - ahol nagyon kellene - semmitmondó a szöveg. De ezt már megszoktuk.

Üdv.

Előzmény: pimre (34694)
pimre Creative Commons License 2020.08.10 0 0 34694

Nálam mindenképp a technikai oldal jön be. Kérdőjelet csak kéket látok, sárga nálam az object browserben van, de az is csak online találatot ad. Egyébként sajnálatos módon megszüntették az offline helpet: https://answers.microsoft.com/en-us/msoffice/forum/all/excel-offline-vba-context-help/ce2dcd1d-0280-4617-9516-991b3217df49. Ez nagyon bosszant, mert sok esetben két kattintással választ találtam a kérdésemre, ha meg nem, akkor keresni magamtól is tudtam Microsoft "segítség" nélkül.

Előzmény: Fferi50 (34692)
pimre Creative Commons License 2020.08.10 0 0 34693

Részben megoldódott. Az újratelepítés előtt kipróbáltam office 2016-al. Ott is jelentkezett mindkét hiba.

Eltávolítottam, és feltettem a 2019-est.

 

A második hiba rejtélyes módon megszűnt. Lehet, hogy az előző telepítéseknél valami nem sikerült rendesen, csak nem vettem észre?

 

Az első hiba még mindig jelentkezik. Nvezetesen, hogy egy szabályosan beállított textbox (ahol a visible és az enabled egyaránt True, és semmi más rendellenesség nem látszik) nem tudja fogadni a setfocust. Ez nem lenne tragédia, mert olyan művelet után történik ez, amit a felhasználó nagyon ritkán, vagy sosem használ. Csak az a félelmem, hogy vajon nem jön-e elő a jelenség más helyzetben is.

 

Az off jelenség itt is megvan, de fene bánja.

Előzmény: Fferi50 (34690)
Fferi50 Creative Commons License 2020.08.10 0 0 34692

Szia!

Nálam 2016-os Excelnél most úgy jelenik meg, hogy az objektum tallózónál az MS technikai oldal jön be, ha a sárga kérdőjelre kattintok, ha viszont a menü Help gombra, akkor az éppen kijelölt objektumra vonatkozó szöveg. Próbáld így.

Korábban a sárga kérdőjel vitt az adott objektumhoz. 

Ki érti ezt?

Üdv. 

Előzmény: pimre (34691)
pimre Creative Commons License 2020.08.10 0 0 34691

"Feltételezhetően az a probléma, hogy mire a program odaér, még nem töltődik be rendesen a form."

Ez nem tudom, hogy történhet, hiszen rajta vagyok, a formon fut az initialize részlet, és ez feltölti a rajta lévő textboxokat. Csak nem azt mutatja, hanem az itt elsőként megnyitott munkafüzet munkalapját jeleníti meg.

 

Akkor most visszateszem a 2019-et.

 

Ezzel kapcsolatban egy kérdésem van: A régi verzióban a VBA Help-re megjelent egy ablak, ahol be tudtam írni a kérdéses függvény/parancs nevét, és arról kaptam leírást. A 2019-esnél ugyanez megnyit egy Microsoft Docs honlapot, amin egyelőre nem igazodok ki.

Ki lehet kapcsolni ezt a szolgáltatást, és visszaállítani a korábbi Help funkciót?

 

Előzmény: Fferi50 (34688)
Fferi50 Creative Commons License 2020.08.10 0 0 34690

Szia!

Akkor "megoldottuk" a problémát!  :)

De az OFF téma az biztosan megvan ott is.

 

Üdv.

Előzmény: pimre (34689)
pimre Creative Commons License 2020.08.10 0 0 34689

Jelentem a Win10/office 2010 kombinációban a leírt hibák egyike sem jelentkezik.

Előzmény: Fferi50 (34688)
Fferi50 Creative Commons License 2020.08.10 0 0 34688

Szia!

Feltételezhetően az a probléma, hogy mire a program odaér, még nem töltődik be rendesen a form. A Wait szerintem azért nem jó, mert ebben az esetben a program futása felfüggesztődik, kvázi nem történhet semmi. Esetleg egy megfelelően hosszú üres ciklust próbálj meg.

Off:

Igen, úgy tűnik, hogy számok esetén a VBA az utólagos deklarációt alkalmazza, sőt ez még nem is elég (baj), mert a számokkal való műveletnél a legalacsonyabb "deklarációt" veszi figyelembe. Pl. hiába long az eredmény változó, ha a kiinduló változó integer, a kiinduló változó olyan szorzása esetén, aminél az eredmény túllép az integer határon, túlcsordulási hiba keletkezik.  :( 

Ha pontot teszel utána, akkor a VBA már Double ill. Single típusnak értékeli ki, ezért nincs túlcsordulás. 

Úgy látszik, mindig van új a nap alatt a gyakorlatban (mert egyébként ez nagy eséllyel a kezdetektől így működik.)

On.

 

Üdv.

Előzmény: pimre (34687)
pimre Creative Commons License 2020.08.10 0 0 34687

Köszönöm. A helyzet az, hogy a második jelenség valami időzítési gond lehet. Ugyanis ha közvetlenül a initialize részlet befejezése előtt beteszek egy breakpoint-ot, majd a megállás után tovább engedem, akkor jó.  

 

Ezért megpróbáltam az Application.Wait parancsot használni, de nem segít. Még ha 1 teljes percre is állítom be, akkor is a továbblépésnél az Initialize részletben elsőként megnyitott munkafüzet munkalapját jeleníti meg a képrnyőn, mikozben a vezérlés a UserFormon van.

 

Azért most megnézem, mi a helyzet a javaslatoddal a Win10/office 2010 párossal.

 

Off: A várakoztatás kapcsán találtam egy érdekes furcsaságot, ami még 2010-es verzióban is így van: Ha nem nagy egész számokkal végzek műveleteket, akkor azokat integernek tekinti az Excel úgy programban mint immediate módban (Munkalapon nem). Ezért egy olyan szorzást, hogy 1440*60 owerflow hibának jelez. Ha egy tizedesjegyet beleírok (1440.0 *60), akkor nem. 

Előzmény: Fferi50 (34686)
Fferi50 Creative Commons License 2020.08.10 0 0 34686

Szia!
Szerintem próbáld meg a fokozatosság elvét követni. A Win10 mellé hagyd meg a korábbi Office verziót.

Persze az sem mellékes, hogy a felhasználóknál milyen környezetben fog majd futni.

Egyébként pedig Redmond a hunyó, talán őket kellene meginterjúvolni, hogy milyen bug-okat hagytak benne. :( 

Üdv.

Előzmény: pimre (34685)
pimre Creative Commons License 2020.08.10 0 0 34685

Sziasztok, teljesen el vagyok keseredve. Az asztali gépemen áttértem a Windows 10-re és ha már lúd, legyen kövér, az Excel 2010-ről átváltottam Excel 2019-re.  

 

Namármost a program, amin hosszabb ideje dolgozom, és Win7/Office2010 alatt a következőket műveli az új rendszeren:

 

1. Bizonyos körülmények között - reprodukálhatóan - hibát ad az egyik userformon egy  textbox.setfocus parancsnál. A különbség az, hogy egy másik userformon módosítom egy textbox értékét. Ha ezután kilépek a programból, a hiba nem jelentkezik, de ha rögtön átmegyek a másik userformra - ahol egyébként nem használom az adott textboxot, akkor hibát jelez. De ez a kisebbik baj, meg tudom kerülni a hibát.

 

2. A súlyosabb, hogy a program egy adatbeadó userformra egyszerűen nem áll rá, pedig a form kódján vagyok. Amikor meg kellene jelenítenie a formot, akkor az egy pillanatra felvillan, majd továbblép, és megáll az egyik használatban lévő munkalapot mutatva. Persze ott van, ha rákattintok az Excel főképernyőre az alsó soron, akkor előjön, de a felhasználótól ezt nem kérhetem-

 

Szerencsére van egy laptopom, amin még meghagytam a Win7/Office 2010 párost. Most elindítottam ezen a programot, és a fenti hibák egyike sem jelentkezik. Van tippetek, hogy mi lehet a megoldás? Így nem merem kiadni a kezemből a programot. Pedig két hét múlva kellene. Talán egy másik szoftvert kellett volna választani, de most már késő bánat.

 

 

Sánta Kutya (SK) Creative Commons License 2020.08.07 0 0 34684

Amikor a farok csóválja a kutyát.

Előzmény: m54-b (34681)
m54-b Creative Commons License 2020.08.07 0 0 34683

Az aposztróf sem rossz. De mond el a tudósoknak és a firkászoknak...

Előzmény: Delila10 (34682)
Delila10 Creative Commons License 2020.08.07 0 0 34682

A cellákat szöveg formátumúra kell állítani, még a megnevezés beírása előtt.

Előzmény: m54-b (34681)
m54-b Creative Commons License 2020.08.07 0 0 34681

Fél off

 

Átneveztek géneket, hogy az Excel ne nézze azokat dátumnak  https://index.hu/techtud/2020/08/07/atneveztek_geneket_hogy_az_excel_ne_nezze_azokat_datumnak/

 

"Íme egy nagyon egyszerű példa: az angolul "Membrane Associated Ring-CH-Type Finger 1" elnevezésű gént egyszerűen csak MARCH1 névre rövidítve emlegették, ami ugye angolul annyit tesz, hogy március 1. A Microsoft Excel pedig van annyira okos, hogy amikor egy dátumot lát az egyik cellában, azt automatikusan formázza nekünk, így a tudományos munkákban a gén neve helyett a dátum angol formája jelent meg: 1-Mar. Ezt viszont, érthető módon, a tudósok nem tudják hova tenni, amikor génekről akarnak diskurálni.

  Egy 2016-os tanulmány a genetikai kutatásokról szóló 3597 tudományos munka egyötödében talált Excel által elkövetett hibákat."

thomas5000 Creative Commons License 2020.08.05 0 0 34680

Ohh, tényleg.

 

Köszönöm.

Előzmény: Fferi50 (34679)
Fferi50 Creative Commons License 2020.08.05 0 0 34679

Szia!

A Range elé tedd oda az adott munkalap nevét is:

Sheets("Munka2").Range("I2").Select  és így tovább.

 

Üdv.

Előzmény: thomas5000 (34678)
thomas5000 Creative Commons License 2020.08.05 0 0 34678

Még lenne egy kérdésem. Azt szeretném elérni, hogy minden lapra ugrásnál egy bizonyos cellára ugorjon.

Tehát.

 

 

 

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B2")) Is Nothing Then Exit Sub
Select Case Target.Value
Case "Alma"
Sheets("Munka2").Activate

Range("I2").Select
Case "Körte"
Sheets("Munka3").Activate

Range("I3").Select
Case "Barack"
Sheets("Munka4").Activate

Range("I4").Select
End Select
End Sub

 

 

Ezt próbáltam, de így nem jó. 1004-es hibát ad. Ezt még meg tudnád mondani kérlek, hogy rakjam bele a makróba?

Előzmény: Fferi50 (34676)
thomas5000 Creative Commons License 2020.08.05 0 0 34677

Köszi szépen!

Előzmény: Fferi50 (34676)
Fferi50 Creative Commons License 2020.08.05 0 0 34676

Szia!

 

A Munka1 kódlapjára másold be ezt (lapfülön jobb egérgomb - kód megjelenítése):

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B2")) Is Nothing Then Exit Sub
Select Case Target.Value
Case "Alma"
Sheets("Munka2").Activate
Case "Körte"
Sheets("Munka3").Activate
Case "Barack"
Sheets("Munka4").Activate
End Select
End Sub

 

Üdv.

Előzmény: thomas5000 (34675)
thomas5000 Creative Commons License 2020.08.05 0 0 34675

*

1. tétel alma

2. tétel körte

3. tétel barack

Előzmény: thomas5000 (34674)
thomas5000 Creative Commons License 2020.08.05 0 0 34674

Szia!

 

Sajnos én nem igazán értek ehhez. Makrórögzítéssel próbálkoztam, de abból nem tudtam érdemi eredményt kivenni, és összerakni a képet.

 

Ha esetleg egy példán keresztül leírnád, hogy ténylegesen mit kell írni, az nagy segítség lenne.

 

Pl.:

 

B2 cellában van egy legördülő lista 3 tétellel

1. tétel alma

1. tétel körte

1. tétel barack

 

Van 4 munkalapom.

 

Alma ugrana a Munka 2-re.

Körte ugrana a Munka 3-re.

Barack ugrana a Munka 4-re.

Előzmény: Fferi50 (34673)
Fferi50 Creative Commons License 2020.08.04 0 0 34673

Szia!

A munkalap Change eseménykezelőjébe kell beírnod a hivatkozott munkalapra ugrást, az adott értéknek megfelelően.

Kevés lehetőség esetén IF -Else, több választási lehetőségnél Select Case elágazással.

Üdv.

Előzmény: thomas5000 (34672)
thomas5000 Creative Commons License 2020.08.04 0 0 34672

Nem ComboBox-os megoldásra gondolok!

Előzmény: thomas5000 (34671)
thomas5000 Creative Commons License 2020.08.04 0 0 34671

Sziasztok!

 

https://www.youtube.com/watch?v=LTWvuIWMbhc

 

Azt szeretném létrehozni, ami ebben a videóban van, csak click nélkül. Tehát ha a legördülő listából kiválasztom valamelyik értéket, akkor az arra a munkalapra ugorjon rögtön, automatikusan, és ne kelljen külön kattintani. Ez gondolom csak makróval megoldható, de nekem az is jó lenne.

 

Ha valaki tudna segíteni, nagyon örülnék.

 

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

Törölt nick Creative Commons License 2020.08.04 0 0 34670

Kell +2 oszlop:

1) Amiben megjelölöd a vásárló nemét. Ezt kézzel ki kell tölteni.

2) Amiben definiálod az időszakot. Ez lehet képlet, ha pl. heti, havi, éves, stb. bontásban szeretnéd látni az adatokat. Esetleg lehet egy oszlop a heti bontásnak, egy a havinak, egy az évesnek, vagy ahogy tetszik.

 

Ha ezek megvannak, akkor már csak egy pivot táblát kell létrehozni, abban sormezőnek az időszakot, oszlopmezőnek a nemet kijelölni, az adat pedig név/darabszám.

 

 

 

Előzmény: Bruenhilda (34669)
Bruenhilda Creative Commons License 2020.08.04 0 0 34669

Sziasztok! Tudnátok ebben nekem segíteni? Kellene egy meglévő excel táblázatból készítenem egy kimutatást, hogy milyen arányban vannak a férfiak nők, és ez változott-e esetleg időszakonként vagy kb állandó? megvannak a nevek és a vásárlási dátumok. Hogy kezdjek neki? Van ötletetek? Köszi a segítséget előre is.

Delila10 Creative Commons License 2020.08.03 0 0 34668

Szivi.

Előzmény: thomas5000 (34667)
thomas5000 Creative Commons License 2020.08.02 0 0 34667

Köszi!

Előzmény: Delila10 (34666)
Delila10 Creative Commons License 2020.08.02 0 0 34666

Nem ez volt először a felállás. A mostani makró a Munka2 lap A2-be beírja az eszközt, amit a Munka1 lap E24 cellájában kiválasztottál. A B2-be a max kerül, a C2-be a név.

 

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim sor As Long, oszlop As Integer

 

    If Target.Address = "$E$24" Then

        sor = Application.Match(Range("E24"), Columns(1), 0)

        For oszlop = 2 To 12

            If Cells(sor, oszlop) = Application.WorksheetFunction.Max(Range("B" & sor & ":L" & sor)) Then

                Sheets("Munka2").Range("A2") = Range("E24")

                Sheets("Munka2").Range("B2") = Cells(sor, oszlop)

                Sheets("Munka2").Range("C2") = Cells(1, sor)

                Exit For

            End If

        Next

    End If

End Sub

Előzmény: thomas5000 (34665)
thomas5000 Creative Commons License 2020.08.02 0 0 34665

Igen, ez valóban jó megoldás, csak az a baj, hogy én egy másik munkalapra szeretném kiíratni a legnagyobb számot, a hozzátartozó névvel.

Előzmény: Delila10 (34664)
Delila10 Creative Commons License 2020.08.02 0 0 34664

A laphoz rendelt makróval is színezhetsz.

 

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim sor As Long, oszlop As Integer

 

    If Target.Address = "$E$24" Then

        Range("A1:L20").Interior.Color = xlNone

        sor = Application.Match(Range("E24"), Columns(1), 0)

        For oszlop = 2 To 12

            If Cells(sor, oszlop) = Application.WorksheetFunction.Max(Range("B" & sor & ":L" & sor)) Then

                Cells(sor, oszlop).Interior.ColorIndex = 43

                Cells(1, oszlop).Interior.ColorIndex = 43

            End If

        Next

    End If

End Sub

Előzmény: thomas5000 (34662)
Delila10 Creative Commons License 2020.08.02 0 0 34663

Megoldás lehet, hogy feltételes formázást adsz a B2:L20 tartományra. Ennek a képlete =ÉS($A3=$E$24;B3=MAX($B3:$L3)), háttérszínt adsz neki.

Az E24-ben kiválasztod a Valamit, mire a sorában elszíneződik a sorban található legnagyobb értéket tartalmazó cella, több esetén több cella.

Előzmény: thomas5000 (34662)
thomas5000 Creative Commons License 2020.08.01 0 0 34662

Nekem a legnagyobb szám kéne a sorban.

 

Tehát pl. valami 1-hez a 8 és a valaki 2 tartozik.

thomas5000 Creative Commons License 2020.08.01 0 0 34661

Köszi, de nekem olyan megoldás kéne, az E24 cella változására, változik a G24 és az I 24 is.

 

Tehát a G24-es képletben nem igazán jó, ha benne van az I24.

 

Szóval nekem két függvény kéne. Egy G24-es és egy I24-es.

 

Tudom, hogy Index, Hol.van-os megoldás kell, de egyszerűen órák óta nem megy.

Előzmény: Delila10 (34660)
Delila10 Creative Commons License 2020.08.01 0 0 34660

 

Klasszikus INDEX-HOL.VAN függvény páros.

A G24 képlete:

=INDEX(A1:L20;HOL.VAN(E24;A:A;0);HOL.VAN(I24;1:1;0))

Előzmény: thomas5000 (34659)
thomas5000 Creative Commons License 2020.08.01 0 0 34659

Sziasztok!

 

Erre valaki tudna megoldást adni nekem?

Az E24 cella változására kéne változnia, a két másik cellának.

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

James 42 Creative Commons License 2020.07.30 0 1 34658

Ha már egyszer feltetted itt a kérdést, akkor azt is elárulhatnád, hogy hogyan. Hátha egyszer erre jár valaki, aki szintén ilyesmit szeretne.

Előzmény: Bangyi54 (34657)
Bangyi54 Creative Commons License 2020.07.30 0 0 34657

Köszönöm a segítséget, megoldottam!:))

Előzmény: Fferi50 (34656)
Fferi50 Creative Commons License 2020.07.29 0 0 34656

Szia!

Alapvetően sehogy... 

Illetve egy egyszerűbb módszer, ha ugyanabban a munkafüzetben vannak,

kijelölöd az eredeti és Ctrl -t használva a másolatot is.

Ezután amit az eredetibe írsz, a másolatban is megjelenik (és vica - versa).

A bonyolultabb:

A másolatban hivatkozásokat hozol létre az eredeti munkalapra (pl. a1 cella  képlete  =eredeti!A1 stb.). Ez használható akkor is, ha a másolat másik munkafüzetbe került, csak akkor a teljes címzést kell használni, amit tartalmazza a munkafüzet nevét is.

Ámde a teljes tartományt át kell hivatkozni celláról-cellára! (illetve a képletek természetesen maradhatnak, azoknak a másolatra kell hivatkozniuk - kivéve ha azt is változtatni akarod - ez sajnos nem megy, csak az értéket veheted át, a képletet nem).

Még bonyolultabb:

Makró, ami a változásokat eseménykezelővel átmásolja a másolatba is. Ez megy azonos és eltérő munkafüzetben is.

Üdv.

Ps. Miért nem jó az, ha a változásokat átvezetve az eredetin, utána ismét csinálsz róla egy új másolatot a régi helyett???

Előzmény: Bangyi54 (34655)
Bangyi54 Creative Commons License 2020.07.29 0 0 34655

Hogyan tudom megoldani azt, hogy egy munkalapot másolva, az eredeti munkalapon történt módosítás megjelenjen a másolt munkalapon is? Köszönettel Bangyi54

Fferi50 Creative Commons License 2020.07.23 0 2 34654

Szia!

Mindig tanul az ember. Hol gyorsan, hol lassabban. :)

Köszönjük, hogy megosztottad velünk az információkat.

Üdv.

Előzmény: pimre (34653)
pimre Creative Commons License 2020.07.23 0 0 34653

Elnézést kérek mindenkitől ezért az egészért. Az én hülyeségem volt az oka. Abban a tévhitben voltam, hogy a Format és a Numberformat használata során azt a tizedesjelet kell a parancsban használni, ami a gépen be van állítva az adatbeadáshoz. Sok órai felesleges munka és a zaklatásotok után jöttem rá, hogy a kódszövegben a tizedes jelölője fixen a pont. Innen voltak a zavarok, nem a TextBoxokban.

 

Előzmény: Törölt nick (34651)
pimre Creative Commons License 2020.07.21 0 0 34652

Most épp az ellenkezője a probléma. A 34643-ban írtam, talán kicsit pontatlanul fogalmazva, hogy " Szeretném a programomat hordozhatóvá alakítani, azaz függetlenné tenni az adatok kiírását, beolvasását és editálását attól, hogy milyen tizedesjel van beállítva a gépen."

Azt akartam megfogalmazni, hogy az adott gép beállításait tudja használni a felhasználó.

 

Annyit már látok, hogy a Registryt békén hagyhatom. Viszont azt is tapasztalom, hogy ha az Excel beállítás tizedesvessző, akkor nem tudom igazán kezelni az adatok számként való kiírását és onnan való visszaolvasását. Éppen azért számként, hogy a munkalapon a beállítás szerinti formában jelenjen meg az adat.

 

Köszönöm a javaslatot a CStr-re, meg fogom próbálni.

Előzmény: Törölt nick (34651)
Törölt nick Creative Commons License 2020.07.21 0 0 34651

Régen elvesztettem a fonalat, de már az elején is azt gondoltam, hogy kellene írnod egy függvényt, ami a textboxba írt, numerikus jelentéstartalmú szöveget számmá átalakítja, bármilyen tizedesjel is van ott éppen, és akkor tudsz az értékkel tovább dolgozni. Amikor pedig textboxban jelenítesz meg egy numerikus értéket, akkor a CStr függvényt kellene használni.

 

34628-ban írod: "Jobban szeretem a tizedespontot használni vessző helyett." Nekem úgy tűnik, hogy ez a mondat generálja az egész problémát, és ha jól értelmezem a szavaidat, akkor egységesíteni szeretnéd a tizedesjelet, függetlenül attól, hogy az illető gépén mi az aktuális konfig. Ennek szerintem van egy kockázata. A programod végfelhasználója ugyanis a saját gépén fogja használni, egy olyan gépen és olyan billentyűzettel és olyan területi beállításokkal, amilyet megszokott. Aki magyar beállításokat használ, nem fogja elvárni, hogy pont legyen a tizedesjel, és talán szeretni sem, ha ebbe belekényszeríted.

 

 

Előzmény: pimre (34650)
pimre Creative Commons License 2020.07.20 0 0 34650

Visszatérek az adatkiírási és beolvasási problémámhoz. Ugyanis nem tartom jó megoldásnak, amit kínomban alkalmaztam, azaz, hogy a Registry tizedesbeállítást módosítom a futás idejére. Mások fel is hívták a figyelmet arra, hogy ez nem DOS, ahol a program befejezéséig nem tud a felhasználó más feladatba fogni. Itt menet közben elkezdhet mást nézni, és ott bizony zavaró lehet a módosított beállítás.

 

Ezért írtam egy tesztprogramot, amiben megpróbáltam a különböző registry és applikációs beállítások mellett megnézni, hogy miként sikerül kiírni munkafüzetbe, majd visszaolvasni egy textbox értékét. A program innen tölthető le: https://drive.google.com/file/d/1Nkx8CzBKj45IZaF_VB_qzUum-nKPiIcZ/view?usp=sharing 

 

A program a következőképp néz ki:

 

A Registry, vagy az Excel tizedesjel beállítását a csere erre: melletti boxban lehet módosítani. Beleállva a pont, vagy a vessző (ad abszurdum más karakter) lenyomására azonnal érvényesül a változás, amit aztán befejezéskor vissza lehet állítani, vagy megtartani. Ld. a kétféle befejező gombot. 

A lényeg, hogy egy tizedesszám (ponttal, vagy vesszővel egyaránt tesztelhető) beírása után a program kétszer háromféle eredményt ír ki. Az első sorban a format függvénnyel fixen a tizedesponttal "0.00", majd az applikáció (Excel) szerinti tizedesjellel, végül a rendszer szerinti tizedesjellel formázza a TextBox adatát, és írja ki a munkalapra. Ha valamelyik vessző, akkor a formátumkódja: "0,00"   

Az alatta lévő sorban a TextBox valorizált értékét írja ki, majd a cellát formázza a Numberformat Property segítségével a fentivel azonos módon.

 

Érdekes, hogy a legrosszabb eredményt akkor kapom, ha mind a Registry, mind az applikáció szintű tizedesjel vessző. Ekkor nem sikerül használható eredményt kapnom.

 

Annyit azért már látok, hogy a Registry módosítását elhagyhatom. Ha az Excel tizedesjegyét állítom csak pontra, és a program futtatása során pontot használok tizedesjelként, az jobb híján elfogadható kompromisszum.

 

De azért kíváncsi vagyok, hogy szerintetek van-e olyan megoldás, amivel még az Excel beállításait sem kell piszkálnom. 

 

Előzmény: pimre (34648)
James 42 Creative Commons License 2020.07.15 0 0 34649

Kérdésedre válaszolva: bizonyos dolgokban lehetnek különbségek, például a 32 és 64 bites verziók között, de ebben valószínűleg nincs eltérés. Az egyik kollégámmal most néztük meg egy 32 bites XP-n és egy 64 bites W10-en, és mindkettőben megvolt ott ez a kulcs és változó.

Előzmény: pimre (34648)
pimre Creative Commons License 2020.07.15 0 0 34648

Nekem ez sem jön be, mindenféle értékelési zavarok keletkeznek.

Ügy látom, hogy hiába az Excel tizedes beállítások, a Textboxok ezeket figyelmen kívül hagyva a Registry beállításaiból dolgoznak.

 

Ezért a következő - meglehetősen veszélyes - megoldást alkalmaztam:

 

Dim regtj as String ' A Registry szerinti tizedesjel

regtj = CreateObject("WScript.Shell").RegRead("HKCUControl PanelInternationalsDecimal")

If CreateObject("WScript.Shell").RegRead("HKCUControl PanelInternationalsDecimal") <> TIZEDESJEL Then

    CreateObject("Wscript.Shell").RegWrite "HKCUControl PanelInternationalsDecimal", TIZEDESJEL, "REG_SZ"

End If

 

Majd kilépéskor

 

If CreateObject("WScript.Shell").RegRead("HKCUControl PanelInternationalsDecimal") <> regtj Then

    CreateObject("Wscript.Shell").RegWrite "HKCUControl PanelInternationalsDecimal", regtj, "REG_SZ"

End If

 

Most már csak egyet nem tudok. Lehet-e az egyes Windows verziók között különbség a Registry elérésében?

Előzmény: Fferi50 (34645)
pimre Creative Commons License 2020.07.15 0 0 34647

Ezt köszönöm. Ki fogom próbálni. Lesz vele gond így is, mert elég sok boxot érint. Ráadásul a visszaolvasásnál is figyelni kell, hogy a megfelelő számot kapom-e vissza a számításokhoz. Mindenesetre eljátszadozom majd vele. Még azt sem tudom, mi lesz, ha módosítom.  Azt hogyan kezeli. De nem látok más megoldást egyelőre.

 

Előzmény: Fferi50 (34645)
pimre Creative Commons License 2020.07.15 0 0 34646

Bocsánat, most megnéztem a klónozáshoz, és kiderült, hogy elnéztem. Egyetlenegy sincs, amelyik jól működik, ha a tizedesjel nem pont. Csak az egéseknél hozta a 0 értékű tizedest. Erre hittem, hogy jó.

Előzmény: Fferi50 (34644)
Fferi50 Creative Commons License 2020.07.14 0 0 34645

Szia!

Másik ötlet:

Az Application.DecimalSeparator értékétől függően változtasd a Textbox.Text tulajdonságát:

pl.

Private Sub TextBox1_Change()

If Application.DecimalSeparator = "." Then
Me.TextBox1.Text = Replace(Me.TextBox1.Text, ".", ",")
End If

End Sub

Persze arra figyelj, hogy ez így elfogad több pontot is és vesszővé alakítja, tehát azt is meg kell nézni, hogy van-e már tizedesvessző benne.

 

Üdv.

Előzmény: pimre (34643)
Fferi50 Creative Commons License 2020.07.14 0 0 34644

Szia!

Én a helyedben megpróbálnám klónozni azt a Textboxot, amelyik "engedelmesen" működik. 

Talán egyszerűbb, mint végighámozni az összes tulajdonságot.

Üdv.

Előzmény: pimre (34643)
pimre Creative Commons License 2020.07.14 0 0 34643

Újabb gond. Szeretném a programomat hordozhatóvá alakítani, azaz függetlenné tenni az adatok kiírását, beolvasását és editálását attól, hogy milyen tizedesjel van beállítva a gépen.

Részben kezd rendben lenni a dolog. Ha váltok pontról vesszőre, vagy vissza, a számként kiírt adatok a megfelelő módon jelennek meg a munkalapokon. (Azzal most nem foglalkozom, hogy a felhasználó más karaktert is használhat, hiszen ilyenkor a kérdés úgy fogalmazódik át, hogy pont, vagy más)   

 

Viszont amikor TextBoxokba olvasom be az adatokat, akkor van némi következetlenség. Van olyan TextBox, amelyik engedelmesen ponttal, vagy vesszővel veszi be az adatokat a beállítástól függően. Viszont van olyan, amelyik ponttal rendben dolgozik, a vesszőt viszont nem hajlandó tudomásul venni. Mindenképp ponttá alakítja.

 

A forrás adatokat számokként írom ki a munkalapra, ahonnan TextBoxba olvasom. Megpróbáltam nem közvetlenül a munkalapról olvasni, hanem közbeiktattam egy single típusú változót. Abba helyes formátumba olvastam be az adatot. De amint ezt az értéket adtam át a Boxnak, a tizedesjel azonnal visszaváltott pontra.

 

Keresgélek az interneten, találok hasonló problémát, de megoldást nem. (A javaslatok köz szerepel olyan, hogy az ezres elválasztó ne legyen azonos a tizedessel, de ilyen nálam nincs)

 

Van esetleg a TextBoxnak valami olyan tulajdonsága, hogy milyen decimális elválasztót használ?

 

u.i: Most éppen rátaláltam a TextBox.Format Property -re, de az csak Access-re vonatkozik. 

 

Előzmény: pimre (34642)
pimre Creative Commons License 2020.07.09 0 0 34642

Megvan a megoldás. Ismét egy sok évvel ezelőtti hasonló gond ötlött fel. Akkor is Jimmy találta meg a megoldást egy Listbox elhagyási probléma kapcsán. Ott is a KeyPress volr a hiba okozója. És a KeyUp vizsgálata megoldotta a gondot. (http://forum.index.hu/Article/viewArticle?a=128325944&t=9009340)

Itt is ez lett a megoldás. Akár a KeyUp, akár a KeyDown eseményt használom helyette, rendben működik a program.

Előzmény: pimre (34641)
pimre Creative Commons License 2020.07.09 0 0 34641

Egy számomra megmagyarázhatatlan jelenség:

 

Egy ListBoxból választok. A doubleclick választással rendben lefut a program, billentyűzetről Entert nyomva a KeyPress eseményt követő End Sub-ra visszaérve Automation Error hibával leáll.

 

A meghívott cmdKivalaszt részlet lényegében előkészít egy újabb ListBoxot, ahol ki lehet válogathatni néhány egyéb figyelembe veendő tényezőt, majd annak a másik ListBoxnak a setfocus parancsával ér véget, és ide visszatérve kellene megjelennie.

 

Private Sub lstListatip_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii <> 13 Then Exit Sub
   cmdKivalaszt_Click
End Sub ' Itt akad el Automation Error hibával

 

Private Sub lstListatip_DblClick(ByVal Cancel As MSForms.ReturnBoolean) 
cmdKivalaszt_Click
End Sub

 

Nem tudom, hogy ennyiből meg lehet-e tippelni a hiba lehetséges okát. A meghívott részlet elég terjedelmes, tartok tőle, hogy nem igazán lenne követhető, ezért nem másoltam be.

Törölt nick Creative Commons License 2020.07.08 0 0 34640

Köszönöm, sajnos egyik se jó, de megvan a jó megoldás:

Aposztrófjelet tenni mindegyik elé, majd szövegformátumra áttenni a cellákat.
:-)))

Előzmény: Eredő Vektor (34638)
Eredő Vektor Creative Commons License 2020.07.06 0 0 34639

bocsi, a 2. pontnál lehet, hogy így kell:

SZÖVEG(DÁTUM(ÉV(dátumod);HÓNAP(dátumod); NAP(dátumod));"éééé.hh.nn"))

Előzmény: Eredő Vektor (34638)
Eredő Vektor Creative Commons License 2020.07.06 0 0 34638

Pár lehetőség:

1. Tegyél elé aposztrófjelet

2. SZÖVEG(dátumod;"éééé.hh.nn")

3. Szövegformátumra állítsd a cellát (ha már van benne dátum, akkor bele kell enterezni, vagy szövegből oszlopok funkcióval is használható erre tömegesen)

Előzmény: Törölt nick (34637)
Törölt nick Creative Commons License 2020.07.06 0 0 34637

Tudja valaki, hogyan lehet dátumot karakterre konvertálni, hogy megmaradjon a dátum?

pimre Creative Commons License 2020.07.05 0 0 34636

Nálam eleve telepítve van az US angol billentyűzet, és azzal működik a dolog.

Viszont attól tartok, hogy nem fogom tudni használni, mert a programot előbb-utóbb kiadom a kezemből, és nem garantálható, hogy minden gépen, telepítve van az US Angol. Ráadásul nem tudom, megoldható lenne-e a programból csak arra a feladatra átkapcsolni, ahol a számadatok beadása történik, mert egyéb helyeken meg szükség lehet a magyar ékezetes karakterekre.

 

Tehát mégiscsak meg kell maradnom a change eseményben történő kezelésnél Fferi javaslata nyomán.

Előzmény: Törölt nick (34632)
_Nyuszi Creative Commons License 2020.07.05 0 0 34635

Szia!

 

https://en.wikipedia.org/wiki/International_Article_Number#Check_digit

 

Erre gondolsz?

Első körben vegyél fel annyi segédoszlopot, amennyi karakterből áll a vonalkódod, és a KÖZÉP függvénnyel bontsd szét őket egyes számjegyekre, majd faék-egyszerűen szorozd össze a konstansokkal (1 és 3) az egyes számokat. A végén, a "mennyi kell a következő 10-eshez" pedig két módon lehet: vagy leosztod maradék nélküli (egészrészre lefelé kerekítve) 10-zel (pl. 89/10=8), ehhez hozzáadsz egyet (8+1=9) és beszorzod 10-zel (9*10=90), majd az eredeti számot kivonod ebből (90-89=1), vagy két egymásba ágyazott HA párossal (HA függvénnyel azt hiszem, 7-et tudsz egymásba ágyazni, úgyhogy két felé kell választanod: praktikusan 5 és annál kisebb, 5-nél nagyobb utolsó számjegy alapján), majd egymásba láncolni őket..

Vagy keresel a neten egy makrót, ami végigszámolja. :)

Előzmény: Silver-Joe (34634)
Silver-Joe Creative Commons License 2020.07.05 0 0 34634

Sziasztok,

 

Segítséget kérek, mert szükségem lenne egy excel fájlra a munkámhoz, ahol EAN13 kódot kellene generálnom, azaz a 12 karakterhez az ellenőrző számot kellene hozzáadni.

Jelenleg egy free weboldalon szoktam elkészíteni, de most olyan feladatot kaptam, hogy 120-130 ilyen számot kellene generálni, amit jó lenne úgy, hogy egy oszlopba beírom az excelben és a mellete lévő oszlopba generálná a kódot. 

Hatalmas segítség lenne, és előre is köszönöm.

Kellemes napot mindenkinek!

 

pimre Creative Commons License 2020.07.03 0 0 34633

Nagyon köszönöm.Meg fogom próbálni, és jelenkezem az eredménnyel.

Előzmény: Törölt nick (34632)
Törölt nick Creative Commons License 2020.07.02 0 0 34632

Persze ehhez előbb telepíteni kell az US angol billentyűzetet. Ha másik fajta angol billentyűzetet telepítesz, annak más lesz a kódja. Azt a kódot megtalálod ezen a linken, a legfrissebb doksiban:

https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/70feba9f-294e-491e-b6eb-56532684c37f

 

Előzmény: Törölt nick (34631)
Törölt nick Creative Commons License 2020.07.02 0 0 34631

Esetleg, a form aktiválásakor állítsd át a billentyűzetet angolra, és akkor eleve pontot fog írni. Aztán mikor bezárod a formot, állítsd vissza magyarra.

 

#If Win64 Then
    Private Declare PtrSafe Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As LongPtr, ByVal Flag As Long) As LongPtr
#Else
    Private Declare Function ActivateKeyboardLayout Lib "user32.dll" (ByVal HKL As Long, Flag As Long) As Long
#End If
 
Private Const ENG = 1033 'English(US) keyboard language layout
Private Const HUN = 1038 'Hungarian keyboard language layout

Private Sub UserForm_Initialize()
    Call ActivateKeyboardLayout(ENG, 0)
End Sub

Private Sub UserForm_Terminate()
    Call ActivateKeyboardLayout(HUN, 0)
End Sub

 

Előzmény: pimre (34630)
pimre Creative Commons License 2020.07.02 0 0 34630

Köszönöm az ötletet. Nem jutott eszembe az a megoldás, hogy engedélyezzem a számoknál a vesszőt, és rögtön transzformáljam. Meg fogom próbálni ezt.

Előzmény: Fferi50 (34629)
Fferi50 Creative Commons License 2020.07.02 0 0 34629

Szia!

Szerintem a form az egy külön világ (lásd - eseménykezelés letiltás hatástalan).

Sajnos szerintem kénytelen leszel eseménykezelést írni.

Bár kicsit nem értem a kérdést: Ha a textboxba számokat írsz, akkor ott csak a pont lehet tizedesjel, ha vesszőt írsz oda, akkor az utána levő számokat már nem veszi figyelembe.

Szerintem talán egyszerűbb lenne a textboxból kilépéskor átalakítani a vesszőt ponttá.

Esetleg a Textbox Change eseményben átalakítani a vesszőt ponttá és akkor már úgy is jelenik meg. (Textbox1.Text=Replace(Textbox1.Text,",","."))

Üdv.

Előzmény: pimre (34628)
pimre Creative Commons License 2020.07.02 0 0 34628

Egy újabb kérdés. Jobban szeretem a tizedespontot használni vessző helyett. A területi beállításoknál ez az alapértelmezésem, az Excelben is.

Amikor egy cellába adatot írok be, akkor használom a numerikus billentyűn lévő vesszőt, és a cellába pontot ír.

Viszont ugyanez nem történik meg, ha Formon textboxba szeretnék adatot beírni, így nem tudom használni a numerikus billentyűzetet. Asztali gépről van szó, laptopon nem jön szóba nálam az Fn billentyűvel kombinált "numerikus" billentyűzet használata.

 

Van rá megoldás, hogy automatikusan pontnak tekintse azt a vesszőt is? Elvileg szóba jöhetne a KeyPress esemény használata, de jobban örülnék, valami automatikus megoldásnak. Akkor nem kellene minden textboxhoz külön megírni az eseményt.

pimre Creative Commons License 2020.06.28 0 0 34627

Köszönöm.

Előzmény: Fferi50 (34626)
Fferi50 Creative Commons License 2020.06.28 0 0 34626

Szia!
Szerintem a Shift paraméternek akkor van jelentősége, ha nem egész oszlopot vagy sort szúrsz be, hanem csak cellákat. Ebben az esetben arra ad utasítást, hogy a meglevő cellákat lefelé (xlShiftDown) vagy jobbra (xlShiftToRight) tolja el.

Egész soroknál - oszlopoknál egyértelműen mindig az adott sor/oszlop elé szúr be, a Shift paraméter tulajdonképpen nem is szükséges ekkor, ha makrót rögzítesz, ki is hagyja.

Üdv.

Előzmény: pimre (34625)
pimre Creative Commons License 2020.06.28 0 0 34625

Köszönöm, de a megoldás rögtön szült egy kérdést. Milyen esetben lehet a shift megadásának jelentősége?

 

Én most próbálgattam, és azt látom, hogy akár elhagyom, akár xlDown-ra módosítom, ugyanúgy hátratolja a célsort követő sorokat. Ami logikus is egy sor beszúrásnál.

Előzmény: Delila10 (34624)
Delila10 Creative Commons License 2020.06.28 0 0 34624

Ez az aktuális lap 7.sorát kivágja, a másik lap 10.sora fölé beszúr egy sort, és oda másolja az előzőleg kivágottakat.

 

Rows(7).EntireRow.Cut
Sheets("Munka2").Range("A10").EntireRow.Insert Shift:=xlUp

Előzmény: pimre (34623)
pimre Creative Commons License 2020.06.28 0 0 34623

Egy másik kérdés. Sor áthelyezést nem lehet megoldani select nélkül? A kivágást sikerült, a beillesztésre nem találtam más megoldást:

 

ws.Rows(forrassor).EntireRow.Cut
ws.Rows(celsor).Select
ws.Paste

 

pimre Creative Commons License 2020.06.27 0 0 34622

Megoldódott. A pontos okot nem tudom, mindenesetre kicsit átrendeztem a ListBox elem kiválasztás technikáját.

 

1. Elhagytam az Afterupdate-et.

2. Létrehoztam egy cmdKivalaszt elnevezésű CommandButtont

3. A doubleclick-et megtartottam. Rejtélyes módon most elfogadja. Sőt csak azt. A Click-re csak rááll a kiválasztott elemre. Ami egyébként is a szándékom volt

4. A doubleclick, vagy a billentyűzetről beadott Enter közvetlenül ugrik a cmdKivalaszt_Click eseményre (Ezt a megoldást Te javasoltad néhány éve, egy másik programban, amikor szintén valami gondom volt a ListBox-al.

 

Azt, hogy pontosan mitől lett most elfogadható a doubleclick, azt nem tudom, mindenesetre megoldotta a problémát.

 

Köszönöm, hogy foglalkoztál vele.

 

Más: A TabStrip control-t nem ismertem, majd megnézem, hogy az én feladatomra alkalmazható-e.

 

 

Előzmény: pimre (34621)
pimre Creative Commons License 2020.06.27 0 0 34621

Bocs, hogy nem sikerült teljesen érthetően leírnom a dolgot.

Kezdem azzal, hogy a CommandBox természetesen téves volt, valóban CommandButton a vezérlő, amire esetenként rátéved a vezérlés a második Click után.

 

doubleclick eseményt eredetileg nem akartam használni, inkább csak annak az ellenőrzésére tettem be, hogy ha a felhasználó dupla kattintással választ ki egy elemet a ListBoxból, akkor erre ráugrik-e a vezérlés. Kiderült, hogy nem, így erre nem is lesz szükség.


/Egyébként nálam  a kurzoros lépegetés nem váltja ki a Click eseményt, csak a listindex-et . Ezt ki is használom arra, hogy a lista alatt megjelenítsek egy egysoros magyarázatot arról, hogy az adott elem választásakor milyen feladatot fog elvégezni a program (itt listák összeállításáról van szó, ami lehet összesítő táblázat, részletes lista, ugyanezek kiegészítve még egy szempont szerinti értékeléssel). Ez az egész persze a problémám lényegét -a Click kezelését - nem érinti/


"Meg ha jól értem, olyan sok control-od van a userformon, hogy hol egyiket, hol másikat kell megjeleníteni, mert egyszerre nem fér el az összes." Nem azért, mert nem fér, hanem egy Formnak a kódja több különböző képernyőt tartalmaz. És ennél csak az adott képernyőhöz tartózó vezérlők kerülnek megjelenítésre.  


Valahogy így működik a dolog: Van egy menü CommandButton-okból összerakva, amiben a felhasználó kiválasztja a feladatot (Adatok kitöltése, Adatok listázása, Eredmények értékelése, Kilépés a feladatból stb). Aztán amikor kiválaszt valamit, akkor új képernyő jön. Például az értékelés választásánál az ominózus ListBox az elkészítendő lista típusának kiválasztásával. És ha itt kiválasztotta a kívántat, akkor a program elvégzi a feladatot, majd visszatér a behívó menübe. És ekkor léphet működésbe a második - nem kívánt - Click.

/Megjegyzés: A képernyőkön a választható eszközöket (CommandButton és ListBox) centralizálva helyezem el, mert így elegáns, és függőlegesen is igyekszem arányosan elhelyezni őket, ezért fordulhat elő, hogy két különböző képernyőn azonos helyre kerül két egy-egy vezérlő)  


Nem tudom érthetőbb-e, vagy csak rontottam a helyzeten. De csatolok két képet, hátha segít. A második képen látszik, hogy az utolsó két választás a képernyő azonos pontjára esik, mint a bal oldali képen az adatok listázásának választása. És erre is ugrik a felesleges második click. Az első két elem választásakor nem történik semmi.

 

A lényeg, hogy az nem zárható ki, hogy a felhasználó duplaklikkel akarjon kiválasztani egy listaelemet. Viszont ilyenkor kellene tudni érvényteleníteni a felesleges másodikat az After (vagy before) Update-ban. Ez jelentené a megoldást, amire nincs ötletem.

 

Előzmény: Törölt nick (34620)
Törölt nick Creative Commons License 2020.06.27 0 0 34620

Hát, nem teljesen értem.

Pl. nem vágom, hogy mire használod a doubleclick eseményt, ha egyszer az AfterUpdate végzi a user input kiértékelését.

Az Afterupdate lejátszódik sima Click után is, meg a kurzoros lépegetésnél is. Sőt én úgy tapasztalom, hogy a kurzoros lépegetés is kiváltja a Click eseményt, majd BeforeUpdate-et, majd AfterUpdate-et is.

 

Másrészt, kattintani csak arra tudsz, ami felül van. Ha a listbox a CommandButton tetejébe van rakva, akkor elvileg nem tudsz a buttonra kattintani. (Ugye CommandButtont akartál mondani, nem CommandBox-ot? Mert a commandbox ismeretlen számomra.) A Listbox-ot tehát csak akkor kellene eltüntetni, amikor már nincs több kattintás. Ha a DoubleClick-et a Listbox eltüntetésére akarod használni, akkor a DblClick eseménykezelő végére kell rakni a Listbox.Visible = false dolgot.

 

Meg ha jól értem, olyan sok control-od van a userformon, hogy hol egyiket, hol másikat kell megjeleníteni, mert egyszerre nem fér el az összes. Ez esetben miért nem használsz inkább TabStrip control-t ?

 

De nem tudom. Nehéz így, látatlanban, félig sem értve...

Előzmény: pimre (34619)
pimre Creative Commons License 2020.06.27 0 0 34619

Most kipróbáltam. Az általad írt tesztkörnyezetben hasonlóan működik nekem is (annyi kis különbséggel, hogy az aktív elemre (A) kattintva is click+DblClick fut le, de ez itt talán nem érdekes.

Az én programomban annyi az eltérés - talán ez okozza a gondot -, hogy a UserForm_Initialize előkészíti ugyan a Listbox-ot, de előbb egy commandBoxokból álló  menüt mutat, és csak ennek egyik elemére kattintva ugrik a program arra az eseményre, ahol a  Listboxot működésbe hozom: Visible=true és ListIndex = 0 beállítással, majd az End Sub után megjelenik a lista.

Cursor mozgatásra a listában lépkedni lehet, és a change esemény segítségével aktuális  listaelemhez tartozó magyarázat jelenik meg a lista alatt elhelyezett Label.captionban. 

Ha választott, akkor az AfterUpdate olvassa ki a listindex értékét, és küldi majd el a megfelelő feladat elvégzésére. Ez egyelőre még nincs kész, ezért kihagyom, és - mintha elvégezte volna a feladatot - küdlöm újra az elejére, a UserForm_Initialize-ra. 

 

Itt jön bizonyos esetekben a gond. AZ ismétlődő Click csak akkor okoz gondot, ha a listbox menü képernyőpontja (ahol választottam) egybeesik az Initialize menü egyik olyan pontjával, ahol éppen egy menüpont helyezkedik el. Mert ekkor a második Click ezt a menüpontot indítja. Ha üres területre juk a második click, akkor nem csinál semmit.

 

Ez most kicsit bonyolultra sikerült, de remélem érthető. Ha nem, akkor megpróbálok képernyőfotókat készíteni róla.

Előzmény: Törölt nick (34617)
pimre Creative Commons License 2020.06.26 0 0 34618

Kösz, egyelőre annyit tudok, hogy mielőtt írtam, a Doubleclick esemény első sorába tett breakpoint nem állította meg a programot. Most el kell mennem, és este , de lehet, hogy csak holnap újra ellenőrzöm a jelenséget.

Előzmény: Törölt nick (34617)
Törölt nick Creative Commons License 2020.06.26 0 0 34617

Kreáltam egy egyszerű tesztkörnyezetet, ezzel a háttér kóddal:


Private Sub ListBox1_Click()
    Debug.Print "click"
End Sub

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Debug.Print "doubleclick"
End Sub


Private Sub UserForm_Initialize()
    With ListBox1
        .AddItem "A"
        .AddItem "B"
        .AddItem "C"
    End With
End Sub

 

És azt tapasztaltam, hogy ha a listában az aktív elemre duplakattintok, akkor simán a DblClick esemény fut le.

Ha viszont nem az aktívra, hanem bármely másikra duplakattintok, akkor előbb egy Click, majd azt követően egy DblClick esemény is lefut, reprodukálhatóan, mindig ebben a sorrendben.

Biztos, hogy esetedben két független Click esemény fut le?

Előzmény: pimre (34616)
pimre Creative Commons License 2020.06.26 0 0 34616

Van egy Listboxom egy Userformon. A rajta lévő elemek kiválasztásakor a DoubleClick-et érthetetlen okból nem veszi be, hanem két egymást követő kattintásnak veszi. Így az első click után végrehajtja a feladatot, majd annak végeztével egy másik menübe kerülve a második click-et végrehajtva elindít egy nem kívánt feladatot.

Hogy tudnám aktiválni a Private Sub lstListatip_DblClick(ByVal Cancel As MSForms.ReturnBoolean) eseményt, vagy hogyan tudnám érvényteleníteni a második Click-et? Utóbbit próbáltam DoEvents-el, Application.Wait beiktatásával, de egyik sem eliminálta a felesleges click-et

Eredő Vektor Creative Commons License 2020.06.23 0 0 34615

Vagyis... mégse :((((

Nem jól működik :(

Előzmény: Eredő Vektor (34614)
Eredő Vektor Creative Commons License 2020.06.23 0 0 34614

Ne foglalkozzatok ezzel, megoldottam.

Előzmény: Eredő Vektor (34613)
Eredő Vektor Creative Commons License 2020.06.23 0 0 34613

Az A1 cella alapján kell generálni a G:H oszlopba olyan intervallumokat, amelyekből az A1 cellában látható negatív intervallumok (D:F) kimaradnak.

Például a 6-8 sorban a 7-8 sor olyan negatív intervallum, amit a 6 sor tartalmaz. Így a D:F oszlopban ezek kihagyásával van meghatározva a tól-ig.

 

(Közben dolgozom rajta, egész jó játék...)

 

A megvalósítás formája mindegy, a végeredmény a lényeg. Tehát az intervallumok a negatívot kivonva fedjék le a teljes (a példán az A1) tartományt átfedések nélkül.

Előzmény: Fferi50 (34612)
Fferi50 Creative Commons License 2020.06.22 0 0 34612

Szia!

Bocs, de most így nem értem a kérdést. Melyik cellák képletét szeretnéd? Vagy az A1 cella "felbontása" kellene?

Üdv.

Előzmény: Eredő Vektor (34611)
Eredő Vektor Creative Commons License 2020.06.22 0 0 34611

Szia,

Ez a része megoldott - mondjuk én sokszor() fgv-el csináltam érték fgv-be ágyazva. Persze a tiéd jobb.

Egyszerűen a intervallumos részét nem tudom jól átgondolni és lefordítani...

A lényeg ez lenne:

letölthető minta:

https://www.dropbox.com/scl/fi/f8q1zrh1vetrj8phympw9/Munkaf-zet1.xlsx?dl=0&rlkey=xm9psxg1t8vent5qesvu0tkd5

Előzmény: Fferi50 (34610)
Fferi50 Creative Commons License 2020.06.22 0 0 34610

Szia!

Erről a képletről mi a véleményed:

Tól:

=A1*HATVÁNY(10;8-HOSSZ(A1))

Ig:

=(A1+1)*HATVÁNY(10;8-HOSSZ(A1))-1

Természetesen HA függvénnyel megnézzük előtte, hogy mennyi az alapszámunk hossza, ha 8 akkor változatlanul beírjuk.

Üdv.

Előzmény: Eredő Vektor (34609)
Eredő Vektor Creative Commons License 2020.06.22 0 0 34609

Sziasztok,

intervallumképzés...

Kellemes, algoritmizációs feladat :)

30000000+34000000+341-34100099+348-341003+3401

 

Meg kell határozni -tól -ig értéketeket a fenti képlet szerint.

Az intervallumnak fednie kell a megadott tartományt az alábbiak szerint:

 - A negatív előjelűeket ki kell hagyni az intervallumból, mert átfedéssel ráfednek a pozitív számokra.

 - A nem 8 karakteres számokat fel kell bővítni 8-8 karakteressé.

Tehát ("-" = "tól")

341 = 34100000 - 34199999

348 = 34800000 - 34899999

3401 = 34010000 - 34019999

 

és a többi... univerzális előfordulással...

Ami 8 karakteres, annak nincs intervalluma. Tehát 30000000 = 30000000 - 30000000

Én megcsináltam erre a példára, de eléggé favágós, nem kipróbált és nem 100% univerzális. :(

Nagyon kíváncsi vagyok, más ezt hogy képezné le, vagy egyáltalán merre érdemes elindulni...

Delila10 Creative Commons License 2020.06.21 0 0 34608

Szívesen, szívesen, és szívesen. :)

Előzmény: Ezoverzum (34607)
Ezoverzum Creative Commons License 2020.06.21 0 0 34607

Nagyon nagyon nagyon köszönöm!!!

Ezt már kedvemre alakítgathatom és ahogy elnézem a megoldást nekem ez eszembe se jutott volna, hogy így több lépcsős legyen és kombinált.

 

és újra csak azt mondhatom, hogy köszönöm

Előzmény: Delila10 (34606)
Delila10 Creative Commons License 2020.06.21 0 0 34606
Előzmény: Ezoverzum (34605)
Ezoverzum Creative Commons License 2020.06.21 0 0 34605

:) igen és nagyon köszönöm. nekem csak a fapados megoldások mennek és a hét.napja függvénnyel most ismerkedem (eddig nem sok sikerrel.

Szóval próbálkozom és amit hamarabb megértek az fog menni.

Gondolom aki fekete öves excel-ben annak ezek triviális problémák.

köszönöm a türelmet és a megértést.

 

Előzmény: Fferi50 (34602)
Ezoverzum Creative Commons License 2020.06.21 0 0 34604

Köszönöm a segítséget de béna vagyok és még több info kellene

Feltételes formázáskor melyik szabálytípusnál és azon belül hova kell ezt beírni?

Van még egy nagyon laikus kérdésem is: az excel táblázatban van 12 oldal (minden oldal 1 hónap) szeretném ha az első oldalra beírom, hogy 2020.01.01 akkor az összes oldalon a megfelelő hónap szerint kitöltené a többi napot magától.

Ezt most egy egyszerű fapados megoldással csináltam meg, hogy minden nap hivatkozik az előtte lévőre és hozzáadok plusz 1et.

Most el is megy de idén szökő év van és ha másik évet írok be akkor van olyan hónap napja ami eltolódik a másik hónap elejére.

Van erre is valami ötleted?

Előre is és utólag is köszi

Üdv

Előzmény: Eredő Vektor (34603)
Eredő Vektor Creative Commons License 2020.06.21 0 0 34603

Dátumformátum beállítható a hét napjára is. Pl. "nnnn".

Ez jól használható a SZÖVEG() függvényben is. Ezzel lehet a feltételes formázást is megszabni, a hét bármely napjára. Pl. Szöveg(dátum, "nnnn") ="vasárnap"

Előzmény: Ezoverzum (34601)
Fferi50 Creative Commons License 2020.06.21 0 0 34602

Szia!

Másik fórumon (is) írtam, hogy a HÉT.NAPJA függvényt érdemes megnézned.

 

Üdv.

Előzmény: Ezoverzum (34601)
Ezoverzum Creative Commons License 2020.06.21 0 0 34601

Hali

Szeretnék egy havi lebontású jelenléti ívet amiben a szombati és a vasárnapi sorokat beszínezné. Elméletileg a feltételes formázás lenne a megoldás de nem akar összejönni.

Tud valaki segíteni?

Szerintem az lehet a gond, hogy a napokat dátumból generálja és nem szövegként hanem számsorként kezeli és ezért hiába adom meg feltételnek a szombatot és a vasárnapot nem értelmezi.

Lehet nem gondolom jól!

Előre is köszi.

Üdv

James 42 Creative Commons License 2020.06.18 0 0 34600

Lehet, hogy be kell csukni hozzá minden Office programot, vagy talán még a gépet is újra kell indítani. De ha még akkor sem működik, az tényleg fura, hiszen elvileg ezt erre találták ki.

Előzmény: JT2 (34599)
JT2 Creative Commons License 2020.06.18 0 0 34599

igaz...pedig tudhattam volna, hogy az 1 az minden számrendszerben 1, na mindegy...akkor sem működik

Előzmény: James 42 (34598)
James 42 Creative Commons License 2020.06.18 0 0 34598

Létrehoztam egy újat, és beírtam, hogy 20.

Utána újra megnyitottam, és azt írta ki, hogy az 14, hexában. Szóval tökmindegy, hogyan írod be, csak stimmeljen az érték. Az 1 pedig mindenképpen 1.

Előzmény: JT2 (34595)
James 42 Creative Commons License 2020.06.18 0 0 34597

Megnéztem, és tényleg meg lehet adni, de ha 1 az érték, akkor tökmindegy.

Előzmény: James 42 (34596)
James 42 Creative Commons License 2020.06.18 0 0 34596

Ez nekem magas. Az 1 hexában is 1. A duplaszót meg nem kell állítgatni, az duplaszó, és kész.

Előzmény: JT2 (34595)
JT2 Creative Commons License 2020.06.18 0 0 34595

ja, ez a duplaszós dolog....decimalra kellett állítani de mindig visszaáll hexadecimálisra.

Előzmény: James 42 (34591)
JT2 Creative Commons License 2020.06.18 0 0 34594

szia!

Azzal kezdtem mielőtt a beírtam volna a fórumba de ott sem sikerült.

Előzmény: Eredő Vektor (34592)
JT2 Creative Commons License 2020.06.18 0 0 34593

Igen, már megtettem. Találtam angol nyelvű oldalt ahol ugyanezzel a problémákkal szembesültek de megoldás nem volt. Feladtam.

Előzmény: James 42 (34591)
Eredő Vektor Creative Commons License 2020.06.18 0 0 34592

Szia,

Én az exceles  biztonsági beállításoknál keresnék valahol egy alacsonyabb szintű beállítást.

Nem jártam utána :(

 

Előzmény: JT2 (34584)
James 42 Creative Commons License 2020.06.18 0 0 34591

Tehát létrehoztad azt a DisableHyperlinkWarning nevű duplaszó típusú változót, és az értékét 1-re állítottad?

Előzmény: JT2 (34590)
JT2 Creative Commons License 2020.06.18 0 0 34590

rajta vagyok..... a registryben kell változtatni de egyelőre ez sem oldja meg....még nem adom fel. Ha találok megoldást, megosztom.

Előzmény: James 42 (34589)
James 42 Creative Commons License 2020.06.18 0 0 34589

Megkerestem: 16.0.

Előzmény: James 42 (34588)
James 42 Creative Commons License 2020.06.18 0 0 34588

Szerintem annál is ugyanúgy kellene mennie, csak a 12.0 vagy 14.0 helyett meg kell keresni a 2016-osnak a saját számát, amit nem tudok fejből.

Előzmény: JT2 (34587)
JT2 Creative Commons License 2020.06.18 0 0 34587

...de ez 2007 és 2010-es Excel-re ír megoldást, amit a 2016-ban nem találok

Előzmény: James 42 (34585)
JT2 Creative Commons License 2020.06.18 0 0 34586

pont ezt olvasom :)

Előzmény: James 42 (34585)
James 42 Creative Commons License 2020.06.18 0 0 34585
Előzmény: JT2 (34584)
JT2 Creative Commons License 2020.06.18 0 0 34584

Szia!

 

Rákerestem bár lehet, hogy nem a megfelelő kulcsszavakkal.

Köszi a fáradozást de ez sem segített, mert ezeket már végignéztem a beállításoknál.

A megbízható helyeknél engedélyeztem és megadtam az elérési utat is (almappák is engedélyezve) de nem segített.

A megbízható dokumentumoknál "a hálózaton lévő dokumentumok megbízhatóan kezelhetők" bejelölve

Külső adattartalomnál "az összes adatkapcsolat engedélyezése(nem ajánlott)" bejelölve

 

Egyéb ötlet?

Előzmény: James 42 (34583)
James 42 Creative Commons License 2020.06.18 0 0 34583
Előzmény: JT2 (34582)
JT2 Creative Commons License 2020.06.18 0 0 34582

Üdv Mindenkinek!

Office 2016-ot futtatok.

Egy Excel cellára egyet kattintva egy hiperhivatkozás függvénnyel egy a gépemen lévő fájlt nyitok meg.
pl. képet vagy videót.
Meg tudom nyitni de nem egy lépésből, mert az Office egy ablakot dob fel a következő üzenettel:
**********************************************************************************
"néhány fájl vírust tartalmazhat, vagy más módon veszélyeztetheti a számítógépet.
Ellenőrizze, hogy a fájl megbízható forrásból származik-e"
**********************************************************************************
Mivel a saját gépemen akarom megnyitni a fájlt nem tartok attól, hogy gond lenne ezért szeretném kiiktatni ezt az üzenetet.
Próbálkoztam már a beállítások között de nem találom azt, ami ezt megoldaná.
Van erre ötlete valakinek?

pimre Creative Commons License 2020.06.17 0 0 34581

Szia, nagyon köszönöm. Ez volt a megoldás. 

Előzmény: m54-b (34580)
m54-b Creative Commons License 2020.06.17 0 0 34580

Ezt nézd meg:

 

 

(2007 Office ez az.)

Előzmény: pimre (34579)
pimre Creative Commons License 2020.06.16 0 0 34579

Igen, áthelyezés, vagy másolás, és természetesen másolatot kértem. Még véletlenül sem akartam elrontani az eredetit.

És mindkettő kiterjesztése xlsm, ráadásul ugyanaz a fájl van mindkét képen. Ezeket ugyanis itt is ott is tartom. Részben biztonsági másolatként, részben azért, hogy ha ez egyikhez nem férek hozzá, akkor a másikon ugyanazokkal a fájlokkal tudjak dolgozni.

Tehát ebből a szempontból sem volt eltérés köztük. 

 

Próbáltam másik Excel munkalapra kérni a másolást, próbáltam új munkafüzetbe. Az eredmény minden esetben változatlan volt. Egyiken jó, másikon nem.

 

Még egy dolog jut eszembe, ahogy most írok. Holnap megnézem, hogy nem lehet-e az Excel beállításainál találni valami olyan különbséget, ami az eltérést okozhatja. Csak az a beállítás menü annyira kellemetlen. Nem lehet másolni, nyomtatni (legfeljebb képlopóval, de az nehézkes), tehát emlékeznem kell, hogy, mi volt a beállítás egyiken és másikon.  

Előzmény: Fferi50 (34577)
pimre Creative Commons License 2020.06.16 0 0 34578

Kösz, nagy nehezen én is rátaláltam a disappers keresőszóra, a másodikat meg is találtam. A Mrexcel-t nem, de tovább fogom náluk is keresni, hátha találok egy használható választ a kérdésre.

 

De hogy két - lényegében azonos módon beállított - gépen másképp működjön, az igazán rejtélyes.  Ha esetleg megtalálom valamikor az okot, azonnal megírom. 

Előzmény: Törölt nick (34576)
Fferi50 Creative Commons License 2020.06.16 0 0 34577

Szia!

Milyen módon másoltad a munkalapot?

Lapfül - jobb egérgomb - áthelyezés vagy másolás - új munkafüzet(esetleg egy már meglevőbe) és legyen másolat módon?

Vagy esetleg másként?

Mi a 2 fájl kiterjesztése?

Üdv.

Ps. A másolásnál szerintem is mennie kellene a munkalapon levő diagramnak.

Előzmény: pimre (34575)
Törölt nick Creative Commons License 2020.06.16 0 0 34576
Előzmény: pimre (34575)
pimre Creative Commons License 2020.06.16 0 0 34575

Sziasztok, megdöbbentő jelenséggel találkoztam, és fontos lenne kiderítenem az okát.

 

Van két gépem, mindkettő windows 7 alatt Excel 2010 fut.

 

Vannak évenként visszatérő azonos feladataim, amelyekben azonos szerkezetű adatsorokból azonos kinézetű diagramokat kell készítenem.

Tavaly jöttem rá, hogy nem kell a diagramokat mindig újból elkészíteni. Elég, ha a meglévő tavalyi munkalapot átmásolom az új fájlba, majd csak az új adatokat írom be a diagram forrását jelentő cellákba, és a diagram frissül. 

 

Akkor ezt a másolást a laptopomon végeztem (éppen vidéken voltam), és természetesnek tartottam, hogy a munkalap másoláskor a rajta lévő diagramot is viszi magával.

 

Idén itthon vagyok, és az asztali gépemen másoltam a munkalapot, és meglepődtem, hogy a másoláskor csak az adatok kerülnek át, a diagramok nem.

 

Visszaültem a laptophoz, ott tökéletesen működött a másolás.

 

Elsőre azt hittem, hogy a sablonok okozzák a zavart, de kiderült, hogy éppen azon a gépen nem voltak sablonok, ahol jól működik a dolog. Akkor megpróbáltam a másik gépről is törölni a sablonokat, de - ahogy várható volt - továbbra sem működött a másolás.

 

Azért lenne fontos, mert ki tudja, hogy a közelgő verzióváltáskor mi lesz a helyzet. Jó lenne, ha úgy tudnám a gépeket beállítani, hogy működjön a másolás.

 

Végső soron persze meg fogom tudni kerülni a problémát (Komplett fájl másolása, átnevezése, majd csak az adatok frissítése), de azért nyugtalanít a dolog.  

 

Próbáltam volna interneten rákeresni a jelenségre, de nem tudok igazán jó keresőszavakat találni a hibajelenséghez.

 

Nagyon hálás lennék, ha valaki rá tudna vezetni a hiba okára.

JT2 Creative Commons License 2020.06.14 0 0 34574

...basszus figyelmetlen vagyok azért válaszolok több részletben...   Windows 10 az op rendszer.

De mivel nagyjából megoldódott a problémám a 2016-os Office-szal ezért nem szeretnék senkit tovább kínozni hacsak passzióból nem tud valami szuper-tutkó-praktikus-rövid megoldást, ami mindent visz. De addig is....most elvagyok azzal, amit eddig javasoltatok. Mindenkinek köszönet. Ha lesz még kérdésem "I'll be back".

Előzmény: JT2 (34573)
JT2 Creative Commons License 2020.06.14 0 0 34573

ja, és xls-ben mentem a fájlokat és nem az újabb formátumban...

Előzmény: Törölt nick (34568)
JT2 Creative Commons License 2020.06.14 0 0 34572

pár napja már 2016-os Office-t használok

Előzmény: Törölt nick (34568)
Törölt nick Creative Commons License 2020.06.13 0 0 34571

Pimre visszajelzését követően kipróbáltam a programot egy Win XP-vel és Office 2003-mal felfegyverzett virtuális gépen, Compatibility Pack telepítés után.

 

Az eredeti .xlsm fájlt, amit xl2019-ben csináltam, nem tudta megnyitni. 

 

Létrehoztam egy új munkafüzetet, bemásoltam a kódot, tettem bele képeket, elmentettem .xlsm formátumban. A kód elakadt a Set oWIA = CreateObject("WIA.ImageFile") sornál. Ez szerintem annak tudható be, hogy Win XP-ben a WIA másképp működik. De az általad jelzett soron simán átlépett: megcsinálta a zip kitömörítést, beolvasta az XML adatokat, stb.

 

Ha viszont a fájlt .xls formában mentem, és úgy futtatom a kódot, akkor nem csinálja meg az unzip műveletet, és ott jelez hibát, ahol neked is:

.Path_to_SheetXML = XL_Folder & "" & Split(sTemp, "/")(0)

csak más hibaüzenettel.

 

Szóval ha a fájlod neve valami.xls, szerintem mentsd el valami.xlsm néven, és próbáld ki a programot úgy. (Ugye nem Win XP-t használsz?)

 

Előzmény: JT2 (34567)
Törölt nick Creative Commons License 2020.06.13 0 0 34570

Az előbb elhamarkodottan írtam, hogy xl2003-mal nem működhet, mert nem gondoltam végig, és megfeledkeztem a Microsoft Compatibility Pack-ről (https://download.cnet.com/Microsoft-Office-Compatibility-Pack-for-Word-Excel-and-PowerPoint-File-Formats/3000-18483_4-10648733.html), amely segítségével az OpenXML formátum elérhetővé vált xl2003 alatt is.

Előzmény: pimre (34569)
pimre Creative Commons License 2020.06.13 0 0 34569
Előzmény: Törölt nick (34568)
Törölt nick Creative Commons License 2020.06.13 0 0 34568

Ez a hibaüzenet nekem nem mond semmit. Max arra tudok gondolni, hogy többkötetes zip fájlt érzékel, ami egyrészt nem valószínű, másrészt biztos nem annál a kódsornál jelentkezne, amit írtál.

Attól tartok, ezt nehéz lesz távgyógyítani...

Milyen Excel verzióval küzdesz? Nem említettem, de ez a kód Excel 2007 alatt biztosan nem fog futni, tekintettel arra, az OpenXML formátumot (xlsx, xlsm és társaik) a 2007-es Office verzióban vezették be.

Előzmény: JT2 (34566)
JT2 Creative Commons License 2020.06.13 0 0 34567

itt jelez hibát:

.Path_to_SheetXML = XL_Folder & "" & Split(sTemp, "/")(0)

Előzmény: Törölt nick (34564)
JT2 Creative Commons License 2020.06.13 0 0 34566

úgy tűnik nem ment át a csatolt kép....akkor idézem "helyezze be a többkötetes készlet utolsó lemezét majd a folytatáshoz kattintson az OK gombra"

Előzmény: Törölt nick (34564)
JT2 Creative Commons License 2020.06.13 0 0 34565

Remélem mindent úgy csináltam, ahogy leírtad. Ezt az üzenetet dobta fel (csatolt kép)

Előzmény: Törölt nick (34564)
Törölt nick Creative Commons License 2020.06.12 0 0 34564

Nemtom, belefér-e a teljes kód... de mindenesetre ezt kellene átmásolni egy szűz kódmodulra, és futtatni a RestoreCommentPictureSize makrót.
Megjegyzések:

- Az Excel munkafüzetet takaró fájl valójában egy zip archivum, amit ki lehet csomagolni, és akkor feltárul a belső xml szerkezet. A kommentek hátteréül szolgáló képek eredeti méretben lesznek kimentve.
- A lenti kód másolatot készít az aktuális munkafüzetről, a másolatot kicsomagolja (unzip) egy mappába. E művelet során a munkafüzet 2x is mentésre kerül. Mentéssel a Visszavonás (Undo) opció elvész, tehát a mentés előtti műveleteket nem fogod tudni visszavonni a program futtatása után.
- A program a kicsomagolt mappában a különböző xml és egyéb fájlok elemzésével felderíti a kommentek és a képek kapcsolatát, majd a kép eredeti dimenzióit felhasználva átméretezi a komment dobozát.
- A munkafüzet mindegyik munkalapján elvégzi az átméretezéseket az érintett kommenteken.
- Az xml fájlokban definiált kapcsolatokat nem gyári specifikációkból vettem, hanem magam derítettem fel a szövegfájlok elemzésével, így ebben elképzelhető hiba.

- Én csak 4-5 képes kommenttel teszteltem a programot, de akárhogy rendeztem át a cellákat és akárhogy ziláltam szét előzőleg a komment méreteket, ezekkel teljesen jól működött.
- A futás során keletkezik egy zip fájl és egy mappa, amelyeket elvileg a program töröl is, de valamiért ez a törlés nem mindig következik be. Ezért a program indítása előtt mindig győződj meg róla, hogy mind a zip fájl, mind az unzip mappa törölve lett, mert különben a program hibára fog futni. (Bocsi, nem volt már energiám ilyen helyzeteket is kezelni.)
- A progam megfelelő működéséhez nem szükséges, hogy a kommentek meg legyenek jelenítve.
- Végül, de nem utolsósorban: nincs benne SendKeys :o)

 

És akkor most sűrű fohászkodás, hogy a fórummotor jól jelenítse meg....


Option Explicit

Type TXMLWorksheet
    SheetRID As String
    Name_of_Worksheet As String
    Name_of_SheetXML As String
    Name_of_SheetRelations As String
    Name_of_vmlDrawingVML As String
    Name_of_vmlDrawingRelations As String
    Path_to_SheetXML As String
    Path_to_SheetRelations As String
    Path_to_CommentsXML As String
    Path_to_vmlDrawingVML As String
    Path_to_vmlDrawingRelations As String
End Type

Type TImageSize
    Width As Single
    Height As Single
End Type
    
Private ZipFolder As String, XL_Folder As String
Private Path_WorkbookXML As String, Path_WorkbookXML_Rels As String
Private xmlWorksheets() As TXMLWorksheet
'

Sub RestoreCommentPictureSize()
    Copy_UnZip_Workbook
    Collect_XML_WorksheetData
    IterateThroughComments
    On Error GoTo nodelete
    CreateObject("Scripting.FileSystemObject").DeleteFolder ZipFolder
    MsgBox "Kommentek átméretezése kész."
    Exit Sub
    
nodelete:
    MsgBox "Hiba történt a " & ZipFolder & " mappa törlése során. Manuálisan kellene törölni."
    Resume Next
End Sub


Private Sub Copy_UnZip_Workbook()
    Dim myName As String, myShortName As String, myFullPath As String
    Dim WorkFileXLPath As String, WorkFileZipPath As String
    Dim oShell As Object
    
    myName = ThisWorkbook.Name
    myShortName = Left(myName, InStrRev(myName, ".") - 1)
    myFullPath = ThisWorkbook.Path & "\" & myName
    
    WorkFileXLPath = ThisWorkbook.Path & "\" & myShortName & "2.xlsm"
    WorkFileZipPath = ThisWorkbook.Path & "\" & myShortName & ".zip"
    ZipFolder = ThisWorkbook.Path & "\" & myShortName & "_unzip"
    XL_Folder = ZipFolder & "\xl"
    
    Application.DisplayAlerts = False
    ThisWorkbook.SaveAs WorkFileXLPath
    ThisWorkbook.SaveAs myFullPath
    Name WorkFileXLPath As WorkFileZipPath
    MkDir ZipFolder
    Set oShell = CreateObject("Shell.Application")
    oShell.Namespace(ZipFolder & "\").CopyHere oShell.Namespace(WorkFileZipPath & "\").Items
    Kill WorkFileZipPath
    Application.DisplayAlerts = True
    
End Sub

Private Sub Collect_XML_WorksheetData()
    Dim TextLine As String
    Dim pos As Long, i As Long, j As Long, sTemp As String
    
    Path_WorkbookXML = XL_Folder & "\workbook.xml"
    Path_WorkbookXML_Rels = XL_Folder & "\_rels\workbook.xml.rels"
    ReDim xmlWorksheets(1 To ThisWorkbook.Worksheets.Count)
    
    For i = 1 To ThisWorkbook.Worksheets.Count
        With xmlWorksheets(i)
            .Name_of_Worksheet = ThisWorkbook.Worksheets(i).Name
            'Set .myWorksheet = ThisWorkbook.Worksheets(i)
            
            'sheet relation id kiolvasása workbook.xml -ből
            TextLine = Get_SpecificLine_From_TextFile(Filepath:=Path_WorkbookXML, LineMarker:="sheet name=""" & .Name_of_Worksheet)
            pos = InStr(TextLine, "r:")
            .SheetRID = Mid(TextLine, pos + 5)
            
            'sheet.xml elérési útjának kiolvasása workbook.xml.rels fájlból
            TextLine = Get_SpecificLine_From_TextFile(Filepath:=Path_WorkbookXML_Rels, LineMarker:="Relationship Id=" & .SheetRID)
            pos = InStr(TextLine, "Target=")
            sTemp = Replace(Mid(TextLine, pos + 7), """", "")
            .Path_to_SheetXML = XL_Folder & "\" & Split(sTemp, "/")(0)
            .Name_of_SheetXML = Split(sTemp, "/")(1)
            
            'sheet relations file elérési útjának összerakása, a fájl megnyitása, belőle további XML elérések kiolvasása
            .Path_to_SheetRelations = .Path_to_SheetXML & "\_rels"
            .Name_of_SheetRelations = .Name_of_SheetXML & ".rels"
            'Comment.xml elérése
            TextLine = Get_SpecificLine_From_TextFile(Filepath:=.Path_to_SheetRelations & "\" & .Name_of_SheetRelations, LineMarker:="relationships/comments")
            If TextLine <> "" Then
                pos = InStr(TextLine, "Target=")
                sTemp = Replace(Mid(TextLine, pos + 7), """", "")
                sTemp = Replace(sTemp, "/", "\")
                .Path_to_CommentsXML = .Path_to_SheetXML & "\" & sTemp
            End If
            'vmlDrawing.vml elérése
            TextLine = Get_SpecificLine_From_TextFile(Filepath:=.Path_to_SheetRelations & "\" & .Name_of_SheetRelations, LineMarker:="relationships/vmlDrawing")
            If TextLine <> "" Then
                pos = InStr(TextLine, "Target=")
                sTemp = Replace(Mid(TextLine, pos + 7), """", "")
                sTemp = Replace(sTemp, "/", "\")
                pos = InStrRev(sTemp, "\")
                .Path_to_vmlDrawingVML = .Path_to_SheetXML & "\" & Left(sTemp, pos - 1)
                .Name_of_vmlDrawingVML = Mid(sTemp, pos + 1)
                .Path_to_vmlDrawingRelations = .Path_to_vmlDrawingVML & "\_rels"
                .Name_of_vmlDrawingRelations = .Name_of_vmlDrawingVML & ".rels"
            End If
        End With
    Next
End Sub

Private Sub IterateThroughComments()
    Dim ws As Worksheet, wsXML As TXMLWorksheet, cmt As Comment, sh As Shape
    Dim iCol As Long, iRow As Long, PicRelsID As String, Path_to_Image As String
    Dim i As Long, sTemp As String, pos As Long, ImgSize As TImageSize
    
    For Each ws In ThisWorkbook.Worksheets
        For i = 1 To UBound(xmlWorksheets)
            If ws.Name = xmlWorksheets(i).Name_of_Worksheet Then Exit For
        Next
        wsXML = xmlWorksheets(i)
        For Each cmt In ws.Comments
            iCol = cmt.Parent.Column - 1
            iRow = cmt.Parent.Row - 1
            Application.StatusBar = wsXML.Name_of_Worksheet & "(" & iRow & "," & iCol & ")"
            PicRelsID = Get_CommentPicID_From_vmlDrawing(vmlFilePath:=wsXML.Path_to_vmlDrawingVML & "\" & wsXML.Name_of_vmlDrawingVML, iColumn:=iCol, iRow:=iRow)
            If Not PicRelsID = "" Then
                sTemp = Get_SpecificLine_From_TextFile(Filepath:=wsXML.Path_to_vmlDrawingRelations & "\" & wsXML.Name_of_vmlDrawingRelations, LineMarker:="Relationship Id=""" & PicRelsID)
                pos = InStr(sTemp, "Target=")
                sTemp = Mid(sTemp, pos + 8)
                sTemp = Replace(sTemp, """", "")
                sTemp = Replace(sTemp, "/", "\")
                Path_to_Image = wsXML.Path_to_SheetXML & "\" & sTemp
                ImgSize = Get_ImageSize(Path_to_Image)
                With cmt.Shape
                    .LockAspectRatio = msoFalse
                    .Width = ImgSize.Width
                    .Height = ImgSize.Height
                End With
            End If
        Next
    Next
    Application.StatusBar = False
End Sub

'XML szövegfájlban megkeres egy bizonyos sort (az elsőt, ami tartalmazza a LineMarker stringet), és azt adja vissza
Private Function Get_SpecificLine_From_TextFile(Filepath As String, LineMarker As String) As String
    Dim iFileNum As Long, TextFileContent As String, TextLines() As String, i As Long, Result As String
    
    If Dir(Filepath) = "" Then Exit Function
    iFileNum = FreeFile
    Open Filepath For Input As iFileNum
    TextFileContent = Input(LOF(iFileNum), iFileNum)
    Close iFileNum
    
    TextFileContent = Replace(TextFileContent, "><", ">[|]<")
    TextLines = Split(TextFileContent, "[|]")
    For i = 0 To UBound(TextLines)
        If InStr(TextLines(i), LineMarker) > 0 Then
            Result = TextLines(i)
            Exit For
        End If
    Next
    Result = Replace(Result, "<", "")
    Result = Replace(Result, "/>", "")
    Get_SpecificLine_From_TextFile = Result
End Function


'Comment hátteréül szolgáló kép elérési útvonalát határozza meg az unzippelt Excel munkafüzet mapparendszerében
Private Function Get_CommentPicID_From_vmlDrawing(vmlFilePath As String, iColumn As Long, iRow As Long)
    Dim iFileNum As Long, TextFileContent As String, TextLines() As String
    Dim i As Long, Result As String, sTemp As String, pos As String
    
    iFileNum = FreeFile
    Open vmlFilePath For Input As iFileNum
    TextFileContent = Input(LOF(iFileNum), iFileNum)
    Close iFileNum
    
    TextFileContent = Replace(TextFileContent, "<v:shape", "[|]<v:shape")
    TextLines = Split(TextFileContent, "[|]")
    For i = 0 To UBound(TextLines)
        If (InStr(TextLines(i), "<x:Row>" & iRow & "</x:Row>") > 0) And (InStr(TextLines(i), "<x:Column>" & iColumn & "</x:Column>") > 0) Then
            Exit For
        End If
    Next
    If i > UBound(TextLines) Then Exit Function
    
    sTemp = TextLines(i)
    pos = InStr(sTemp, "<v:fill o:relid=")
    If pos = 0 Then Exit Function
    
    sTemp = Mid(sTemp, pos)
    Result = Split(sTemp, """")(1)
    
    Get_CommentPicID_From_vmlDrawing = Result
End Function

'a megadott útvonalon található kép méreteit adja vissza pixelben
Private Function Get_ImageSize(ImagePath As String) As TImageSize
    Dim oWIA As Object, Result As TImageSize
    
    Set oWIA = CreateObject("WIA.ImageFile")
    oWIA.LoadFile ImagePath
    Result.Height = oWIA.Height
    Result.Width = oWIA.Width
    Get_ImageSize = Result
End Function





Előzmény: JT2 (34563)
JT2 Creative Commons License 2020.06.12 0 0 34563

ok, előre is köszi

Előzmény: Törölt nick (34561)
JT2 Creative Commons License 2020.06.12 0 0 34562

köszi....ez hasznos volt, jól működik. Bár egy-egy képpel nem tud elbánni és azt manuálisan kell megoldanom de ez nem gond.

Előzmény: Fferi50 (34560)
Törölt nick Creative Commons License 2020.06.11 0 0 34561

Dolgozom egy alternatív megoldáson. Nem tudom, mikor lesz kész, majd nézz vissza időnként.

Előzmény: JT2 (34558)
Fferi50 Creative Commons License 2020.06.11 0 0 34560

Szia!

Azt látom, hogy valamiért nem szereti így a megjegyzések kigyűjtését. Ezért előbb a cellákat kell megnézni, van-e megjegyzése, ha igen akkor lehet ráengedni a méretezési részt:

Sub Megjegyzem()
Dim sh As Shape, cm As Comment, i As Long, cl As Range
For i = 1 To 2
For Each cl In Selection.Cells '<<<< ez a sor lett csak kicserélve!
If Not cl.Comment Is Nothing Then
Set cm = cl.Comment
cm.Visible = True
Set sh = cm.Shape
sh.Select
DoEvents
Application.SendKeys "^1"
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys "{ENTER}"
Application.SendKeys "{TAB}"
Application.SendKeys "{ENTER}"
cm.Visible = False
End If
Next
Next
End Sub

 

Ennyi, szerintem így már mennie kell. Kipróbáltam.

Üdv.

Előzmény: JT2 (34558)
pimre Creative Commons License 2020.06.11 0 0 34559

Nem azért, hanem azért, mert a tantárgyaknak nincs egységesített országos nevezéktana. Persze, lehet, hogy nem is kellene, de ez nehézzé teszi az azonos tartalmú, de eltérő elnevezésű tantárgyak értékelését. Ráadásul az középiskolák ezt készen kapják az Oktatási Hivataltól. Azok meg az általános iskoláktól gyűjtik be, szóval az egységesítés szinte megoldhatatlan. Hacsak a Hivatal egyszer ki nem dolgoz valami kódrendszert, amivel egységes formára hozza az azonos tartalmú tárgyakat. Onnantól már megoldhatnák az általad javasolt find/replace műveletet.

 

Csak együttérezni lehet azokkal a tanárokkal, akiknek felvételiztetéskor ezekből az alapadatokból kell összesíteniük a tanulók hozott érdemjegyeit.

Előzmény: Törölt nick (34557)
JT2 Creative Commons License 2020.06.11 0 0 34558

Szia! Köszi!

Kipróbáltam, de nem műxik, hibát jelez.

Nem értem miért pedig ez még nekem is logikusnak és helyesnek tűnik.

Látsz valami hibát? Mit ronthattam el?

 

Sub Megjegyzem()
Dim sh As Shape, cm As Comment, i As Long
For i = 1 To 2
For Each cm In Selection.Comments      <<<< ez a sor lett csak kicserélve!
cm.Visible = True
Set sh = cm.Shape
sh.Select
DoEvents
Application.SendKeys "^1"
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys "{ENTER}"
Application.SendKeys "{TAB}"
Application.SendKeys "{ENTER}"
cm.Visible = False
Next
Next
End Sub

Előzmény: Fferi50 (34549)
Törölt nick Creative Commons License 2020.06.11 0 0 34557

Úgy sejtem, azért lett ez ennyire összekuszálva, mert a szövegből -> oszlopok bontásban a szóköz lett határolónak kiválasztva.

Ha így van, akkor szerintem (hasonló esetben legközelebb) először az eredeti szöveget kell megtisztítani, a tantárgyak nevét egyszerű find/replace művelettel egységes formába hozni.

Előzmény: pimre (34556)
pimre Creative Commons License 2020.06.11 0 0 34556

Nem ilyen egyszerű. Nekünk a neve mindegy lett volna, csak a helye nem, és ez okozta a gondot. A súlyozás nem jött szóba, mert ugyanazt fedték a nevek, így szerencsére csak az egyik név alatt jöttek adatok.

 

Egy diáknak a történelem jegyét az egyik néven adják meg, amihez a hozott osztályzatát mondjuk az AU,AV oszlopokban találom, a másikét a az eltérő név miatt a BB,BC oszlopokban, a harmadikét a CC,CD oszlopokban. Ezért aztán ilyen szörnyszüleményeket kellett létrehozni:

=(AM4+AN4+AQ4+AR4)/2+BC4+BD4+BK4+BL4+AY4+AZ4+AU4+AV4+CU4+CV4, ahol a zárójeles részt - más okból - valóban átlagolni kellett, viszont a BC-BD az egyik neve a tantárgynak, a BK-BL a másik, de ugyanezigaz az AY-AZ és AU-AV párosra. Még szerencse, hogy egy tanulónál csak az egyik párban volt adat, így nyugodtan lehetett összegezni őket.

 

És ráadásul több táblázatban kellett ezt megcsinálni, és azokban külön-külön összehozni a fenti képletet, mert más iskolákból, más elnevezésű tantárgyakkal más oszlopokban voltak az osztályzatok.

 

 

Előzmény: _Nyuszi (34555)
_Nyuszi Creative Commons License 2020.06.11 0 0 34555

Érdekes, amit írsz, valóban néha úgy kell kezdeni, hogy egyenszilárdságúra hozza az ember. :(

Amit a törivel kapcsolatban írsz: van jelentősége a tárgy nevének? Úgy értem, ha 5 tárgyat kell átlagolni, ott az az öt és kész. Mert ha a három töri tárgynak eltérő a neve, akkor - véleményem szerint - tartalmában is el kell térnie, tehát az átlagolásban csak súlyozás után használhatóak fel.

Rosszul látom?

Előzmény: pimre (34553)
Geréb Laci Creative Commons License 2020.06.10 0 0 34554

Sziasztok.Adott egy lista 1-100 ig,amelyikbe be szeretnék írni egyszeruen számokat,ugy ,hogy en csak annyit kelljen irjak egyik négyzetbe ,hogy 3,a másikba azt hogy 21 ,és ezt automatikusan megjeleniti a listában.Ezt kellene tudja csinálni folytatolagosan.Például

5 db 21

2 db 25

3 db 30

4 db 24 

es nekem a listaban igy jelenjen meg,ennyi gepeles utan

1 21

1 21

1 21

1 21

1 21

 

1 25

1 25

1 30

1 30

1 30

1 24

1 24

1 24

1 24

Koszi a segítséget!:)

pimre Creative Commons License 2020.06.10 0 0 34553

Az a baj, hogy valószínűleg nem ők jelölik így az osztályzatokat. Volt szerencsém segíteni ismerősömnek egy gimnáziumi felvételi értékelésében. Az oktatási hivataltól kapnak egy több száz oszlopos táblázatot, amely többek között a gyerekek általános iskolából hozott érdemjegyeit tartalmazza. És ott szerepelnek ilyen elképesztően szerencsétlen megoldások is. Szerencsére nem volt túl sok, így kézzel át tudtuk javítgatni őket. Lehetett volna a bal() függvényt használni, de az még nehézkesebbé tette volna a képlet létrehozását, mivel soronként más-más oszlopokból kellett kinyerni az osztályzatokat. Ennek oka a következő:

 

Borzalmasan nehezen kezelhető a táblázat, mert attól függően, hogy a gyerek melyik iskolából jött, más és más ugyanannak a tantárgynak a neve. Például a történelem az egyik iskolában történelem és állampolgári ismeretek, a másikban történelem, társadalmi és állampolgári ismeretek, a harmadikban történelem néven szerepelt, ezért az egyes tanulók osztályzatait vagy egyik, vagy a másik, vagy a harmadik helyről kell összeszedni. És persze öt tantárgy adatait kellett a fentiek figyelembevételével összegezni és átlagolni.

 

Elég komoly függvényeket kellett összehoznom, sőt makrót is be kellett vetni ahhoz, hogy a szükséges képletet létrehozzam,  ahhoz, hogy a közel ezer felvételiző adatait összehasonlítható formában megkapjuk. 

 

Bocs az offért.

Előzmény: _Nyuszi (34552)
_Nyuszi Creative Commons License 2020.06.10 0 0 34552

És hogyan? :)

Nekem két ötletem van, így elsőre:

1. Egy külön oszlopban jelölitek a dicséretet, ami itt nem vesztek figyelembe.

2. BAL függvénnyel csak az első karaktert használjátok (pl. =BAL(A1;1) ez a bal oldalról egy karakternyi szöveget ad vissza, mondjuk a B1-be másolva).

(3. Nem osztotok dicséretet, mert az Excelt (mint alkalmazott informatikai eszközt) nehéz megtanítani rá. :) )

Előzmény: starline (34551)
starline Creative Commons License 2020.06.10 0 0 34551

Köszönöm, ha valaki szeretett volna segíteni. Már nem kell, mert másképpen oldottuk meg. :)

Előzmény: starline (34550)
starline Creative Commons License 2020.06.10 0 0 34550

Sziasztok!

 

Segítséget szeretnék kérni. Valamilyen szinten használom az Excelt, de amire most kellene ahhoz nincs ötletem. Átlagot szeretnék számoltatni, de olyan módon, hogy nem csak számok vannak a cellákban, hanem szám betűvel együtt és én csak azt szeretném, hogy csak a számot vegye figyelembe. Tantárgyi átlagokhoz kellene a táblázat és abba 5D-vel jelöljük a dicséretes 5-öst. Alapból ezeket kiveszi az átlagból a függvény. Van valamilyen lehetőség arra, hogy akár összetett függvénnyel figyelembe vegye?

 

Előre is köszönöm a válaszokat! :)

Fferi50 Creative Commons License 2020.06.09 0 0 34549

Szia!

Ezt a sort kell módosítani:

For Each cm In ActiveSheet.Comments  

Ha az A oszlopot nézed akkor

For Each cm In ActiveSheet.Range("A:A").Comments

Ha a kijelölt cellákat, akkor

For Each cm In Selection.Comments

 

Üdv.

Előzmény: JT2 (34547)
Vax Creative Commons License 2020.06.09 0 0 34548

Csak hogy lekerekítsem a végét:

A Workbook_Open eseményébe írtam a Refresh parancsot és így megúsztam rengeteg munkát.

De azért az nem nyugtat meg, hogy a Microsoft ennyire nem törődik a régi verzióval. Tudnám sorolni, hogy mennyi minden volt jobb a 2003-ban.

 

Előzmény: Vax (34546)
JT2 Creative Commons License 2020.06.09 0 0 34547

Mindenkinek köszönet a fáradozásáért. Kipróbáltam 2016-os Excelen és ott tényleg működik szóval lehet, hogy áttérek erre a 2003-as helyett, mert nem szeretnék tovább fárasztani senkit a feladattal. Esetleg kérhetnék még annyit, hogy milyen sort és hová kellene beilleszteni ahhoz, hogyha pl. csak az "A" oszlopban szeretném lefuttatni vagy csak a kijelölt cellákban?

 

Sub Megjegyzem()

    Dim sh As Shape, cm As Comment, i As Long

    For i = 1 To 2

        For Each cm In ActiveSheet.Comments

            cm.Visible = True

            Set sh = cm.Shape

            sh.Select

            DoEvents

            Application.SendKeys "^1"

            Application.SendKeys "{TAB}"

            Application.SendKeys "{TAB}"

            Application.SendKeys "{TAB}"

            Application.SendKeys "{TAB}"

            Application.SendKeys "{TAB}"

            Application.SendKeys "{TAB}"

            Application.SendKeys "{TAB}"

            Application.SendKeys "{ENTER}"

            Application.SendKeys "{TAB}"

            Application.SendKeys "{ENTER}"

            cm.Visible = False

        Next

    Next

End Sub

Előzmény: Fferi50 (34527)
Vax Creative Commons License 2020.06.09 0 0 34546

Úgy tűnik, megvan a megoldás! (-:

Ezek a kimutatások .xls fájlokban vannak. Eddig hibátlanul működtek. Lehet, hogy most ez az egy dolog útban lett a Mikrofostnak. Áttettem .xlsm-be, és működik. Csakhogy ezzel két bajom is van. Egyrészt ez a rendszer 14 géppel van megosztva, közöttük mindenféle konfiguráció. A másik meg az, hogy rengeteg hivatkozást kell átírni. Az .xls egy jól bevált közös minimum volt.

Köszönöm, és üdv.

Előzmény: Fferi50 (34544)
Vax Creative Commons License 2020.06.09 0 0 34545

Sajnos nem segít. Nekem is pontosan így van, és ahogy mondtam, régebben szerkesztettem utoljára a fájlt, mint ahogy ez a jelenség fellépett. Valami Win, vagy Office frissítésre gyanakszom.

Előzmény: Fferi50 (34544)
Fferi50 Creative Commons License 2020.06.08 0 0 34544

Szia!

A beállításoknál nézd meg ezt esetleg:

Nézd meg, hogy más fájloknál jelentkezik-e ilyen probléma. (Ha ilyen jellegű fájlod, akkor csinálj hasonlót, nézd meg működik-e az automatikus frissítés.)

Üdv.

Előzmény: Vax (34543)
Vax Creative Commons License 2020.06.08 0 0 34543

Hát igen. De milyen beállításokat nézzek? A fájlokat én csináltam, és DropBoxon keresztül küldtem nekik is. Pár éve használjuk. Most nálam nem megy. Milyen beállítás ment el, és hol keressem?

Előzmény: Fferi50 (34542)
Fferi50 Creative Commons License 2020.06.08 0 0 34542

Szia!

 

"Van olyan kollégám, akinél működik. "

Akkor sürgősen össze kell hasonlítani a konfigurációkat és a beállításokat, az Excel verziókat azzal.

Üdv.

Előzmény: Vax (34541)
Vax Creative Commons License 2020.06.08 0 0 34541

A kézi frissítés működik, de megnyitáskor frissülnie kellene! Van olyan kollégám, akinél működik. Nem kaphattam (be) valami frissítést? Amíg nem frissítem, addig a részleteket kibontó és összecsukó makrók se mennek.

Run-time error'1004':

Range osztály ShowDetail tulajdonsága nem állítható be.

Miután frissítettem, megy.

Előzmény: Fferi50 (34540)
Fferi50 Creative Commons License 2020.06.08 0 0 34540

Szia!

Szerintem ha nem mentetted mostanában, akkor nincs miért frissülnie. Legalábbis így gondolhatja.

Kézi frissítés működik?

Üdv.

Előzmény: Vax (34539)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!