Keresés

Részletes keresés

Delila10 Creative Commons License 2012.05.04 0 0 17800

Rossz helyre tettem.

 

utvonal = "E:\Eadat\"

Előzmény: Delila10 (17799)
Delila10 Creative Commons License 2012.05.04 0 0 17799

Nem kell lementened. A makró első lépésben külön lapokra dobja szét az adatokat. A lapok neve az ügyfélszámhoz tartozó név lesz (FKERES).

 

Második lépésben a lapokat egyenként átteszi 1-1 új fájlba, amiknek az ügyfélkód nevet adom. Ezeket lementi – a makró elején – általad megadott könyvtárba.

 

Érdemes egy másolatot készíteni a füzetedről, és abban kipróbálhatod.

 

Robbantómester biztosan segít a levelezésben. :)

 

A fórummotor a backslash-ekkel táplálkozik, most is lenyelte az  utvonal = "E:Eadat" sorban.

Helyesen  utvonal = "E\:Eadat\". Remélem, most átviszi.

Előzmény: Sportsboypaper (17797)
Törölt nick Creative Commons License 2012.05.04 0 0 17798

levelezeshez van tobb bovitmeny is 2007-es excelhez. Tobbek kozott nalam fennt van olyan, ami kivalasztott munkalapot kuld.

google ad egy csomo talalatot (sheet send mail excel addon es egyeb kulcsszavakkal)

Előzmény: Sportsboypaper (17797)
Sportsboypaper Creative Commons License 2012.05.04 0 0 17797

Koszonom. Innen mar elvileg anny kell, hogy fulenkent lementem? mar az is nagy dolog lenne.....

 

Előzmény: Delila10 (17796)
Delila10 Creative Commons License 2012.05.04 0 0 17796

W helyett Z oszlopot írtam legalább 3 helyen, elnézést!

Előzmény: Delila10 (17795)
Delila10 Creative Commons License 2012.05.04 0 0 17795

Annyit csináltam meg, hogy az egyes ügyfélszámokhoz tartozó sorokat külön lapokra átmásolja. A lapok nevét az FKERES függvénnyel kikeresett névvel látja el, és ezeket a lapokat egyenként új füzetbe teszi át, majd lementi az adott könyvtárba az ügyfélkód nevével. A levelezést majd valaki beírja a Mentés nevű részbe. Ehhez meg kell adnod, melyik levelezőt alkalmazod.

 

Az ügyfélkódokat a V, a hozzájuk tartozó neveket a Z oszlopba tettem – innen veszi az FKERES a neveket –, a másolást soronként az A:K cellára írtam meg.

 

Sub Ugyfelek()
    Dim sor As Double, usor As Double, usor_1 As Double, nev$, WS1 As Worksheet
    Dim utvonal$, lap%
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    utvonal = "E:Eadat"   'itt írd be a saját útvonaladat ehelyett
    usor = Cells(Rows.Count, "A").End(xlUp).Row
    Set WS1 = Sheets("Munka1")  'ide jön a saját indító lapod neve
    
    'Másolás lap%okra
    For sor = 2 To usor
        nev$ = Application.WorksheetFunction.VLookup(WS1.Cells(sor, "A"), _
            WS1.Range("V:Z"), 2, 0) 'itt a V:Z módosítandó az fkeres függvényhez
        On Error GoTo Uj_lap
        usor_1 = Sheets(nev$).Cells(Rows.Count, "A").End(xlUp).Row + 1
        If usor_1 = 2 Then Range(WS1.Cells(1, "A"), WS1.Cells(1, "K")).Copy Sheets(nev$).Cells(1)
        Range(WS1.Cells(sor, "A"), WS1.Cells(sor, "K")).Copy Sheets(nev$).Cells(usor_1, "A")
    Next
    
    'Mentés, zárás
    For lap% = 1 To Sheets.Count - 1
        nev$ = utvonal & Sheets(1).Cells(2, "A")
        Sheets(1).Move
        
        ActiveWorkbook.SaveAs Filename:=nev$, FileFormat:=xlNormal _
            , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
        ActiveWindow.Close
    Next
    
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    MsgBox "Kész"
    Exit Sub
    
Uj_lap:
    If Err = 9 Then
        Worksheets.Add.Name = nev$
        Resume 0
    Else
        Error Err
    End If
    
End Sub

Előzmény: Sportsboypaper (17793)
Sportsboypaper Creative Commons License 2012.05.03 0 0 17794

Jajj ne haragudjatok, most olvasom a szabalyokat. Szoval Excel 2007ben dolgozom.

Előzmény: Sportsboypaper (17793)
Sportsboypaper Creative Commons License 2012.05.03 0 0 17793

Sziasztok,

 

uj munkakoromben fantasztikus feladatokat kapok, melyet szeretnek leegyszerusiteni. Adott egy adatbazis, A oszlopaban ugyfelszamok, B ben a rendelt termekek, a tobbi nem erdekes.

 

pl

A       B

001 alma

001 korte

001 malna

002 alma

002 malna

003 korte

004 alma

 

stb

 

A feladatom, hogy ugyfelszamonkent kulon fajba mentsem a megrendeleseket es elkuldjem az ugyfelnek. Egymas adatait nyilvan nem lathatjak, igy nem tartalmazhatja oket a file.

Arra gondoltam, hogy ez annyira manualis, hogy macroval kellene megoldani, de sajnos Makroban meg nem tartok ott, hogy irjak is egyet, csak felvenni tudok es azt modositgatni, ha valamit elront.

 

Szoval valami olyat keresek, hogy gyujtse ki a 001 ertekeket az A ban, es mentse el egy kulon fajlba 001 nev alatt. Aztan keresse ki a 002-ket, mentse le, es igy tovabb. Kb 150 kulon ugyfelszam van, nehany ezer sorral.

 

A masik kerdesem, hogy ugyanezeket el is kellene kuldenem mailben. Egyazon szoveg nelkuli levelet mas mas melleklettel, mas mas cimekre. Azt szeretnem tudni, hogy lehet-e olyat, hogy egy makro automatikusan megnyit egy levelet, egy listabol megcimezi,  es automatikusan minden levelbe beteszi a megfelelo mellekletet? az elkuldest mar vallalnam, ha az gond :-)

Lehetseges ilyen makrokat letrehozni, ill tudtok ebbe segiteni?

 

koszonom elore is

roxyboy Creative Commons License 2012.05.03 0 0 17792

Köszönöm a választ neked az előtted válaszolónak is.

 

Az fkeres tényleg jó. A 4. paramétert még hosem használtam, így nem is gondoltam rá, de az kell hozzá.

 

 

Előzmény: Törölt nick (17790)
Törölt nick Creative Commons License 2012.05.03 0 0 17791

a lényeg az, hogy a dátumintervallumok folyamatosak legyenek, ennél az esetnél kell még egy dátum 2012.02.16 is az a4-be. Az elv kb ez...

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

Szerintem is fkeres. Annyi, hogy az utolsó argumentumába 1-est (IGAZ) kell írni és így sorbarendezett tartomány kell hozzá.

ilyesmi:

=FKERES(E1;$A$1:$C$3;3;1)

Előzmény: roxyboy (17788)
Törölt nick Creative Commons License 2012.05.03 0 0 17789

Szerintem erre egy FKERES tökéletesen megfelelő. Csak a negyedik pramétert kell jól beállítani.

(Most lusta vagyok pontos képletet kidolgozni...)

Előzmény: roxyboy (17788)
roxyboy Creative Commons License 2012.05.03 0 0 17788

Van egy problémám, amire nem sikerül megoldást találnom. Ha tudtok, segítsetek.

 

Az excel táblázat azt tartalmazza, hogy egy termék aktuálisán mennyibe kerül. Az "A" oszlop celláiban vannak a kezdő dátumok, a "B"-ben pedig a vég dátumok. A "C" tartalmazza azt, hogy a megadott dátumintervallumban mennibe került a termék. Az alábbi kis példából látható, hogy mit kellene megoldani.

 

Tételezzük fel, hogy az alábbi excel táblám van:

A1: 2012.01.01

A2: 2012.01.18

A3: 2012.01.24

B1: 2012.01.17

B2: 2012.01.23

B3: 2012.02.15

C1: 25000

C2: 30000

C3: 35000

 

E1: 2012.01.19

F1: képlet, ami az "E1" cella éréke alapján megkeresi a "C" oszlopban azt az értéket, aminek a dátuma "A" és "B" oszlop értéke között van. Az eredménynek ennek a konkrét példában 30000-nek kellene lenni.

 

Van erre a problémára valamilyen beépített képlet?

 

Remélem érthető, amit szeretnék. Ha ismered az SQL-t, akkor abban így oldanám meg: SELECT 'C' FROM tablazat WHERE 'E1' BETWEEN 'A' AND 'B';

 

Köszi a segítségeket.

SQLkerdes Creative Commons License 2012.05.02 0 0 17787

Hát, a bonyolultság az a dologban, hogy ha az Excel éppen nem aktív (és nem aktív, mert pont az a baj, hogy más program aktív és eltakarja) akkor hiába is programozol rá valamit bármelyik billentyűre Excelben...

A sima mezei Alt+Tab nem felel meg, esetleg?  Csak blöffölök.

Esetleg még azt lehet megcsinálni (nem tom lehetséges-e), hogy az Excel sose engedje át semmilyen más programnak a fókuszt.

 

Én élek a gyanúperrel, hgoy itt valami excel-en kívüli megoldás működhet.  

Kiváncsi vagyok mások mit mondanak, mert ezért van itt egy-két feketeöves Event kezelő nindzsa...

Előzmény: kovacsmiklos1985 (17782)
Sztai Creative Commons License 2012.05.02 0 0 17786

Abszolút jó.

Előzmény: _Nyuszi (17785)
_Nyuszi Creative Commons License 2012.04.29 0 0 17785

 Ha simán csak beszorozgatja, az miért nem jó?

Előzmény: Sztai (17783)
Sztai Creative Commons License 2012.04.29 0 0 17784

Ha csak formátumként szeretnéd a D betűt a szám elé berakni (tehát csak látványnak), akkor a legegyszerűbb megoldás a cella (szám) egyéni formázása.

Celleformázás, egyéni és a kódhoz ezt írd: "D"0

Üdv

 

 

Előzmény: freyya (17770)
Sztai Creative Commons License 2012.04.29 0 0 17783

Tegyük fel, hogy az idő az A1-ben van ó:p:m formátumban. Ha B1-ben mp-ben akarod látni az eredményt, akkor B1 képlete ez legyen:

=HOUR(A1)*3600+MINUTE(A1)*60+SECOND(A1)

Magyar excelnél a megfelelő magyar fv név pl: ÓRA, PERC stb.

Üdv

Előzmény: bajor14 (17779)
kovacsmiklos1985 Creative Commons License 2012.04.28 0 0 17782

Sziasztok!

 

Egy egyszerű kérdésem lenne, bár a megoldást rá nem találom.

Arról lenne szó, hogy van egy excel munkafüzetem, melyben elinduláskor egy VBA makró fut, és amely automatikusan elrejti az excel munkafüzetet a VBA formok mögül (application.visible = false programkóddal) , és a windows tálcáról egyaránt.

Ha a programom használata közben másik programot is be kell töltenem, akkor az eltakarja az én programomat, és zavaróan hosszadalmas, amíg minden takaró programot lepálcázok (Kis méretre rakok a tálcára), hogy az én programom újra látható legyen. Szeretném, ha egy billentyű (Pl.: ALT) megnyomására az én programom jönne fel a legfelső programnak.

(Ugye a windows tálcáról nem tudom felnagyítani, mert a makrókód eltűnteti a tálcán lévő excel megjelölést).

 

Meglehet ezt oldani valahogy?

 

_Nyuszi Creative Commons License 2012.04.26 0 0 17781

A ×60 esetében percben kapod meg. Be kell szorozni még ×24-gyel és még egyszer ×60-nal is (az idő az Excelben [0;1] tartományba eső tizedestört, ahol 0 a 00.00.00, az 1 pedig a 24.00.00).

Előzmény: bajor14 (17779)
Delila10 Creative Commons License 2012.04.26 0 0 17780

A formátum legyen [mm]. Ennyi. :)

Előzmény: bajor14 (17779)
bajor14 Creative Commons License 2012.04.26 0 0 17779

Sziasztok!

 

Óra:perc:másodperc formátumban tudok lehívni egy riportot, de nekem másodpercben kellenének az adatok.

Eddig csak pár esetben volt jelentősége, így megcsináltam számokógéppel :) , de az utóbbi időben napi szinten kb 100 ilyen átváltást kell csinálnom.

Próbáltam egyszerű cella*60-nal, próbáltam Convert fgv-vel, de sehogyan sem akar működni.

Annyi lenne csak, hogy az eredetileg rendelkezésre álló 00:09:33-ból 573 másodperc legyen.

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

festerke Creative Commons License 2012.04.25 0 0 17778

Szia! Nagyon szépen köszönöm. Ez egy ász megoldás.

Előzmény: Törölt nick (17776)
SQLkerdes Creative Commons License 2012.04.25 0 0 17777

 

Skydrive változások, aki hasynálja esetleg akar 25 GB-ra upgrade-elni.

Törölt nick Creative Commons License 2012.04.25 0 0 17776

Hát erre jutottam.

 

Sub izé()
    Dim Src As Range, Dst As Range, c As Range
    Dim MaxCount As Long, i As Long, j As Long, RandX As Long, RandY As Long
    Dim VoltMár As String
    
    Set Src = Range("C4:G16")
    Set Dst = Range("I4")
    Dst.Resize(13, 5).ClearContents
    For Each c In Src
        If Application.WorksheetFunction.CountIf(Src, c.Value) > MaxCount Then
            MaxCount = Application.WorksheetFunction.CountIf(Src, c.Value)
            If MaxCount > 13 Then
                MsgBox "A következő szám:" & c.Value & " többször forfdul elő, mint 13. Így a feladat nem megoldható."
                Exit Sub
            End If
        End If
    Next
    VoltMár = "_"
    For i = MaxCount To 1 Step -1
        For Each c In Src
            If (Application.WorksheetFunction.CountIf(Src, c.Value) = i) And (InStr(VoltMár, "_" & c.Value & "_") = 0) Then
                For j = 1 To i
                    Do
                        RandY = Int(Rnd() * 13)
                    Loop Until (Application.WorksheetFunction.CountIf(Dst.Offset(RandY).Resize(, 5), c.Value) = 0) _
                        And (Application.WorksheetFunction.Count(Dst.Offset(RandY).Resize(, 5)) < 5)
                    Do
                        RandX = Int(Rnd() * 5)
                    Loop Until Dst.Offset(RandY, RandX) = ""
                    Dst.Offset(RandY, RandX) = c.Value                   
                Next
                VoltMár = VoltMár & c.Value & "_"
            End If
        Next
    Next
End Sub

 

A dolog lényege az, hogy előfordulási gyakoriság szerint csökkenő sorrendben szórom szét a számokat egy 13x5-ös mezőben. Először tehát mindig annak keresek helyet, aki a legtöbbször fordul elő. Holtverseny esetén az kerül sorra előbb, akivel a C4:G16 tartományban (balról jobbra majd fentről lefelé haladva) hamarabb találkozom. Ennélfogva a számok elhelyezése nem teljesen véletlenszerű (hiszen a fenti szabályszerűség benne van). De a célnak talán megfelel.

 

A másik dolog, hogy létezhet olyan kiindulási számsor, ahol a fenti algoritmus zsákutcába (végtelen ciklusba) fut. Minél kevesebb az egyedi szám, vagyis minél több az ismétlődés a kezdeti számok között, annál nagyobb a zsákutca esélye. Ilyenkor Ctrl+Break gombokkal lehet leállítani a makrót, aztán meg lehet próbálni újraindítani. Ha többször/mindig végtelen ciklusba kerül, az szívás, és nincs rá megoldásom.

Előzmény: festerke (17769)
mimi_bacsi Creative Commons License 2012.04.24 0 0 17775

Nekem is...! :-))

Előzmény: mimi_bacsi (17774)
mimi_bacsi Creative Commons License 2012.04.24 0 0 17774

Örülök, ha tudtam segíteni, itt nekemis sokat segítenek, legalább valamit vissza tudtam adni a fórumnak...:-)) (egyébként megoldódott a problémád..?)

Előzmény: freyya (17773)
freyya Creative Commons License 2012.04.24 0 0 17773

Nem vagyok valami rutinos exceles, csak néha kell használnom, így aztán erről a függvényről nem is tudtam, de aztán a szomszéd srác telefonon felhomályosított. Mindenesetre köszi a segítséget! Próbálkoztam, hátha mázlim lesz, és van itt épp valaki, aki azonnal válaszolni tud. :)

Előzmény: mimi_bacsi (17771)
mimi_bacsi Creative Commons License 2012.04.24 0 0 17772

Nekem most megcsinálta az "ÖSSZEFŰZ" paranccsal!

Előzmény: freyya (17770)
mimi_bacsi Creative Commons License 2012.04.24 0 0 17771

Az "ÖSSZEFŰZ" parancs nem működik...?

Előzmény: freyya (17770)

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