Keresés

Részletes keresés

Törölt nick Creative Commons License 2013.10.21 0 0 22716

A "Sakk" nevű tartományt ezzel a képlettel kellene definiálni:

 

=ELTOLÁS(Munka1!$B$1;HOL.VAN("sakk";Munka1!$B:$B;0)-1;0;DARABTELI(Munka1!$B:$B;"sakk");6)

 

Excel 2010-ben működik.

Valahol 2003 és 2010 között az OFSZET függvényt átnevezték ELTOLÁS-ra. 2003-ban biztosan OFSZET kell az ELTOLÁS helyett, 2007-ben nem tudom, ki kell próbálni.

Előzmény: egerkiraly68 (22715)
egerkiraly68 Creative Commons License 2013.10.21 0 0 22715

Sziasztok! Pár hete láttam itt valahol egy linket, ami Kovalcsik Géza makró könyvére mutat, meg tudja valaki adni a pontos hsz. számot? Vagy ha újra belinkelné az illető ide, nagyon jó lenne. Köszi.

 

Más. Hogyan tudom megcsinálni azt, hogy amikor el akarok nevezni egy tartományt Név definiálással, tehát nem létrehozással, akkor az Excel dinamikusan érzékelje, hogy hol kezdődik és hol végződik az a tartomány?

 

A struktúra a következő: van 6 oszlop, ahol különböző termékfajták vannak. Az egy csoportba tartozókat, melyeknek azonos a neve, ezeket szeretném definiáltatni a makróval. 

Az első oszlop tartalmazza a neveket, összesen 5 fajta termékét.

 

Ebből az 5 termékből csak 2 terméket, a Sakkot és a Labdát kell definiálni, a többi nem érdekes.

 

Ahogy Excelben csinálom: átmásoltam egy külső adatbázisból a sheet tartalmát, tehát megvannak az aktuális adataim.

Utána sorba rendezem a terméknév szerint a táblázatot, majd megnézem, hogy kezdődik a Sakk nevű termékek sora, és ott kijelölöm a kezdő cellától az utolsó őt tartalmazó celláig a tartományt, belevéve a mellette lévő másik 5 oszlopot, benne a költségadatokkal, és ugyanezt megcsinálom a másik termékre is, melynek neve Labda.

 

A Sakk és a Labda tartományelnevezéseket aztán használja egy másik munkalap a vlookup-hoz, mert onnan veszi át a vonatkozó költségadatokat.

 

Ami a makró részét illeti, logikailag úgy gondolnám, hogy sorba kell először rendezi a táblázatot terméknév szerint, majd csinálni egy utasítást, hogy a makró keresse meg a B oszlopban azt a sort, mely először tartalmazza a Sakk nevet, ezt jelölje ki, majd menjen le addig, amíg eltérő nevet nem talál ugyanabban az oszlopban, majd kijelölve a köztes területet és a mellette lévő további öt sort definiálja Sakk néven a tartományt.

Majd ugyanezt csinálja meg a Labdával is, Labda névre elnevezve.

Éppen csak a hogyant nem tudom erre az utasításra. Ezt rögzítéssel nem lehet megcsinálni, csak if then-nel vagy Case ciklussal gondolom, de a szintaktikát nem tudom.

 

A múltkori segítséget még egyszer köszi mindenkinek - Fferi, Jimmy, Tbando , a makró remekül működik azóta is :-)

Delila10 Creative Commons License 2013.10.19 0 0 22714

Magyarul összefűzés. Van ilyen nevű függvény is, de az & jellel praktikusabb.

Előzmény: forzajuve (22713)
forzajuve Creative Commons License 2013.10.19 0 0 22713

Köszi! Bevallom még a szót sem hallottam:)

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

=A1&B1

(Ez nem összegzés, ez konkatenáció.)

Előzmény: forzajuve (22711)
forzajuve Creative Commons License 2013.10.19 0 0 22711

Sziasztok!

Tud az excel olyat, hogy A1+B1 cellák összegzése, de az egyik mező szöveg? Pl. 1234 és ABCD, a C1-be 1234ABCD.

Ha túl bonyolult, nem fontos. köszi

NeomatiK Creative Commons License 2013.10.18 0 0 22710

Szia!

 

Így jó lett, köszi!

Előzmény: Fferi50 (22708)
szunyókálóoroszlán Creative Commons License 2013.10.18 0 0 22709

Köszönöm, ez bevállt! Mondjuk fogalmam sincs, hogyan kapcsolódott be...

Előzmény: Törölt nick (22631)
Fferi50 Creative Commons License 2013.10.18 0 0 22708

Szia!

 

Ott van az a sortörés benne, csak nem látod!

Cellaformázás -> igazítás -> szöveg elhelyezése sortöréssel több sorba.

 

Üdv.

Előzmény: NeomatiK (22707)
NeomatiK Creative Commons License 2013.10.18 0 0 22707

Sziasztok!

 

Excelben egy cellában van egy email cím a @ karakterrel. Automatikusan hivatkozást csinál belőle. De én nem szeretnék hivatkozást. Jobb egérgomb helyi menüben kiválasztom a hivatkozás eltávolítását, ezután oké lesz. De ha a cellában (F2) Alt+Enter nyomva egy új bekezdést csinálva hozzáírok valamt, akkor megint hivatkozás lesz azzal együtt, amit hozzáírtam. Megint hivatkozás eltávolítását választom. De ekkor az új bekezdés eltűnik, közvetlenül az email cím után kerül aminek külön sorban kéne lennie. És ez az ami nem jó, mert nekem új bekezdésben (vagyis az email cím alatti új sorba) kéne írnom.

Légyszi segítsetek! :)

tbando Creative Commons License 2013.10.18 0 0 22706

Pardon. Nem vettem észre, hogy a makrót kiegészítetted az else ággal.

Előzmény: Fferi50 (22705)
Fferi50 Creative Commons License 2013.10.18 0 0 22705

Szia!

 

Az If Not IsDate(cl.Value) Then sort nem szabad kikommentelni, mert akkor a már dátumként kezelt értékekkel gond lesz (ha pl. nem szövegként, hanem kapásból dátumként jeleníti meg a cellában, akkor nem lesz benne "-"!

Ezt kezeli az else ág, amely beállítja a magyar dátum formátumot és be is írja mégegyszer az értéket, mert így érvényesül csak.

 

A hónapnevek, meg a tartomány az példaként kezelendő természetesen.

 

Üdv.

 

 

Előzmény: tbando (22702)
tbando Creative Commons License 2013.10.18 0 0 22704

Rosszul írtam :((((. Az óra oszlopra még rá kell ereszteni a Gyakoriság fgv.-t vagy Darabtelivel meghatározni a gyakoriságokat.  A diagramot a gyakoriság táblázat adatai adják.

Előzmény: tbando (22703)
tbando Creative Commons License 2013.10.18 0 0 22703

Csinálsz még egy oszlopot, amelyben a belépési időpontokról levágod a perceket. Gondolom az =óra() fgv. erre igen alkalmas. Aztán a diagramot ezzel az oszloppal csinálod.

Előzmény: police7777 (22694)
tbando Creative Commons License 2013.10.18 0 0 22702

Annyit fűznék hozzá, hogy a tömbben megadott  hónap nevek nem tekintendők szentírásnak. Mi csak feltételeztük, hogy a csv fileból ezeket hónapnevek jönnek. Ha nem, akkor az eltérőket át kell írni. Mert enélkül kiakad a makró. (Amire ugyan lehetne írni hibakezelőt, de házi használatra felesleges, leálláskor egyszerűen csak ellenőríni kell a hónapnév-egyezéseket és javítani, amit kell).

 

És még egy megjegyzés: A jelenlegi hónapnevekkel a januári, a februári, az augusztusi, a novemberi, és a decemberi dátumokat változatlanul fogja hagyni, mert azokat az excel felismeri dátumként, és ezért azokkal nem foglalkozik. Emiatt a dátumoszlopban keverten lesznek  angol és magyar formátumú dátumok, amik a velük való számolást nem befolyásolják, hiszen az excel mindkét formát beazonosítja.  A usert azonban zavarhatja. Ez esetben az If Not IsDate(cl.Value) Then sort és a hozzátartozó End if-et kell kikommentelni.

 

Előzmény: Fferi50 (22696)
Delila10 Creative Commons License 2013.10.18 0 0 22701

Köszi!

Előzmény: Törölt nick (22699)
Fferi50 Creative Commons License 2013.10.18 0 0 22700

Szia!

 

Azt hiszem, Te nyertél! És ez ráadásul 0 indexről induló tömböt csinál.

 

Üdv.

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

ho = Split("Jan-feb-mar-apr-may-june-july-Aug-sept-oct-nov-dec", "-")

 

;-)

Előzmény: Fferi50 (22698)
Fferi50 Creative Commons License 2013.10.18 0 0 22698

Szia!

 

Ez igaz, de én nem akarom ezt a munkalapon látni egy percre sem (hiszen később nem lesz rá szükség már). A munkalapra meg csak fel kellene vinni valahogy (vagy új egyéni listát csinálni rá).

Szóval, úgy gondolom, ez a legegyszerűbb.

 

Üdv.

 

Előzmény: Delila10 (22697)
Delila10 Creative Commons License 2013.10.18 0 0 22697

A tömböt így is fel lehet tölteni, ha a hónapok neveit beviszed a lapon egy tartományba:

 

Sub mm()
    ho = Application.Transpose(Range("A1:A12"))
    MsgBox ho(5)
End Sub

Előzmény: Fferi50 (22696)
Fferi50 Creative Commons License 2013.10.18 0 0 22696

Szia!

 

Tbandóval közösen az alábbi makrot fundáltuk ki számodra:

 

Sub honapos()
Dim ho(12) As String, honap, cl As Range, elso%, masodik%, nap%, ev%, lotus As Boolean
ho(0) = "Jan"
ho(1) = "feb"
ho(2) = "mar"
ho(3) = "apr"
ho(4) = "may"
ho(5) = "june"
ho(6) = "july"
ho(7) = "Aug"
ho(8) = "sept"
ho(9) = "oct"
ho(10) = "nov"
ho(11) = "dec"
lotus = ActiveSheet.TransitionFormEntry = True
If lotus Then ActiveSheet.TransitionFormEntry = False ' ha lotus képletbevitel van, kikapcsoljuk
For Each cl In Range("A1:A40").Cells
If Not IsEmpty(cl) Then
    If Not IsDate(cl.Value) Then
            elso = InStr(cl.Value, "-")
            masodik = InStr(elso + 1, cl.Value, "-")
            nap = Left(cl.Value, elso - 1)
            ev = Mid(cl.Value, masodik + 1)
            honap = Mid(cl.Value, elso + 1, masodik - elso - 1)
            honap = WorksheetFunction.Match(honap, ho, 0)
            cl.Value = DateSerial(ev, honap, nap)
     Else
           cl.NumberFormat = "m/d/yyyy"
           cl.Value = cl.Value
     End If
End If
Next cl
ActiveSheet.TransitionFormEntry = lotus 'és visszaállítjuk az eredeti állapotot
End Sub

 

Remélhetőleg ez már minden zavaró körülményt figyelembe vesz.

 

Üdv.

Előzmény: djmorphy (22635)
Fferi50 Creative Commons License 2013.10.18 0 0 22695

Szia!

 

Ha valaki követte itt a mi kis dátumpolémiánkat,  tudja meg a végeredményt is:

 

A problémát a Lotus képletbeviteli mód bekapcsolt állapota okozta. Kikapcsolása után már rendesen működött.

A ki-be kapcsolást makro-ból is meg lehet csinálni az ActiveSheet.TransitionFormEntry =False illetve True sorokkal.

 

Üdv.

Előzmény: tbando (22692)
police7777 Creative Commons License 2013.10.18 0 0 22694

Sziasztok!

 

Segítségeteket kérem olyam diagram osszeállításában ami úgy nézne ki, hogy:  Vízszintes tengelyen 7-15 óráig az időskála van, a függőlegesen pedig darabszám.

Ábrázolni szeretném egy felhasználó szoftverhasználati szokását. Megvannak a belépési idők és oszlopdiagramban szeretném a gyakoriságot ábrázolni, hogy

pl: 7-8 óra között 4 szer, 8-9 óra között 6-szor, 9-10 óra között 1-szer stb...lépett be a szoftverbe.

 

 

 

Köszönöm előre is a segítséget.

tbando Creative Commons License 2013.10.17 0 0 22693

Hát olyan makrót valóban nehezen. De én nem ilyen makróra gondoltam. Hanem olyanra, ami elsősorban az export táblázat készítése során használatos.

Előzmény: Sánta Kutya (SK) (22681)
tbando Creative Commons License 2013.10.17 0 0 22692

Mivel a szövegesen bevítt dátumok esetenként nem működnek, gondoltam csinálok egy összehasonítást. Lásd a képet.

 

A: egy szám

B: a szám különböző dátumformátumban

C: A B-oszlopbeli számfolmátumok stringként bevíve

D: A B-oszlopi értékek Dátumértéke. Nyilvánvalóan hibás mind, mert a Dátumérték stringet vár

E: A C-oszlopbeli stringek Dátumértéke. Jó néhányat nem tud értelmezni

F:  A B-oszlopbeli dátumok Hónap értéke. Valamennyit elfogadja

G: A C oszlop stringdátumainak Hónapértéke. Csak azokat tudja értelmezni, amelyeknél a Dátumértéket is tudta.

 

Tehát a lényeg: Az excel nem tudja az összes legitim dátumformátumot szövegként értelmezni

 

Fferi50 Creative Commons License 2013.10.17 0 0 22691

Szia!

 

Akkor próbáljuk meg az alábbit:

 

       If Not IsDate(cell.Value) Then

            elso=instr(cell.value,"-")

            masodik=instr(elso+1,cell.value,"-")
            nap = Left(cell.Value, elso - 1)
            ev = Mid(cell.Value, masodik + 1)
            honap = mid(cell.Value, masodik+1,masodik-elso-1)
            honap = WorksheetFunction.Match(honap, ho, 0)
            cell.Value = DateSerial(ev, honap, nap)
       End If

 

elso, masodik integerként definiálni.

 

Küldj privit az adatlapomról lsz.

 

 

Üdv.

Előzmény: tbando (22689)
tbando Creative Commons License 2013.10.17 0 0 22690

Ja és még valami. A probléma újabb áttekintése arra is jó volt, hogy fény derült a korábbi hsz-emben hosszasan ecsetelt a pont-kötöjel probléma hátterére. Mondanom sem kell, egy banálális bénázásom okozta :)))))))

Előzmény: tbando (22689)
tbando Creative Commons License 2013.10.17 0 0 22689

Szia!

 

Ezek szerint nálad jól működik a makró. Mert nálam a Numberformat kiiktatásával sem.  Ezek szerint az én excelem (2007) valamit rosszul csinál. Megnéznéd, hogy a te gépeden, hogy működik? Elküldeném, ha megadnád a mailcímed. Meg megköszönném, ha elküldenéd a te füzetedet, hátha az én gépemen is jó lesz.  De feltehetjük a füzeteket a data.hu-ra is.

 

Más. A nap% nem minden esetben barmolja el a hónap meghatározást. Csak ha a napdátum 10 alatti. Ugyanis akkor az integer változóba egyjegyű szám kerül, és így a honap = Replace(cell.Value, nap & "-", "") utasítás a cell-ben bennehagyja a 01-ből a 0-t,  amit így hozzátesz hónaphoz, amit aztán nem ismer fel.

 

 

Előzmény: Fferi50 (22682)
Sánta Kutya (SK) Creative Commons License 2013.10.17 0 0 22688

Fordítva, nekem kell megmondanom neki.

Az inkriminált táblázat nem direkt export volt, hanem már más kolléga dolgozott rajta egy csomót.

Köszönöm mindenkinek a segítséget, ez a kérdés most már tisztázódott!

Előzmény: Fferi50 (22686)
Fferi50 Creative Commons License 2013.10.17 0 0 22687

Vagy adja szövegfájlban és akkor azt csinálsz vele az excelben amit akarsz.

Előzmény: Fferi50 (22686)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!