Keresés

Részletes keresés

Timberland Creative Commons License 2009.01.18 0 0 8545
Hi

Nekem a következő probléma adta fel a leckét. Van két oszlop 1.-ben dátumok (de csak az MNB valutakereskedés napjai, tehát munkanapok). Mellette a 2. oszlopban az árfolyam. Ki akarom számolni 60 napos intervallumonként (minden napra, adott nap +60nap) a görbe meredekségét. A bajom, hogy ha pl az első dátum január 3 akkor nem biztos hogy a táblázatban van márc 3-om mert lehet hogy az szombatra esik, ilyenkor márc 5-ig kéne a tartomány. Ezt egyszer kétszer kézzel kijelölhetem de mikor 2 éves intervallum van 500 adattal nem megoldható. Próbáltam az EDATE és az EOMONTH parancsokkal bűvészkedni de semmi.

A kérdésem röviden tehát, annyi hogyan lehet megadni időtartományt egy művelethez és ezt automatizálni végig, hogy ha pl: A89-től cellától az attól 60 napra lévő tartományt akarom vizsgálni, úgy hogy ha nincs az adott nap + 60. napon értékem akkor a progi automatikusan a következő napra ugorjon.
Törölt nick Creative Commons License 2009.01.17 0 0 8544
Ezt már csak a tanulási vágy miatt kérdezem, hogy vajon mi lehet a képernyő "villodzás" oka az alábbi beállítás után:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Itt_Szabad As Range
Set Itt_Szabad = Range("A6:C" & Range("A" & Rows.Count).End(xlUp).Row - 1)

Application.ScreenUpdating = False

If Not Intersect(Target, Itt_Szabad) Is Nothing Then
Intersect(Target, Itt_Szabad).Select
Else
Range("A" & Target.Row).Select
End If

Application.ScreenUpdating = True

End Sub

Előzmény: Törölt nick (8541)
Törölt nick Creative Commons License 2009.01.17 0 0 8543

Köszönöm szépen, azt hiszem, ezt kerestem! Egy picit módosítottam az ötleten, mivel több száz soros is lehet a "védett terület" és ilyenkor nem igazán lenne jó, ha a védett területen kívüli kejelölés mindig az "A6"-ra ugrana vissza.

 

"Else
Range("A" & Target.Row).Select"

 

Még egyszer köszönöm!

Előzmény: Törölt nick (8541)
aulac Creative Commons License 2009.01.17 0 0 8542
Köszönöm a munkádat.
aulac
Előzmény: Törölt nick (8535)
Törölt nick Creative Commons License 2009.01.17 0 0 8541
"Egyébként, próbálkoztam már az "Undo"-val, de azt gondoltam, valahogy meg lehet oldani, hogy a megadott területen kívül ki se lehessen választani a cellákat..."

Meg lehet oldani, de nekem nem esett le, hogy ez a feladat. Próbáld ki ezt:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Itt_Szabad As Range
Set Itt_Szabad = Range("A6:C" & Range("A" & Rows.Count).End(xlUp).Row - 1)
If Not Intersect(Target, Itt_Szabad) Is Nothing Then
Intersect(Target, Itt_Szabad).Select
Else
Itt_Szabad.Cells(1).Select
End If
End Sub
Előzmény: Törölt nick (8540)
Törölt nick Creative Commons License 2009.01.17 0 0 8540
Köszönöm! Lehet, hogy én bénáztam el valamit, de nálam a megadott területen történt változást is visszavonja.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Itt_Szabad As Range
Set Itt_Szabad = Range("A6:C" & Range("A" & Rows.Count).End(xlUp).Row - 1)

MsgBox Itt_Szabad.Address & vbNewLine & Target.Address

If Not Intersect(Target, Itt_Szabad) Is Target Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If

End Sub

Egyébként, próbálkoztam már az "Undo"-val, de azt gondoltam, valahogy meg lehet oldani, hogy a megadott területen kívül ki se lehessen választani a cellákat...
Előzmény: Törölt nick (8539)
Törölt nick Creative Commons License 2009.01.17 0 0 8539
Hát... nem mondom, hogy mindent értek, de ezzel talán tudsz kezdeni valamit:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Itt_Szabad As Range
Set Itt_Szabad = Range("A3:C40")
If Not Intersect(Target, Itt_Szabad) Is Target Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub

Vagyis, ha a munkalapon bekövetkező változás bármely cellát érinti az Itt_Szabad-ként definiált területen kívül, akkor egyszerűen végrehajtódik a visszavonás (Undo), amit egyébként ctrl+z gombokkal érünk el.

Előzmény: Törölt nick (8538)
Törölt nick Creative Commons License 2009.01.17 0 0 8538
Öt darab csoportba foglalt munkalapon történő adatbevitelt szeretném lekorlátozni. Itt ugye arról van szó, hogy a csoport elsőként kijelölt munkalapján történő minden változás érvényesül a többi munkalapon is. Na most, ezek a munkalapok nem egyforma szerkezetűek, de az első három oszlop adatának tökéletesen egyeznie kell. A lényeg, hogy a csoportba foglalás után (ez is makróval történik) az összes munkalap A, B, C oszlop adatait egyszerre lehessen kezelni (törzsadatok karbantartása (módosítás, sortörlés, új sor beszúrás, stb) és érvényesítése). És itt jön, amivel nem boldogulok, nem tudom lekezelni, hogy csak és kizárólag a kijelölt területen (A, B, C oszlopokban, meghatározott soroktól, meghatározott sorokig) lehessen adatokat manipulálni…. Próbálkoztam már védelem állítgatásával is (ActiveSheet.Protect beállításokkal), de ez nem jó a csoportba foglalt munkalapokon. Szóval, a lényeg az, hogy a meghatározott területen kívül ne lehessen adatokat bevinni, módosítani, törölni, sort, oszlopot beszúrni...

Előzmény: Törölt nick (8537)
Törölt nick Creative Commons License 2009.01.17 0 0 8537
Mit is szeretnél pontosan?
Előzmény: Törölt nick (8532)
Törölt nick Creative Commons License 2009.01.17 0 0 8536
Tegyük fel, hogy egy szubrutinban benne van, és végrehajtódik ez a sor:

Application.Onkey "{ESC}","Eljárás neve"

Onnantól kezdve az Excel figyeli, hogy mikor nyomsz egy ESC-et, és akkor fut le az "Eljárás neve" nevű Sub. Azt tapasztaltam, hogy amikor cella-szerkesztésből lépsz ki ESC-kel, az nem számít ESC lenyomásnak. Hasonlóképpen, amikor egy Form aktív, hiába nyomogatod az ESC gombot, az Excel nem reagál rá. Hogy miért van így, nem tudom. De Form-on a már említett KeyUp eseménnyel le lehet kezelni.
Előzmény: Törölt nick (8531)
Törölt nick Creative Commons License 2009.01.17 0 0 8535
még írd be hozzá ezt:

Dim Path As String
On Error GoTo ErrHandler:
Path = "D:Leltár" & "Készlet " & Format(Now, "yyyy.mm.d") & ".xls"
With ActiveWorkbook
.SaveAs Path
.ReadOnlyRecommended = True
End With


Ezt pedig az eljárás végére:

ErrHandler:
If Err.Number = 1004 Then
MsgBox "A megadott könyvtár nem létezik. Ellenőrizd!"
Exit Sub
End If
Előzmény: aulac (8534)
aulac Creative Commons License 2009.01.17 0 0 8534
Mail megjött.
Tehát azt szeretném, ha amikor rákattintok a "Készletmódosítás nyílra, akkor ne csak módosítsa a bevételnek megfelelően, hanem mentse is el D:Leltár "Készletyyyyhhdd" fájlba.
Ahol az "yyyyhhdd" az aktuális dátum.

Persze, ha megoldható és nem nagy fáradság Neked.

Előre is köszönöm: aulac
Előzmény: Törölt nick (8533)
Törölt nick Creative Commons License 2009.01.17 0 0 8533
Egyébként volt 1x ugyanilyen jellegű - itt megoldott problémám nekem is. Ott valaki a Sendkey-el küldött TAB-okat javasolta. Azt hiszem te voltál, most lusta vagyok visszakeresni.
Valószínűleg azért ajánlottad, mert nekem olyan megoldás kellett, hogy jelölje is ki a textbox tartalmát - mintegy előkészítve a tartalom felülírásra.
De ez a SetFocus nyilván jobb.
Gavrieltől meg elnézést, de a tudásomnak megfelelő volt a megoldásom :)
Előzmény: Törölt nick (8529)
Törölt nick Creative Commons License 2009.01.17 0 0 8532
Sziasztok!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Row < 4 Or Target.Row > 40 Or Target.Column > 3 Then
Védelem = True
Else: Védelem = False
End If

End Sub

A következő a gondom: azt szeretném elérni, hogy ha a fenti rutin beállítja a "Védelem" változót igazra, a munkalapon se a dupla klikk (Worksheet_BeforeDoubleClick), se pedig a változás (Worksheet_Change) ne érvényesüljön az adott cellánál (Target)... Vajon, hogy lehetne erre rábírni?

Előre is köszönöm.
Törölt nick Creative Commons License 2009.01.17 0 0 8531
Ez tök jó, köszi. De akkor mire való az OnKey szerinted?
Kipróbáltam, így, hogy:
Application.Onkey "{ESC}","Eljárás neve"
De nem érzékeltem semmit...
Előzmény: Törölt nick (8529)
Törölt nick Creative Commons License 2009.01.17 0 0 8530

BÚÉK :-)

Előzmény: Törölt nick (8528)
Törölt nick Creative Commons License 2009.01.17 0 0 8529
A kurzort egy szövegdobozba állítani a fókusz átadásával (a SetFocus eljárással) lehet. Pl.
TextBox1.SetFocus

A billentyűzet figyelésére (ESC-re kilépés, Enter-re kijelölés, stb.) felhasználható a KeyUp esemény. A KeyUp esemény mindig azon a vezérlőelemen következik be, amin a fókusz van. Ha pl. ListBox1-en van a fókusz, akkor ESC billentyű lenyomására (pontosabban a felengedésére) lefut az alábbi kód, ami bezárja a Form-ot

Private Sub ListBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 27 Then Unload Me '(Az ESC kódja 27)
End Sub

Azt tapasztaltam, hogy fókuszt "levenni" valamiről nem lehet, a Form-nak átadni nem lehet, szóval ha ESC-re mindenféleképpen kilépést akarsz, akkor minden egyes vezérlőelemhez, amelyik fókuszt kaphat, hozzá kell rendelni Form-ot bezáró kódot.
Előzmény: Gavriel (8517)
Törölt nick Creative Commons License 2009.01.17 0 0 8528
BÚÉK!
aulac Creative Commons License 2009.01.17 0 0 8527

robbantomester.

méltem exceltába ügyileg.

ha megnéznéd, megköszönném.

aulac

Előzmény: Törölt nick (8522)
Törölt nick Creative Commons License 2009.01.16 0 0 8526
Vajon hová tűnt Jimmy the Hand topictárs?
aulac Creative Commons License 2009.01.16 0 0 8525
Sajnos fogadni tudok, de valami miatt a küldést az SMTP visszautasítja.
Próbálj esetleg az augabkukacfrímélponthu-ra is küldeni.
Előzmény: aulac (8524)
aulac Creative Commons License 2009.01.16 0 0 8524
Nem tudom elküldeni a táblát.
Légyszíves küldj egy mailt az augabkukactonlineponthu címre.
Előzmény: Törölt nick (8522)
Törölt nick Creative Commons License 2009.01.16 0 0 8523
ez tény, meg kézrállóbb is az esc. azért ha megvan hogy kell, írd be. Azt nem vágom hol vannak ilyenkor a többiek, mert a kisujjából kirázná ezt szrtem pár topictárs itt.
Előzmény: Gavriel (8520)
Törölt nick Creative Commons License 2009.01.16 0 0 8522
Sajnos ennyiből nem emlékszem. Ilyen nyers rögzített makróra meg főleg nem.
Előzmény: aulac (8521)
aulac Creative Commons License 2009.01.16 0 0 8521
Szia robbantomester.
Régen kérdeztelek már.
Adott egy táblázat. (Amit Te készítettél nekem). Köszönet érte.
Szeretném Javítani annyiban, hogy amikor a Készletmódosítás gombra kattintok, Ha lehetséges mentse is el az aktuális dátumra az állományt.
A makro a következő:

"Sub Készletmódosítás()
'
' Készletmódosítás Makro
' Rögzítette: , dátum: 2006.10.29.
'
' Billentyűparancs: Ctrl+m
'
Range("G3:G217").Select
Selection.Copy
Range("C3:C217").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("F3:F217").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("F3").Select

Range("C1").Select
ActiveCell.FormulaR1C1 = "=NOW()"
Range("F3").Select
End Sub"
Előzmény: Törölt nick (8519)
Törölt nick Creative Commons License 2009.01.16 0 0 8519
ja, még az jutott eszembe, hogy zár be alt+f4-el esc helyett :)
Előzmény: Gavriel (8517)
Törölt nick Creative Commons License 2009.01.16 0 0 8518
Én sem tudom sajna hogy kell használni, de kutakodtam:
http://www.mrexcel.com/forum/showthread.php?t=14395
http://www.mrexcel.com/forum/showthread.php?t=16985
Előzmény: Gavriel (8517)
Delila_1 Creative Commons License 2009.01.16 0 0 8516

Kijelölöd a tartományt, beírod az adatot, és Ctrl+enterrel viszed be.

 

Előzmény: csiriprelek (8512)
NeomatiK Creative Commons License 2009.01.15 0 0 8515
Bocs, már látom az oldalon.
Előzmény: NeomatiK (8513)
NeomatiK Creative Commons License 2009.01.15 0 0 8514

Sziasztok!

 

Meg tudjátok mondani, hogy a random függvény mi alapján működik? Nekem nem tűnik teljesen randomnak.

NeomatiK Creative Commons License 2009.01.15 0 0 8513
Régebbi excelhez is jó? 97-hez, 2000-hez?
Előzmény: Goosnargh (8507)
csiriprelek Creative Commons License 2009.01.15 0 0 8512
Sziasztok! Hogyan lehet megoldani hogy a cellákban lévő értékeket azonos módon módositsuk egyszerre? Pl minden érték elé írjon be egy 1-est.
MZ/Y Creative Commons License 2009.01.14 0 0 8511
Kösz, kipróbálom, ha megint kezdi.
Előzmény: Törölt nick (8508)
magyarpityu Creative Commons License 2009.01.14 0 0 8510
Köszönöm! :))
Előzmény: Törölt nick (8506)
Törölt nick Creative Commons License 2009.01.14 0 0 8509
ez nekem fennt volt elég sokáig, csak leszedtem mert keveset használtam. Persze ettől még nem haszntalan. Sőt, jó dolgok vannak benne. Segítheti az ember munkáját jópár helyzetben
Előzmény: Goosnargh (8507)
Törölt nick Creative Commons License 2009.01.14 0 0 8508
Nem tudom mitől van ez, de amúgya ctrl/shift + insert ugyanaz mint a c/v
Előzmény: MZ/Y (8503)
Goosnargh Creative Commons License 2009.01.14 0 0 8507

Visszanéztem 2-3 oldalt, de nem láttam megemlítve:

 

Ezen a blogon bukkantam rá előbb a linkre erről az excel kiegészítőről.

Több mint száz kisebb-nagyobb funcióval bőviti ki az Excel-t 

Free

 

http://www.whypad.com/posts/killer-utilities-add-in-for-excel/13/

 

( ha mégis lett volna itt említve, akkor bocs a duplázásért )

 

 

Törölt nick Creative Commons License 2009.01.14 0 0 8506
Nem tudom a pontos megoldást megmondani neked, de én biztosan az alább írt autosize tulajdonsággal
(Me.Label3.AutoSize = True)
és a formon lévő label szélességét meghatározó
szelessege = Me.Label3.Width
kódokkal kísérleteznék.






Előzmény: magyarpityu (8504)
Törölt nick Creative Commons License 2009.01.14 0 0 8505
van a label-nek egy autosize tulajdonsága (ha ez segít rajtad)
Előzmény: magyarpityu (8504)
magyarpityu Creative Commons License 2009.01.14 0 0 8504

Sziasztok!

 

Szeretnék megint tanácsot kérni! Ha egy UserForm-on van egy Label elem, ami szöveget jelenít meg, akkor ha szerencsém van, elfér a szöveg, ha nincs, akkor csak az eleje látszik, ami még nem lóg ki a megadott szélességű területről. Hogyan tudnám lekérdezni a megjelenítendő szöveg hosszát a képernyőn? Tehát nem a betűk darabszáma érdekel, hanem a proporcionális és adott méretű szöveg területigénye. Előre is köszönöm!

MZ/Y Creative Commons License 2009.01.14 0 0 8503
Üdv!
Nekem olyan egyszerű problémám van, hogy talán nem is ide való.

Az office 2007-et tettem fel és az excel szórakozik velem. CTR+C általában másolást eredményez (ahogy kell), de időnként, fogalmam sincs miért, ugyanerre a "Törlés" panelt (cellék eltolása balra, felfelé, ....) hozza elő. Ilyenkor marad az egér jobb-gombos másolás (ami jóval lassabb, mint a billentyűkód), vagy kilépés, belépés és megint működik egy darabig jól.

Van valakinek ötlete, mi a fenétől lehet ez?
NeomatiK Creative Commons License 2009.01.11 0 0 8502
Köszi! Valóban! :)
Előzmény: Törölt nick (8487)
fraulaci Creative Commons License 2009.01.11 0 0 8501
Köszönöm szépen, ez gyors volt.

Kipróbálom...

üdv.

laci.
Előzmény: Törölt nick (8500)
Törölt nick Creative Commons License 2009.01.11 0 0 8500
Elnézést, nem direkt lett boldra állítva...
Előzmény: Törölt nick (8499)
Törölt nick Creative Commons License 2009.01.11 0 0 8499
’ A rutin a B oszlop utolsó nem üres sorától az első sorig törli a feltételeknek megfelelő sorokat (az üres értéknél is törli a sort)

 

Sub BTörlés()

 

  For i = Range("B" & Rows.Count).End(xlUp).Row To 1 Step -1

    If Range("B" & i) <= 0 Then

      Range("B" & i).EntireRow.Delete

      'Range("B" & i).EntireRow.Interior.ColorIndex = 3

    End If

  Next i

 

End Sub

Előzmény: fraulaci (8498)
fraulaci Creative Commons License 2009.01.11 0 0 8498
Sziasztok!

Lenne itten egy feladat amit meg kellene oldanom.

Adott egy táblázat amiben pl 4 oszlop van.

A "B" oszlop szerint sorba rendezem a táblázatot és ekkor jönne a megoldandó dolog.

Az így kialakult táblázatból ki kellene törölni azokat a sorokat amelyeknél a "B" oszlopban nulla vagy annál kisebb érték szerepel.

És még egy ezt egy makróban kellene végrehajtani.

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

Üdv.
Laci.
donci2 Creative Commons License 2009.01.11 0 0 8497
azért mert az ő gépén okosan lecserélték az excelt 2007-re, az én igényeimet azonban továbbra is maximálisan kielégíti a 2003.

Egyébként: ott lecserélték a mailszervert. Ez észreveszi, hogy egy xls kiterjesztésű állományt akarnak átgyömöszölni rajta, amely valójában egy zippelt xml és egyéb könyvtárakat tartalmazó állomány. Ezt ő gonosz varázslatként értelmezi és félvén a vírusoktól magától lecseréli egy sima txt fájlra, melyben az az üzenet olvasható, hogy "a lótüdőt küldök neked jó fajta excel állományt".

de azt gondolom megoldottam, hátha ezt jobban értitek :)

Sub Konvert()
fs = Application.GetOpenFilename("Számlák (*.xls),*.xls")
If fs <> False Then
Workbooks.Open Filename:=fs
ActiveWorkbook.SaveAs Filename:=fs, _
FileFormat:=xlExcel5, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close
End If
End Sub


ez fut 2007-en is? nem vagyok egy vb guru. én még c-t meg assembly-t tanultam :)
Előzmény: Jozsef (8495)
Törölt nick Creative Commons License 2009.01.10 0 0 8496

Esetleg nem futnál neki még egyszer kicsit erősebben koncentrálva a problémára?

Gondolok itt az ilyen megfogalmazásokra:

 

"Most lecseréltek valami csodát náluk és a korábbi 2007-es xls fájlok helyett egy txt állomány érkezik, mely arról értesít, hogy lecserélte az állományt.

 

Az ismerősöm nem igazán tud a dologgal semmit kezdeni, még csak az excel megnyitását és más típussal lementését sem vállalja."

Előzmény: donci2 (8493)
Jozsef Creative Commons License 2009.01.10 0 0 8495
Ha jobban belegondolsz, a makródnak Excel 2007-ben kellene működnie, akkor meg minek kellene konvertálni a megnyitáshoz?!
Makró helyett javaslom a Ms Office kompatibilitási csomag telepítését Office 2003-ra. Vagy OpenOffice 3.0 :)

http://www.microsoft.com/downloads/details.aspx?familyid=941b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=hu
Előzmény: donci2 (8493)
tt65 Creative Commons License 2009.01.10 0 0 8494
olyan makro nem lenne jó, ami lementi az ismerősödet, és kicseréli egy másikkal?
Előzmény: donci2 (8493)
donci2 Creative Commons License 2009.01.10 0 0 8493
Sziasztok!
Segítségre lenne szükségem. Kellene egy makró, amely bekér egy 2007-es excelfájlt, majd lementi azt 2003-as formátumban és kilép mind a makrót tartalmazó, mind pedig a lementett 2003-as (esetleg a 2007-es fájlból).

ui.: magyarázat:
Van egy ismerősöm, aki folyamatosan küldözget nekem anyagokat. Most lecseréltek valami csodát náluk és a korábbi 2007-es xls fájlok helyett egy txt állomány érkezik, mely arról értesít, hogy lecserélte az állományt. Az ismerősöm nem igazán tud a dologgal semmit kezdeni, még csak az excel megnyitását és más típussal lementését sem vállalja. Nagyon megköszönök minden segítséget!

András
Törölt nick Creative Commons License 2009.01.09 0 0 8492
írd le ha megvan légyszi
Előzmény: Gavriel (8491)
Törölt nick Creative Commons License 2009.01.09 0 0 8489

Szia!

 

Ha még aktuális a kérdés, íme egy lehetséges megoldás, megnyitás után kérdezd le a ActiveWorkbook.ReadOnly tulajdonságot, ha true, akkor ReadOnly, vagyis csak olvasható:

 

Sub Megnyitás()

  Workbooks.Open Filename:="fájlelérés"
  If ActiveWorkbook.ReadOnly Then
    MsgBox "Csak olvasható..."
  Else
    MsgBox "Szerkeszthető is!"
  End If

End Sub

Előzmény: ERW320 (8465)
Delila_1 Creative Commons License 2009.01.09 0 0 8488

 

Eddig nem vettem észre ezt a beállítási lehetőséget.

Köszi.

Előzmény: Törölt nick (8480)
Törölt nick Creative Commons License 2009.01.08 0 0 8487
van a beszúrás menüpontban egy olyan, hoyg "hivatkozás"
Előzmény: NeomatiK (8484)
Törölt nick Creative Commons License 2009.01.08 0 0 8486
az 1. kérdés érdekel engem is. Az Application.OnKey segítségével kell, csak sajnos nincs időm kísérletezgetni vele. A helpet érdemes nézni jókat ír róla ( már amit értek belőle...)
Előzmény: Gavriel (8483)
Törölt nick Creative Commons License 2009.01.08 0 0 8485
elsőt nem tudom kapásból, utána kéne néznem

másodikra meg:
küldjél a formon
Application.SendKeys ("+{TAB}")
paranccsal tabokat amíg el nem ju a megfelelőig.
Előzmény: Gavriel (8483)
NeomatiK Creative Commons License 2009.01.08 0 0 8484
Excelben webre mutató linket hogy kell csinálni? A Word felismeri, ha csak simán beírom, az excel nem :-//
NeomatiK Creative Commons License 2009.01.08 0 0 8482

Köszi, ezt fogom használni!

 

Az Exceles VBA-ról hol lehet olvasni, megtanulni?

Előzmény: Törölt nick (8480)
Master of Amateurs :) Creative Commons License 2009.01.08 0 0 8481

A legegyszerűbb megoldás ritkán jut eszembe. Erre nem gondoltam. :D

Előzmény: Törölt nick (8480)
Törölt nick Creative Commons License 2009.01.08 0 0 8480
Nem értem minek kell ehhez makró :)

Ott van a menüpont a Nézet/Szerkesztőléc alatt. Ki/Be lehet kapcsolgatni.
De ha mindenképpen gombot akarsz hozzá, akkor Nézet/Eszköztárak/Testreszabás/Parancsok fül ---> Kategóriák oldalon kiválasztani a "Nézet"-et és a bal (Parancsok) oldalról egérrel oda húzod a "Szerkesztőléc" parancsot ahova akarod.
És máris van egy gombod amivel ki*be lehet kapcsolgatni.
Előzmény: NeomatiK (8475)
Master of Amateurs :) Creative Commons License 2009.01.08 0 0 8479

:(

Az én markómmal is válogathatja a ki-be kapcsolást...

Előzmény: Delila_1 (8476)
Master of Amateurs :) Creative Commons License 2009.01.08 0 0 8478

Lemaradtam. Affene... :)

 

 

Köszönöm szépen a segítséged!

Előzmény: Delila_1 (8476)
Master of Amateurs :) Creative Commons License 2009.01.08 0 0 8477

Ha nem gyakran kell használnod, akkor inkább csináld így:

Eszközök -> Beállítások... -> Megjelenítés -> Segédelemeknél ott a jelölőnégyzet

Ha nagyon gyakran van szükséged rá, akkor szólj, mailben elküldöm majd.

Előzmény: NeomatiK (8475)
Delila_1 Creative Commons License 2009.01.08 0 0 8476

Alt+F11-re előjön a VBA szerkesztője. Bal oldalon ráállsz a füzeted nevére.

Az Insert/Module menü ad egy új üres lapot jobb oldalon. Ide írd be:

 

Sub StatSor_ki_be()
If Application.DisplayFormulaBar Then
    Application.DisplayFormulaBar = False
Else
    Application.DisplayFormulaBar = True
End If
End Sub

Ezzel a makróval váltogathatod a ki-bekapcsolást. Ha sűrűn van szükséged rá, érdemes ikont rendelni hozzá.

Előzmény: NeomatiK (8475)
NeomatiK Creative Commons License 2009.01.07 0 0 8475
Köszi, de ezt hova kell beírni? :)
Előzmény: Master of Amateurs :) (8471)
Delila_1 Creative Commons License 2009.01.07 0 0 8474

 

Úgy látszik, ma ilyen összecsapós nap van, bocs.

 

    If Cells(sor, vizsgált_oszlop) = Int(Cells(sor, vizsgált_oszlop)) Then
        Range(Cells(sor, 1), Cells(sor, ucso_oszlop)).Interior.ColorIndex = 3
    End If

Előzmény: Master of Amateurs :) (8471)
Delila_1 Creative Commons License 2009.01.07 0 0 8473

Javítás

 

if cells(sor,oszlop)=int(cells(sor,oszlop)) then

cells(sor,oszlop_1).interior.colorindex=3

 

Az oszlop_1 az utolsó, pirosítandó oszlop, nem azonos a vizsgált cella oszlopával.

Előzmény: Delila_1 (8472)
Delila_1 Creative Commons License 2009.01.07 0 0 8472

Szia!

 

Egy ciklusban

 

if cells(sor,oszlop)=int(cells(sor,oszlop)) then cells(sor,oszlop).interior.colorindex=3

 

 

A számformátum nem számít.

Előzmény: Master of Amateurs :) (8469)
Master of Amateurs :) Creative Commons License 2009.01.07 0 0 8471

Kicsit összecsaptam az előbb, abbéli igyekezetemben, hogy végre én segítsek másnak :)

 

Tehát:

Sub szerklec()

 

 Dim allapot As Boolean

 

 allapot = Application.DisplayFormulaBar

 Application.DisplayFormulaBar = Not allapot

 

End Sub

Előzmény: NeomatiK (8468)
Master of Amateurs :) Creative Commons License 2009.01.07 0 0 8470

Szerintem ez jó lesz rá.

 

sub szerklec

 

 Dim allapot as boolen

 

 allapot = Application.DisplayFormulaBar

 Application.DisplayFormulaBar = not allapot

 

end sub

 

Ha nem jó, akkor bocsi! :)

Előzmény: NeomatiK (8468)
Master of Amateurs :) Creative Commons License 2009.01.07 0 0 8469

Sziasztok!

 

 A segítségeteket kérem az alábbi probléma mielőbbi megoldását remélve:

 

 Adott oszlop tartalmaz pár tízezer számadatot.

 Szeretném megjelölni pirossal az egész sort, ahol nem egész szám van.

 A számok formátuma a következő: #0,0000

 

 Mindenképp makróval kell megoldanom ezt a nehézséget.

 

 Segítségeteket előre is köszönöm!

NeomatiK Creative Commons License 2009.01.07 0 0 8468

Köszi, megkeresem, hol lehet kikapcsolni. Látszik, hogy van még mit tanulni :)

Előzmény: Törölt nick (8467)
Törölt nick Creative Commons License 2009.01.06 0 0 8467
kapcsold ki a szerkesztőlécet és szerkeszd a képletet a cellában. szerintem
Előzmény: NeomatiK (8466)
NeomatiK Creative Commons License 2009.01.06 0 0 8466
Sziasztok! Ha rámegyek egy cellára, akkor fent kiírja a függvényt (ha függvény van a cellában). Igenám de ha sok adat van benne, akkor több sorba tördeli és így kitakarja az oszlopok A, B, C ... nevét. Meg lehet csinálni, hogy ne takarja ki? Mert így mindig át kell lépnem egy üres cellára, hogy lássam az oszlop nevét, aztán vissza a cellára, hogy az oszloptól függően átírjam a függvényt.
ERW320 Creative Commons License 2009.01.06 0 0 8465
Illetve, jó a kérdés, ugyanis a következő problémám ott lesz, hogy ha programból meg akarok nyitni egy másik fájlt amelyet már korábban megnyitott valaki!
ERW320 Creative Commons License 2009.01.05 0 0 8464

Igen, persze, AskUser = ...

Köszönöm a figyelmeztetést!

Előzmény: Törölt nick (8462)
Törölt nick Creative Commons License 2009.01.05 0 0 8463
jóvanna
Előzmény: Törölt nick (8461)
Törölt nick Creative Commons License 2009.01.05 0 0 8462
Köszönöm, ezt (a hálózati felhasználó azonosító lekérdezést) ismertem, azt hittem, hogy azt tudod lekérdezni valahogy, hogy ki használ egy már megnyitott fájlt...

Egyébként, gondolom elgépelted az alábbit:

Function AskUser() As String
Dim Buffer As String * 100
Dim BuffLen As Long

  BuffLen = 100
  GetUserName Buffer, BuffLen
  AskUser = Left(Buffer, BuffLen - 1)

End Function

Előzmény: ERW320 (8460)
Törölt nick Creative Commons License 2009.01.05 0 0 8461
Köszi ;-)
Előzmény: Törölt nick (8459)
ERW320 Creative Commons License 2009.01.05 0 0 8460

Kedves Boraka!

 

Az "Application.UserName" az Excel beállításánál megadott felhasználónevet takarja, az általam használt megoldás a következő:

 

Dim UserName As String

 

Declare Sub GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long)

 

Function AskUser () As String

  Dim Buffer As String * 100
  Dim BuffLen As Long
  BuffLen = 100
  GetUserName Buffer, BuffLen
  AskName = Left(Buffer, BuffLen - 1)
End Sub

 

...

 

UserName = AskUser

 

Előzmény: Törölt nick (8458)
Törölt nick Creative Commons License 2009.01.04 0 0 8459
MsgBox Application.UserName
Előzmény: Törölt nick (8458)
Törölt nick Creative Commons License 2009.01.04 0 0 8458

"...a kérdésre keresve a választ, hogy miként lehet megtudni, hogy melyik felhasználó nyitotta meg a fájlt, de arra gyorsan rátaláltam egy idegen nyelvű fórumos oldalon,"

 

Kedves ERW320!

 

Ez csak nem hagy nyugton, esetleg megosztanád ennek a megoldását?

 

köszi

Előzmény: ERW320 (8456)
Törölt nick Creative Commons License 2009.01.04 0 0 8457
Nagyon szívesen, ha tudok máskor is! Egyébként, kb. egy éve én is itt tanulok a topictársaktól.
Előzmény: ERW320 (8456)
ERW320 Creative Commons License 2009.01.04 0 0 8456

Hát, azt hosszú lenne most leírni, de semmi gond mert írtam megírtam a ParamPR1toPR2 és a ParamPR2toPR1 subokat, melyeket a PR1 fájl betöltése után meghívok (a ParamPR1toPR2-t a PR1-ből, a ParamPR2toPR1-et pedig az imént meghívott PR2-ben lévő ParamPR1toPR2-ből, s így azt a néhány alapváltozót amely a működéshez kell át tudom adni-venni.

 

A PR1 egyébként a munkafájl (xls), a PR2 pedig tartalmazza az eljárásokat és függvényeket, amelyet xla-típusúként mentettem, de a hordozhatóság miatt nem a ...MicrosoftAddIns könyvtárba (a betöltéséről a PR1 gondoskodik).

 

 

Kedves boraka és robbantomester!!!

 

Nagyon szépen köszönöm a tudást, melyeket megosztottatok velem!!!

 

Fórumbeli tevékenységem 2008.12.30-án kezdődött arra a kérdésre keresve a választ, hogy miként lehet megtudni, hogy melyik felhasználó nyitotta meg a fájlt, de arra gyorsan rátaláltam egy idegen nyelvű fórumos oldalon, de az ezen a fórumon feszegetett kérdésekkel Nélkületek nem boldogultam!

 

Mégegyszer KÖSZÖNÖM, igyekszem viszonozni Nektek!

 

Törölt nick Creative Commons License 2009.01.04 0 0 8455
Egyébként, nem igazán értem, miért kellene egy eljárásnak a megkapott változók értékein túl még egyéb változókat is ismernie az átadó fájlban dekraláltak közül?
Előzmény: ERW320 (8453)
Törölt nick Creative Commons License 2009.01.04 0 0 8454
Sajnos, ezt nem tudom, de hátha jön valaki és elmondja...
Előzmény: ERW320 (8453)
ERW320 Creative Commons License 2009.01.04 0 0 8453

Igen, ezt nekem is sikerült összehoznom, de eljáráshíváson kívül nem lehet a másik fájl pl. Modul1-ében Public-ként létrehozott "Proba" nevű változójára hivatkozni valahogyan?

 

Törölt nick Creative Commons License 2009.01.04 0 0 8452

Az Application.Run-al paraméterként át lehet adni a változókat, ez előző példa ezzel kiegészítve:

 

Sub auto_open()
Dim ÁtadottÉrték As Byte

 

  ÁtadottÉrték = 3

 

  MsgBox "Ez itt a PR1.XLS - auto_open ejárása" & vbNewLine & vbNewLine & _
  "Most meghívom a PR2.XLS - PR2_teszt eljárását..." & vbNewLine & vbNewLine & _
  "Az átadott paraméter értéke = " & ÁtadottÉrték
 
  Application.Run "PR2.xls!Module1.PR2_teszt", ÁtadottÉrték

 

End Sub

 

 

Sub PR2_teszt(ByVal ÁtvettÉrték As Byte)

 

  MsgBox "Ez itt a PR2.XLS - PR2_teszt eljárása!" & vbNewLine & vbNewLine & _
  "Az átvett paraméter értéke: " & ÁtvettÉrték

 

End Sub

Előzmény: ERW320 (8450)
Okos Tóni Creative Commons License 2009.01.04 0 0 8451
Boraka és ERW köszi, így fogok tenni! (de előtte lefexem aludni, mert ez így kezd durva lenni :) )

Gubameister problémájára addig nem lesz válasz, amíg nem tudható, pontosan mi a célja. Az fkeres magában neki biztos alkalmatlan, mert az fkeres EGY dologhoz rendel EGY dolgot. Neki pedig egy kódszó többször is szerepel a listájában, ennél többet viszont nem tudunk, a vágyott rendezés elvét sem. Tehát hogy segíteni tudjunk neki, tudnunk kéne, mi is a célja.
ERW320 Creative Commons License 2009.01.04 0 0 8450

Oké, ez eddig nagyon szuperül működik, köszönöm!!!

 

Nem tudod hogy lehet a két fáljban lévő változókat mindkét fájlban egyaránt használni?

 

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

Probáljuk meg a következőket:

 

1.

Adott egy PR1.XLS fájl amelynek pl. az auto_open() eljárása ilyen:

 

Sub auto_open()

 

  MsgBox "Ez itt a PR1.XLS - auto_open ejárása" & vbNewLine & vbNewLine & _
  "Most meghívom a PR2.XLS - PR2_teszt eljárását..."
 
  Application.Run "PR2.xls!Module1.PR2_teszt"

 

End Sub

 

2.

Adott egy PR2.XLS fájl, ahol a module1-ben van egy ilyen kis rutin:

 

Sub PR2_teszt()

  MsgBox "Ez itt a PR2.XLS - PR2_teszt eljárása!"

End Sub

 

Na most, ha megnyitod a PR1.XlS-t és a PR2.XLS már meg van nyitva az auto_open meghívja a másik fájl tesztrutinját. (Ha nincs még megnyitva, akkor az Application.Run előtt nyisd meg, mert egyébként hibaüzenettel visszaszól ;-)

 

Remélem, valami ilyesmire gondoltál.

Előzmény: ERW320 (8445)
Delila_1 Creative Commons License 2009.01.04 0 0 8448
Az irányított szűrő lesz a barátod.
Előzmény: tt65 (8446)
ERW320 Creative Commons License 2009.01.04 0 0 8447

Magyarul, van pl. egy címlistád, melynek 1. oszlopa a város, 2. oszlopa pedig a cím és cím szerint szeretnél keresni?

 

Pl.:

1.   2.

Ács  Híd u. 6.

Ács  Kopja u. 4.

Örs Híd u. 6

Örs Hajó u. 2.

 

Itt látható, hogy a "Híd u. 6." két városban is megtalálható, így nyilván csak a "Ács" településen lévőt fogja megtalálni.

 

Ha hasonló a problémád, írd le légyszi részletesebben, mert erre van egy-két trükk;

viszont amennyiben teljesen melléfogtam, kérlek írd le, hogy konkrétan miről van szó, hogy megérthessük a problémád!

 

Előzmény: Gubameister (8413)
tt65 Creative Commons License 2009.01.04 0 0 8446
ok. FKERES-ről már mindent tudunk, de a 8338-ra még mindíg nincs válasz!
Előzmény: ERW320 (8444)
ERW320 Creative Commons License 2009.01.04 0 0 8445

boraka!

 

Az én problémámra nem tudsz megoldást? Please!!!

ERW320 Creative Commons License 2009.01.04 0 0 8444
Pontosan így van!!!
Előzmény: Törölt nick (8443)
Törölt nick Creative Commons License 2009.01.04 0 0 8443

FKERES(keresési_érték;tömb;oszlop_szám;tartományban_keres)

 

Szóval, az általad idézett rész a "tartományban_keres" paraméterre vonatkozik:

 

"Tartományban_keres:  Logikai érték, amellyel az FKERES függvény pontos vagy közelítő keresését adhatjuk meg:

 

Ha értéke IGAZ vagy hiányzik, a függvény pontos vagy közelítő egyezést ad vissza. Ha pontos egyezést nem talált a függvény, akkor a következő legnagyobb, de a keresési_érték argumentumnál kisebb értéket adja vissza.

A tömb első oszlopában található értékeket növekvő sorrendben kell elrendezni ahhoz, hogy az FKERES biztosan a megfelelő értéket adja vissza. Az értékek növekvő sorrendbe rendezéséhez válasszuk az Adatok menü Sorba rendezés parancsát, majd az Emelkedő beállítást. További tájékoztatásért olvassuk el az Alapértelmezés szerinti rendezési sorrend című témakört.

 

Ha az argumentum értéke HAMIS, akkor az FKERES pontos egyezést keres. Ebben az esetben a tömb első oszlopának nem szükséges rendezettnek lennie. Ha két vagy több olyan érték is található a tömbben, amely egyezik a keresési értékkel, az elsőként megtalált érték használatos. Ha nem talál pontos egyezést, a függvény a #HIÁNYZIK hibaértéket adja vissza."

 

Előzmény: tt65 (8440)
ERW320 Creative Commons License 2009.01.04 0 0 8442

Én nem tapasztaltam még eddig, hogy ha nincs sorrendben, akkor hibásan működne, pedig elég gyakran használom az FKERES-t!

Előzmény: tt65 (8440)
ERW320 Creative Commons License 2009.01.04 0 0 8441

Szia!

 

Ha van két excel fájlom és az egyikben történt esemény (Pl.: Workbook_Open) hatására egy a másikban lévő (Pl.: "XLS_Open" nevű) eljárást akarom meghívni, akkor azt hogyan tehetem meg?

 

Előzmény: Törölt nick (8439)
tt65 Creative Commons License 2009.01.04 0 0 8440
Lehet, részletes tesztelést nem végeztem.
A Help szerint: "A tábla első oszlopában lévő értékeknek növekvő sorrendben kell elhelyezkedniük, mert különben az FKERES hibás eredményt adhat. További tudnivalókat az Adatok sorba rendezése című rész tartalmaz." Csak felhívtam a figyelmet, hogy milyen gondja lehet még a fv alkalmazásának!
Előzmény: Okos Tóni (8436)
Törölt nick Creative Commons License 2009.01.04 0 0 8439

Szia!

 

Mit szólnál egy ilyen megoldáshoz, az adott munkalapod Worksheet - Change eljárásával:

 

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then ' itt pontosan add meg a címet, hogy melyik cella az érdekes.

 

  Select Case Range("A1")
    Case 1
      MsgBox "az A1 értéke 1..."
    Case 2
      MsgBox "az A1 értéke 2..."
    Case 3
      MsgBox "az A1 értéke 3..."
    Case Else ' Ha kell
      ' Minden más
  End Select

 

End If
End Sub

Előzmény: Okos Tóni (8435)
ERW320 Creative Commons License 2009.01.04 0 0 8438

Ezután persze meg kell vizsgálni, hogy melyik cella tartalma változott meg:

 

Private Sub WorksheetChange()
  If Target.Row = KívántSor And Target.Column = KívántOszlop then

    <ide másold be a makród>

  End If

End Sub

 

Előzmény: ERW320 (8437)
ERW320 Creative Commons License 2009.01.04 0 0 8437

Hello Tóni!
A VBA-n pl.: a Munka1 objektumra kattints kétszer, majd a jobb oldali panel bal oldali legördülőmenüjében válaszd a ki "Worksheet", a jobb oldali legördülőmenüjében pedig válaszd ki a "Change"-t!

 

Előzmény: Okos Tóni (8435)
Okos Tóni Creative Commons License 2009.01.04 0 0 8436
"az FKERESnél, még sorrendbe rendezettnek is kell lennie amiben keres!"

Szerintem csak akkor kell sorrendbe rendezettnek lennie, ha tartományban keresünk. Ha pontos egyezést keresünk, akkor nem.
Előzmény: tt65 (8414)
Okos Tóni Creative Commons License 2009.01.04 0 0 8435
Mélyen tisztelt hozzáértők, plíz.

Van egy-két cella a lapomon, aminek az érétkét ha megváltoztatom, le kéne fusson egy egyszerű makró. A makró már rendben van, csak azt nem tudom, hogy kell pl. az A1 cella OnChange eseményére hivatkozni. Gondolom vmi ilyesmi a megoldás. Avasson be valaki, köszönöm!
ERW320 Creative Commons License 2009.01.03 0 0 8434

Ha van két excel fájlom és az egyikben történt esemény (Pl.: Workbook_Open) hatására egy a másikban lévő (Pl.: "XLS_Open" nevű) eljárást akarom meghívni, akkor azt hogyan tehetem meg?

Sánta Kutya (SK) Creative Commons License 2009.01.03 0 0 8433
2 backslasht írj. \\ --> \
Előzmény: arpadosso2 (8430)
Törölt nick Creative Commons License 2009.01.03 0 0 8432

Csatlakoznék robbantomester kollégához, a csatolt képen egy példa látható arra, hogy az intéző hogy látja a hálózati helyet, valamint ennek alapján a javaslatom az elérési út megadására. Remélem, így sikerül.

 

Előzmény: arpadosso2 (8430)
Törölt nick Creative Commons License 2009.01.03 0 0 8431
Tehát. Kicseréled a "hivatkozás" függvényben az elérési utat, úgy hogy nem a sajátgép betűjelét használod, hanem a közvetlen elérési (hálózati) utat írod be?
Még mindig úgy gondolom, hogy működnie kellene - bár a 2007-es excelt nem használtam még... :(
Előzmény: arpadosso2 (8430)
arpadosso2 Creative Commons License 2009.01.03 0 0 8430
Az előző példákból kimaradt a backslash (sajnos nem tudom hogy kell beírni, hogy megjelenjen), de mindegyik a helyén van. Az ötleted sajnos nem vált be, akkor is átírja a excelben lévő hivatkozást \számítógépnévre, ami mentve már nem lesz megfelelő, mert nem frissíti automatikusan az adatokat. :(
Előzmény: Törölt nick (8429)
Törölt nick Creative Commons License 2009.01.03 0 0 8429
magyarul azt az elérési utat add meg, amit a csatolások frissítésénél megjelenít az excel (amit írtál te is)
Előzmény: Törölt nick (8428)
Törölt nick Creative Commons License 2009.01.03 0 0 8428
én első körben kipróbálnám az elérési utat a hiperhivatkozás függvényben átírni pl.
\\serverneve\eleresiut\file.xlsx
(mint hálózati meghajtó elérési útja)
Előzmény: arpadosso2 (8427)
arpadosso2 Creative Commons License 2009.01.03 0 0 8427
Sziasztok! Van egy dilemmám és abban reménykedek, hogy valaki találkozott már ilyen problémával és tud a következőkben segíteni:

Adott egy hálózati meghajtó (szerver) melynek a jele N:, továbbá hátom excel fájl.
1. forras.xlsx, melynek adat munkalapján az A1 cellájában van egy szám, mondjuk 5
2. adat.xlsx, melynek az A1 cellájában a következő hivatkozás található: ='N:[forras.xlsx]adat'!A1
3. vezérlő.xlsx melynek az A1 cellájában a következő függvény van : =HIPERHIVATKOZÁS("N:adat.xlsx";"Adat megnyitása")

Nos a probléma a következő: ha az adat.xlsx-et nyitom meg, akkor a csatolásokban lévő hivatkozások a megadott hálózati mappa betűjelét használja az elérési úthoz. Akármikor nyitom meg, zárom be az úgy marad, ezáltal megnyitáskor a megfelelő beállításokkal azonnal frissíti az adatot, ha az a forras.xlsx fájlban változik. Ez a normális működés, így kell csinálnia. Viszont ha a vezérlő.xlsx fájlt nyitom meg és a linkre kattintva nyitom meg az adat.xlsx fájlt, akkor a megnyitáskor hibaüzenettel indul el: Ez a munkafüzet egy vagy több nem frissíthető csatolást tartalmaz. Két lehetőség van hogy Tovább vagy Csatolások módosítása. A továbbra kattintva azt mondja hogy nem módosítja a csatolásokat, ezért a tovább gombra kattintok. Igen ám, de ha megnézem a Hivatkozások menüpontot és az ott becsatolt fájlok elérhetőségét, akkor az N: helyett a számítógépnév hivatkozást használja, ami azért nem jó, mert ha mentésnél így marad, akkor nem fogja frissíteni az adatokat.

Már leválasztottam a hálózati csatlakozó majd újra, excelből, hátha az segít de nem semmi. Hozzáadtam már a biztonságos helyekhez a hálózati meghajtót, de semmi, semmi, semmi. Teljesen ki vagyok idegileg, aki tud kérem segítsen
Törölt nick Creative Commons License 2009.01.01 0 0 8426
Talán a meghívott munkafüzet megfelelő helyére (munkalapjára) kell megírni a kódot...

Ezt nem tudom, hogy lehet e vezérelni egy Excel.Application-ként meghívott munkafüzet munkalap eseményeit.

Várd meg a többiek válaszát is, mert tud majd segíteni más is.
Előzmény: ERW320 (8425)
ERW320 Creative Commons License 2009.01.01 0 0 8425

És ha több eseményvezérelt dologra is reagálni kellene a programnak?

 

Pl.: - Private Sub Worksheet_Change(ByVal Target As Range)

      - Private Sub WorksheetChange()

 

Előzmény: Törölt nick (8424)
Törölt nick Creative Commons License 2009.01.01 0 0 8424
nem feltétlenül - inkább modul lapra. Aztán meg tudod hívni az eljárást egy eszköztárgombbal, vagy vmivel
Előzmény: ERW320 (8422)
Törölt nick Creative Commons License 2009.01.01 0 0 8423
Lemradt az elejéről:

Dim Payment As Workbook

Ha láthatóvá akarod tenni:
Payment.Application.Visible = True

Ha végeztél vele, akkor be is kell zárni:
Payment.Close

Vagy elmenteni:
Payment.Save = True
Előzmény: Törölt nick (8421)
ERW320 Creative Commons License 2009.01.01 0 0 8422
ezt a programrészletet a kezelendő xls ThisWorkbook-jába kell írjam?
Előzmény: Törölt nick (8421)
Törölt nick Creative Commons License 2009.01.01 0 0 8421
pl.:

Dim Path As String
Dim xls As Object
Path = "a teljes elérési út"
Set xls = CreateObject("Excel.Application")
Set Payment = xls.Workbooks.Open(Path)

talán el sem rontottam, nem ellenőriztem le.
Előzmény: ERW320 (8420)
ERW320 Creative Commons License 2009.01.01 0 0 8420
és aztán hogy állítom be annál a táblázatnál amelyikre hatással szeretném, hogy legyen a program működése?
Előzmény: Törölt nick (8419)
Törölt nick Creative Commons License 2009.01.01 0 0 8419
ha elmented excel bővítményként. (xla)
Előzmény: ERW320 (8418)
ERW320 Creative Commons License 2009.01.01 0 0 8418

Sziasztok!

 

Hogyan lehet olyan macrot (én inkább programnak nevezném) írni amely egy külön elmentett fájlban van, de egy másik táblázaton dolgozik?

 

tt65 Creative Commons License 2008.12.30 0 0 8417
Szűrni? Szűréssel! Nézd meg Adimesiter legutóbbi hozzászólásait, ő is szűréssel küzd! De, ha van időd írd le, tképp mire szeretnél megoldást találni!
Előzmény: Gubameister (8416)
Gubameister Creative Commons License 2008.12.30 0 0 8416
Lehet egyértelműen adja magát a válasz, de az utóbbit hogyan lehet megoldani ?
Előzmény: tt65 (8415)
tt65 Creative Commons License 2008.12.30 0 0 8415
tulajdonképp neked kellene eldönteni, hogy kódszámhoz akarsz értéket rendelni, vagy adott kódszámhoz tartozó adatokat megjeleníteni azaz szűrni?
Előzmény: Gubameister (8413)
tt65 Creative Commons License 2008.12.30 0 0 8414

az FKERESnél, még sorrendbe rendezettnek is kell lennie amiben keres!

szvsz (én azérmég nem vagyok guru...) az FKERES kölcsönösen egyértelmű hozzárendeléshez való, ha egy kód értékhez több eredmény is tartozhat, akkor valami mást kellene alkalmazni!

 

Előzmény: Gubameister (8413)
Gubameister Creative Commons License 2008.12.30 0 0 8413
Sziasztok Excelguruk

Elakadtam egy táblázat szerkesztésében és ehhez kérnék egy kis segítséget.

A helyzet a következő, fkeres függvénnyel akarok egy kódszámhoz értékeket rendelni viszont egy ilyen számhoz több eredmény is tartozik és minden esetben csak a legelsőt jeleníti meg.

Ezzel a függvénnyel nem is lehet ilyet csinálni, vagy csak beállítás kérdése az egész?

Ha nem megoldható, tudnátok javasolni valami mást?

Köszi előre is.
Törölt nick Creative Commons License 2008.12.30 0 0 8412

 Mit kell ilyenkor szűrőtartománynak megadni?

Az a lényeg, hogy az oszlopcím alatt legyen a szűrés kritériuma. Az oszlopcím ez esetben azon oszlop címe, amelyben a szűrési kritériumok vannak.

Csinálhatod azt is, hogy beszúrsz +1 oszlopot az üres listád mellé, amelyben megadod az oszlopcímet és alatta egy cellával a szűrés kritériumot.

Előzmény: adimania (8405)
tt65 Creative Commons License 2008.12.30 0 0 8411
elküldtem mailban!
Előzmény: adimania (8409)
tt65 Creative Commons License 2008.12.30 0 0 8410

a programozással én is most ismerkedem, igérni nem merek.

úgy fognék neki, hogy makróban rögzíteném a szűrés teendőit, aztán beletenném ezt a figyelő utasítást, hogy futtassa a makrót, ha változás történik az adatok között! ha lesz egy kis időm kipróbálom! de hátha lesz másnak is ötlete, hogy lehetne még megoldani!

Előzmény: adimania (8409)
adimania Creative Commons License 2008.12.30 0 0 8409
Egy ilyen makró elkészítése megoldható varázslóval is vagy feltétlenül programoznom kell hozzá?
Amennyiben én is megtudom oldani (kezdőként), tudnál benne segíteni nekem?
tt65 Creative Commons License 2008.12.30 0 0 8408
lehet olyan makrót készíteni, ami a szűrést frissíti és nem utasításra indul (tőled), hanem akkor, ha a listatartomány módosul (magától)!
Előzmény: adimania (8407)
adimania Creative Commons License 2008.12.30 0 0 8407
Köszi szépen működik.

Viszont azt vettem észre, hogyha bővítem a baloldali táblázatot, tehát lefelé haladva tételeket adok hozzá, azokat már nem gyűjti ki a jobboldali táblázatba, csak akkor hogyha újabb szűrést végzek.

Hogyan tudom megoldani, hogy ahogy folyamatosan bővítem a táblázatot lefelé, a jobboldali táblázatban automatikusan megjelenjenek az újabb "teljesített tételek"???
Előzmény: tt65 (8406)
tt65 Creative Commons License 2008.12.29 0 0 8406
azt a tartományt amiben a szűrési feltételeket elhelyezed.
érdemes lemásolni a tartomány első sorának az adatállomány első sorát, a másodikba pedig betenni az x-et abba az oszlopba, ahova te is jelölni fogsz.
nézd meg a helpet, tényleg segíteni fog!
lsd: Szűrés speciális feltételek alapján
Előzmény: adimania (8405)
adimania Creative Commons License 2008.12.29 0 0 8405
Jelen példa esetében működik minden, viszont hogyha az F6 cella üres és mondjuk legközelebb csak az F8-ban van "X", akkor már nem, mert listázza az egész tartományt. Mit kell ilyenkor szűrőtartománynak megadni?

tt65-nek köszi a mintát.

Az alatt pedig, hogy elég jol haladok azt értettem, hogy a legalapvetőbb dolgok, mint pl.: SZUM, HA, DBTELI, stb. függvények használata megy és eddig csak ezekre volt szükség. De mint látod ez a feladat már kifogott rajtam, a szűrő eszembe sem jutott. Ezért kértem a segítségeteket. és ezért szeretném minnél jobban elsajátítani ezeket az ismereteket.

előre is köszi a választ!
Előzmény: Törölt nick (8401)
tt65 Creative Commons License 2008.12.29 0 0 8404
ajánlok egy mintát:

budget
Előzmény: adimania (8385)
tt65 Creative Commons License 2008.12.29 0 0 8403
az előbb még azt irtad egész jól haladsz a költségvetés készítő programmal!
na mindegy..
sztem akármilyen régi excel könyv is jó az alapokhoz, de a help is segítséget nyújt, sőt a microsoft honlapja is!
ha bíros az angolt, akkor keress rá az excel bible szavakra és találsz jót, már 2007hez is!
Előzmény: adimania (8402)
adimania Creative Commons License 2008.12.29 0 0 8402
Köszönöm szépen a segítségeteket, frankón működik a szűrős dolog!

Tudtok esetleg ajánlani valamilyen szakirodalmat, esetleg tutorialt az excellel kapcsolatban? Szeretném elsajátítani ha nem is az egészet, de az alapvetőbb dolgokat mindenképpen!

Előre is köszi!

Üdv,
Ádám
Törölt nick Creative Commons License 2008.12.29 0 0 8401
a legegyszerűbb/leggyorsabb/legtisztább megoldás szerintem:

Adatok/Irányított szűrő -> Más helyre másolja
Listatartomány: $C$5:$F$15
Szűrőtartomány: $F$5:$F$6
Hova másolja: $H$6:$J$6


Előzmény: adimania (8385)
Törölt nick Creative Commons License 2008.12.29 0 0 8400

Bővítménykezelőben kell bekapcsolni pár dolgot, azt elfelejtettem leírni.

Természetesen magyar Office 2003-ban működik is az MROUND, mert az van nekem is.

Előzmény: Sánta Kutya (SK) (8391)
tt65 Creative Commons License 2008.12.29 0 0 8399
nem is kell átmásolni, hanem nem a helyben szűr opciót választod, hanem a máshol szűr-t!
Előzmény: toccata (8395)
Jozsef Creative Commons License 2008.12.29 0 0 8398
Adatok/Adat tábla pont erre való.
Előzmény: repuleskepekben (8386)
repuleskepekben Creative Commons License 2008.12.29 0 0 8397

.Ha úgy van megoldás, akkor jöhet a makró...

Előzmény: toccata (8396)
toccata Creative Commons License 2008.12.29 0 0 8396
Makró lehet?
Előzmény: repuleskepekben (8394)
toccata Creative Commons License 2008.12.29 0 0 8395
Rászűrsz az x-re és az eredményül kapott cellákat átmásolod.
Előzmény: adimania (8385)
repuleskepekben Creative Commons License 2008.12.29 0 0 8394
Igen, úgy, hogy csak egy függvény cella van, amibe be kell helyettesíteni az értékeket...
Előzmény: Sánta Kutya (SK) (8389)
Sánta Kutya (SK) Creative Commons License 2008.12.29 0 0 8393
Az verzióprobléma lehetett, mert nálam 2000 van.
Előzmény: Hierro Nyh. (8392)
Hierro Nyh. Creative Commons License 2008.12.29 0 0 8392

Közben sikerült megtalálni! KEREK helyett KEREKÍTÉS kell, akkor működik. :)

 

Köszi!

Előzmény: Sánta Kutya (SK) (8391)
Sánta Kutya (SK) Creative Commons License 2008.12.29 0 0 8391
Ez a hiba például akkor jöhet elő, ha magyar Excelbe angol függvénynevet írsz be, mint az MROUND. De akkor meg a KEREK-nek kellene működnie.
Előzmény: Hierro Nyh. (8390)
Hierro Nyh. Creative Commons License 2008.12.29 0 0 8390
#NÉV?
Előzmény: Sánta Kutya (SK) (8388)
Sánta Kutya (SK) Creative Commons License 2008.12.29 0 0 8389
Tehát úgy érted, hogy egyetlen cellában akarod változtatni a képletet? Az nem jó, hogy mindegyik mellett ott van ugyanaz a képlet?
Előzmény: repuleskepekben (8386)
Sánta Kutya (SK) Creative Commons License 2008.12.29 0 0 8388
Mi volt az eredmény?
Előzmény: Hierro Nyh. (8387)
Hierro Nyh. Creative Commons License 2008.12.29 0 0 8387
Kipróbáltam mindkettőt, de egyik sem működik. (2003-as Office-om van)
Előzmény: Törölt nick (8384)
repuleskepekben Creative Commons License 2008.12.29 0 0 8386

üdv mindenkinek.

 

Lenne egy olyan problémám, hogy lehet-e olyat készíteni az excelben, hogy van egy képlet, amibe van több behelyettesítendő adat van, de csak egy képlet.És a több behelyetteítendő adat több végeredményt produkál, de csak egy képletből.

 

Ime:

 

 

 

A "D3" cellában található egy képlet, itt a példán A7*A7.

 

De az "A" oszlopban van több érték, amit ba szeretnék helyettesíteni a D3 képletbe.És eredményül az A oszlop értéke behelyettesítve a D3 cellában eredményét a F oszlop A oszloppal azonos sorában jelenik meg.

 

Ilyet lehet az excelben készíteni?

 

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

adimania Creative Commons License 2008.12.29 0 0 8385
Sziasztok!

Nemrég elkezdtem csinálni egy költségvetéskészítő programot excelben. Egészen jól halodok vele, viszont most megakadtam. Közbejött egy probléma, aminek a megoldásában a ti segítségeteket szeretném kérni.

Nem fárasztalak benneteket az egész dokumentummal, inkább az egyszerűség kedvéért készítettem egy sematikus modellt a problémáról:

http://practice.uw.hu/feladat.xls


3 munkalapra bontottam a dokumentumot:

- A "feladat" című munkalap tartalmazza azt az állapotot ameddig eddig eljutottam.
A bal oldali táblázatban különböző tételek szerepelnek (sorszám, megjegyzés, összeg), és egyes tételek melett látható egy "X", amely azt hivatott jelezni, hogy a tétel teljesítése megtörtént-e.

A cél az, hogy azon tételek melyek teljesítve vannak (tehát "X" szerepel mellettük)
kerüljenek egymás alá a jobb oldali, üres táblázatba.

- A "megoldás képe" című munkalap szemlélteti az elképzelt megoldást. Nyilván mivel a valóságban nem 6 tételt kell majd rendeznem, ezért ezt valmilyen függvény, stb. segítségével szeretném megoldani, viszont ezen a téren már hiányosak az ismereteim. ;[

A megoldás során használható bármilyen segédtáblázat, képlet, függvény és bármi más, ami szükséges a megoldáshoz.

Amennyiben valki talál megoldást a problémára, és természetesen nem jelent neki problémát, arra kérném hogy azt a "megoldás" című munkalapon keresztül mutassa meg nekem.

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

Üdvözlettel:
Ádám



Törölt nick Creative Commons License 2008.12.28 0 0 8384
pl. =MROUND(B1;5)
Előzmény: Törölt nick (8383)
Törölt nick Creative Commons License 2008.12.28 0 0 8383
Jobb szerintem erre az MROUND()
Előzmény: Hierro Nyh. (8380)
Sánta Kutya (SK) Creative Commons License 2008.12.28 0 0 8382
Számtan. :-)
=5*KEREK(A1/5;0)
De csak akkor lesz jó, ha az A oszlopban csak egészek lehetnek, ami forintnál elvárható. Ha törtek is lehetnek, akkor nem mindig jó.
Előzmény: Hierro Nyh. (8380)
Hierro Nyh. Creative Commons License 2008.12.28 0 0 8381
Vagy legalább a Szám formátumnál nem lehet olyan Egyénit beállítani, hogy csak 0-ra vagy 5-re végződhessen?
Hierro Nyh. Creative Commons License 2008.12.28 0 0 8380

Van-e lehetőség arra, hogy valamilyen képlet segítségével az 1 és 2 forintos kivonása óta alkalmazott kerekítést használjuk pénz számolásánál?

 

Vagyis 1-re vagy 2-re végződő összeget lefelé 0-ra, 3-ra vagy 4-re végződőt felfelé 5-re, 6-ra vagy 7-re végződőt lefelé 5-re, 8-ra vagy 9-re végződőt pedig felfelé 0-ra kerekítsünk?

wawabagus Creative Commons License 2008.12.25 0 0 8379

BOLDOG KARACSONYT NEKED IS!!!!!!!!!!!!!!!!!!!!

AAA, szuper nagyon koszonom...elkezdem a makro elemzeset :-)))...

ha majd nem ertek dolgokat...(valoszinusitheto :-)...akkor segitsegert kialtok :-)!!

Nagyon Nagyon Koszonom a segitseget!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

:-):-):-) 

Előzmény: stromba (8378)
stromba Creative Commons License 2008.12.25 0 0 8378

Mindenkinek Boldog Karácsonyt.

 

Azon a munkalapon állj, ahol az adatok vannak amikor a makrót indítod.

Elvileg mindent megcsinál, amit szeretnél, bár szerintem összekeverted a munkafüzetet (workbook) a munkalappal (worksheet). Ha jól értettem egy fájlt (dokumentum... munkafüzet) szeretnél sok munkalappal.

Szóval.

- Új munkafüzetet(fájlt) hoz létre, aminek a nevében benne van a tegnapi dátum ÉÉÉÉHHNN formátumban

- Az adatokat tartalmazó munkalap 2. oszlopának egyedi értékei alapján megszűri az adatokat, azokat az új fájlba másolja, egyedi értékenként (országnév) külön munkafüzetre

 

-----------------------------------------------------------------------------------------

 

Option Explicit

 

Sub Masol()

 

Dim thisFajl, thisSheet, thisPath, tmp, newFajl, newFajlFull, newSheet As String
Dim i, x, utsoSor As Double
Dim yr, mt, dt As Double
Dim tegnap As Date
Dim Cell As Range
Dim FieldSzam As Double
Dim uzenet, munkalapok As String


Application.ScreenUpdating = False

 

'szükség van a tegnapi napra a fájl nevéhez

tegnap = Now() - 1
yr = Year(tegnap)
mt = Month(tegnap)
dt = Day(tegnap)

 

'az alapfájl és az új fájl adatai

thisFajl = ActiveWorkbook.Name
thisSheet = ActiveSheet.Name
thisPath = ActiveWorkbook.Path
tmp = "temp"
newFajlFull = thisPath & "\europa_" & yr & mt & dt & ".xls"
FieldSzam = 2 'az az oszlop ahol az egyedi filteradatok / pl. az országnév van

 

'temp munkalap létrehozása amely tartalmazza az egyedi filtereket
'ha volt korábban temp munkalap, azt töröljük

 

Application.DisplayAlerts = False
On Error Resume Next
Worksheets(tmp).Delete
Application.DisplayAlerts = True
On Error GoTo 0

Worksheets.Add
ActiveSheet.Name = tmp
Worksheets(thisSheet).Activate

 

'egyedi értékek másolása a temp munkalapra

Worksheets(thisSheet).AutoFilterMode = False
Cells.Select
Selection.Columns(FieldSzam).AdvancedFilter Action:=xlFilterCopy, _
                CopyToRange:=Worksheets(tmp).Range("a1"), Unique:=True

 

'létrehozzuk az új munkafüzetet, elõtte ha van ilyen nevû fájl, töröljük

On Error Resume Next
Kill newFajlFull
On Error GoTo 0


Workbooks.Add
ActiveWorkbook.SaveAs newFajlFull
i = ActiveWorkbook.Worksheets.Count 'a végén kitöröljük a felesleges munkalapokat
newFajl = ActiveWorkbook.Name


'végigmegyünk a tartományon ahol az egyedi filter-értékek vannak

Workbooks(thisFajl).Worksheets(tmp).Activate
utsoSor = Worksheets(tmp).Cells(Rows.Count, "A").End(xlUp).Row
      
        Workbooks(thisFajl).Worksheets(thisSheet).AutoFilterMode = False
        Workbooks(thisFajl).Activate
        Worksheets(thisSheet).Activate


'egyedi munkalapok létrehozása
'a munkalapok neve az egyedi mezõ neve
'a mezõ név meg kell hogy feleljen a munkalap név kritériumoknak
'pl.max 31 karakter, nem tartalmazhat speciális karaktereket... stb

 

    For Each Cell In Workbooks(thisFajl).Worksheets(tmp).Range("A2:A" & utsoSor)
        Workbooks(thisFajl).Activate
        Worksheets(thisSheet).Activate
        Cells.Select
        Selection.AutoFilter Field:=FieldSzam, Criteria1:="=" & Cell.Value
        Worksheets(thisSheet).AutoFilter.Range.Copy
        Workbooks(newFajl).Activate
        Worksheets.Add After:=Sheets(ActiveWorkbook.Sheets.Count)
        ActiveSheet.Name = Cell.Value
            With ActiveSheet.Range("A1")
                .PasteSpecial Paste:=8 'oszlopszélesség miatt
                .PasteSpecial xlPasteValues
                .PasteSpecial xlPasteFormats
                Application.CutCopyMode = False
                .Select
            End With
            munkalapok = munkalapok & Cell.Value & Chr(13)
    Next

 

'kikapcsoljuk a filtert és töröljük a temp munkalapot

Workbooks(thisFajl).Worksheets(thisSheet).AutoFilterMode = False
Application.DisplayAlerts = False
Workbooks(thisFajl).Worksheets(tmp).Delete
Application.DisplayAlerts = True

   


'szükségtelen munkalapok törlése

Workbooks(newFajl).Activate
Application.DisplayAlerts = False
For x = 1 To i
Worksheets(1).Delete
Next x
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Worksheets(1).Activate
ActiveWorkbook.Save

 

uzenet = MsgBox("A(z) " & newFajl & " létrejött a " & Chr(13) & thisPath & _
    " alkönyvtárban, " & Chr(13) & utsoSor - 1 & " darab munkalappal, amelyek: " & _
    Chr(13) & munkalapok, vbOKOnly)
       
       

End Sub

Előzmény: wawabagus (8366)
tt65 Creative Commons License 2008.12.24 0 0 8377
A gépek, amin a teszteket irják a "versenyzők" munkafegyelmi és biztonsági okok miatt nem érik el a netet, így a google docs kilőve. A moddle alighanem hasonló okok miatt bukik. Marad az excel. Igazából én is ezt preferálom, mert szeretném megtanulni a vba programozását, ez egy jó kihívás erre.
A fórum amit ajánlottál jó, fel is iratkoztam. Igazából nekem nem öszefűni kell a teszteket egy táblába, hanem a kitöltési adatokat kell betennem egy kiértékelő táblába. És kiértékelni! köszi az eddigi segítséget!
Előzmény: Sánta Kutya (SK) (8374)
tt65 Creative Commons License 2008.12.24 0 0 8376
köszi a tippet, megnézem. ezeket nem ismerem, ill. eddig nem is hallottam róluk!
Előzmény: Sánta Kutya (SK) (8375)
Sánta Kutya (SK) Creative Commons License 2008.12.24 0 0 8375
Illetve ugyanott érdekes lehet még neked az "excel munkafüzetek összefûzése" thread is, ahol szintén felmerült a Google Docs, valamint egy makró több táblázat egyesítésére.
Előzmény: Sánta Kutya (SK) (8374)
Sánta Kutya (SK) Creative Commons License 2008.12.24 0 0 8374
Talán, de segíteni nem tudok benne, csak kiindulópontot adni.
Ebben az archívumban keress rá a "Webes adatgyujto" threadre. A Google Docs és a Moodle merült fel hasonló probléma kapcsán.
Előzmény: tt65 (8373)
tt65 Creative Commons License 2008.12.23 0 0 8373
Nem. Tudsz jobbat?
Előzmény: Sánta Kutya (SK) (8370)
Törölt nick Creative Commons License 2008.12.23 0 0 8372
Kedves Topictársak!

Áldott békés, kegyelemteljes karácsonyi ünnepeket, és egészségben, sikerekben, örömökben gazdag Boldog Új Évet Kívánok!
tbando Creative Commons License 2008.12.23 0 0 8371
Ez szerintetek miért így müködik?

Egy cellának nevet adsz. Egy másik cellából ráhivatkozol. Az eredmény oké. A hivatkozást átmásolod további cellákba, de itt már nem NEVre hivatkozik, mert nem a nevet, hanem a relatívként tárolt hivatkozása szerint másol. Ez még érthető lenne. De...

Ugyanezt a hivatkozást és másolást egy másik munkalapról ejted meg: az összes másolt cellában a valódi névre hivatkozik.

De ez még semmi. Visszamész az eredeti munkalapra, ahol látod, hogy a NEV MEGADÁSA menüben a NEV abszolut hivatkozással van jegyezve. Átállítod relatívra, onnantól a franc se tudja, hogy mire mutat.

És még egy csomó zavaros jelenség a NEV megadása és hivatkozás témakörből. Tud valaki erről valami használható irodalmat?
Sánta Kutya (SK) Creative Commons License 2008.12.23 0 0 8370
Van valami oka, hogy ezt pont Excelben akarod megoldani?
Előzmény: tt65 (8369)
tt65 Creative Commons License 2008.12.23 0 0 8369
képzeld el, hogy egy teremben ül x db. vizsgázó, mindegyik előtt pc.
mindegyiken egy kitöltendő teszt.
mindenki beirja a nevét és kitölti a tesztet.
mikor kész kiértékelés következik és létrejön az a táblázat a versenyzők neveivel és eredményeivel amit mutattál.
Előzmény: Törölt nick (8368)
Törölt nick Creative Commons License 2008.12.23 0 0 8368

hát... akkor ez már makró, mert nyilván a többiek nem láthatják mások megoldásait.

Most erre nincs időm, de ezt tovább lehet fejleszteni úgy, hogy pl. mentéskor (jelszóval) elrejti a már meglévő megoldásokat - így a többiek nem látják.

Ezt egyszerű megcsinálni.

Viszont ha egyszerre  több embernek kell töltögetni a tesztet,  nem tudom hogy lehet azt kivitelezni, hogy egyszerre többen is tudjanak rajta dolgozni. Kivitelezhető a biztonsági beállításokkal, de a hogyanra kapásból nem tudom a választ.

Előzmény: tt65 (8367)
tt65 Creative Commons License 2008.12.22 0 0 8367
nem teljesen, de valami ilyesmi!
én arra gondolok, hogy minden tesztiró megnyitja a kitöltendő teszt fájlt, megadja a nevét , majd kitölti a tesztet. mondjuk ment a végén. ekkor jönne létre valami hasonló táblázat, mint amit te hoztál létre, és jönne létre a kiértékelés.
Előzmény: Törölt nick (8362)
wawabagus Creative Commons License 2008.12.22 0 0 8366

Sziasztok!

 

Lenne egy kerdesem...vagyis majd nagyon nagyon sok kerdesem...de az elejen kezdem. Az elso kerdessel :-)...

 

Es bocsanat nincs ekezetem de azert remelem lehet majd erteni.

 

Tehat, hogyan tudom makro szintjen a kovetkezot kerni az exceltol:

 

Tegyuk fel a B oszlopban orszagok nevei vannak. Az excelnek azt kellene csinalnia, hogy...

 

1. megszuri orszagonket az adataimat (pl. csak a Mo-ra vonatkozo adatokat veszi)

2. ezeket atmasolja egy uj excel dokumentumba, amely excel domentumot elnevezi valahogy (pl. "EUROPA.xls"), de a magyar adatokat ezen belul a "Mo." munkafuzetben helyezi el...es teszi ezt minden orszaggal...tehat ide masolja majd Lengyelorszagot is, de azt a "Pl." munkafuzetre.

 

Valoszinu ez mind nem olyan bonyolult, csak en nem tudom meg hogy kell...probaltam felvenni lepesenkent a makroba, de nem mukodott...persze SPSS-ben siman tudnam...:-(...de az itt nincs :-).

 

3. es hogy meg bonyolitsak egy kicsit az lenne a tuti, ha a fajl nevehez hozza biggyesztodne az aktualis datum...pl igy...EUROPA_20081222,

vagy hogy meg megspekeljem egy kicsit nem az aktualis datumra lenne szukseg, hanem az egyel korabbi napra...tehat, aktualis datum minusz egy nap...

 

Uj munkam van es az elodom olyan "template" fajlokat gyartott, hogy csak pislogok...nem is tudtam, hogy ilyesmiket is lehet excelben csinalni...es persze fogalmam sincs hogyan csinalta oket...es most nyomozok, ha esetleg valami elromolna, hogy meg tudjam majd javitani...

 

Ugyhogy majd annyi mindent szeretnek kerdezni...de csak sorjaban :-)...

 

Elore is koszonom a tippeket!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

:-))))

 

 

 

 

 

 

Sánta Kutya (SK) Creative Commons License 2008.12.22 0 0 8365
Na ezért kérdeztem vissza. Fölösleges energiát fektetni egy olyan feladat megoldásába, ami nincs rendesen megfogalmazva.
Előzmény: Törölt nick (8364)
Törölt nick Creative Commons License 2008.12.22 0 0 8364

én úgy értettem, hogy  két táblázatot akarja összefésülni - tehát az egyező azonosítók értékeit össze akarja adni.

Én erre szoktam használni az említett "Összesítés" menüpontot.

Előzmény: Delila_1 (8363)
Delila_1 Creative Commons License 2008.12.22 0 0 8363

Ha jól értem, két munkalapon van a két táblázatod.

A több adatot tartalmazónál egy üres oszlopba írd be a darabteli függvényt:

 

=DARABTELI(Munka2!A:A;A1)  feltételezve, hogy ezen a (Munka1) lapon, és a másikon (Munka2) is az A oszlopban vannak az azonosítandó adatok.

 

Amelyik adat csak az első lapon szerepel, 0 értéket kap, a többi 1-et (vagy többet, ha többször is előfordul a Munka2-n).

 

 

Előzmény: gabszak (8356)
Törölt nick Creative Commons License 2008.12.22 0 0 8362
ilyesmi:
www.tar.hu/exalto/teszt.xls
Előzmény: tt65 (8361)
tt65 Creative Commons License 2008.12.22 0 0 8361

Minden kérdéshez három válasz közül kell kiválasztani az egyetlen helyeset!

pl.

Hány báránya volt Mátyás király aranyszemű juhászának:

1, tizenkettő

2, negyvennyolc

3, hét

 

 

Előzmény: Törölt nick (8360)
Törölt nick Creative Commons License 2008.12.22 0 0 8360
Totó jellegű válaszokat kell adni a kérdésekre (pl.: igen-nem-talán), vagy minden egyes kérdéshez egyedi válaszlehetőségek tartoznak?

Előzmény: tt65 (8357)
Törölt nick Creative Commons License 2008.12.22 0 0 8359
Az Adatok -> Összesítés menüpont pontosan erre való.
Előzmény: gabszak (8356)
Sánta Kutya (SK) Creative Commons License 2008.12.22 0 0 8358
Elég pontatlan a specifikáció. Vannak olyan cellák, amelyek mind a kettőben ki vannak töltve? Ha igen, akkor mi a teendő?
Előzmény: gabszak (8356)
tt65 Creative Commons License 2008.12.22 0 0 8357

hali! én is segítséget szeretnék kérni, attól aki foglalkozott már ilyesmivel.

Szeretnék egy olyan tesztet készíteni, amiben kérdések vannakk egy csak a három megadott válasz közül kell kiválasztani a helyeset. Kitöltés után, az egyes kitöltési eredmények egy összegző táblázatban megjelennének. (tulajdonképp az lenne a jó, ha az egyes sorokban megjelennének a kitöltők nevei, az oszlopokban, pedig a kérdéskre kapott 0 v. 1 pontjai és egy összegző sor) Ha valaki csinált már ilyent megközsönném a segítségét!

gabszak Creative Commons License 2008.12.22 0 0 8356

hali. kis segítségre lenne szükségem.

van egy táblázat két oszloppal és vagy 2700 sorral. erre szeretnék ráilleszteni egy másik ugyanilyen paraméterekkel rendelkező táblázatot, ami már tartalmaz olyan cellákat, amelyek megvannak az elsőben, magyarul a két táblából egyet szeretnék csinálni, de csak egyszer szeretném, ha előfordulnának a bejegyzések.

előre is köszi.

pelecsaszar Creative Commons License 2008.12.21 0 0 8355
van egy progim aminek a makrója egy scr fájlt csinál.Mi tévő legyek hogy a számok ,NE vesszővel jelenjenek meg a listerben vagy a jegyzettömbben,hanem pontok.a tizedesek elött.(22,5 helyett 22.5)Innét másolnám az autocadba.Köszike ha tippet adtok.
Törölt nick Creative Commons License 2008.12.13 0 0 8352

Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

?

Megtalálod a Worksheet eseményeknél!

Előzmény: Gavriel (8351)
balogh.zs Creative Commons License 2008.12.12 0 0 8350
Sziasztok !
Még egyszer köszönet a hozzászólásokért, sajnos nem jutottam egyről a kettőre és végül így oldottam meg:

Private Sub ComboBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox3.Value = Sheets("Kiadás").Range("C4")
End Sub

Miután megadom az árú nevét a "ComboBox2” segítségével, átlépek a mennyiséghez (TextBox2) , egyből megjelenik a mértékegység a "TextBox3"-ban.
Előzmény: Törölt nick (8344)
Törölt nick Creative Commons License 2008.12.12 0 0 8349
Az Eszközök/Munkafüzetek összehasonlítása és egyesítése vmi ilyesmire való, de nem tudom hogy kell használni.
Előzmény: 954 (8341)
954 Creative Commons License 2008.12.12 0 0 8348

Köszönöm a gyors választ!

Eltérő helyen vannak a sorok. Végülis úgy képzeld el, hogy van az egyik táblázat, amibe mondjuk a termékek 2006-os árai vannak, és a másikba az új árak, de nem mindegyik termék árát változtatták meg. és ezt szeretném "kiszűrni", hogy mik a változott árú termékek.

De, amit írtál sokat segített. Holnap ki is próbálom!

Köszi még1x!

Előzmény: E.Istvan (8346)
Törölt nick Creative Commons License 2008.12.12 0 0 8347
pro-kontra, szerintem sem kellenek makrók egy ilyen feladathoz. Viszont sokat lehet tanulni ha mégis melette dönt.
+ ha valamit elkezdett így felépíteni, nem biztos hogy már eláll tőle.
Előzmény: E.Istvan (8345)
E.Istvan Creative Commons License 2008.12.12 0 0 8346

Ennél kicsit több infó kellene.
Az első, hogy a két lista sorai azonosak vagy azok is megváltoztak, tehát az az adatsor, ami az egyikben a 23. sorban szerepelt az a másikban is a 23. sorban van, vagy bárhol lehet.

Ha ugyan ott van, és mind a kettőben pontosan ugyan annyi sor van csak a sorokon belül valamelyik cella (oszlop) megváltozott, akkor egy egyszerű tömbfügvénnyel is eléred a célt.
Egy A-C oszlopban lévő adatsor esetén a D oszlopban beírod:
=ÉS(A1:C1=Munka1!A1:C1), ahol a Munka1 a másik tábla, majd nyomsz egy CTRL+SHIFT+ENTER-t. Ezáltal soronként megkapod, hogy van-e eltérés vagy nincs. Majd erre az oszlopra már tudsz szűrni.

Ha a két táblában eltérő helyen is lehetnek adatok, akkor egy primitív, de egyszerű módszer lehet, hogy egy üres oszlopban mind a két helyen ÖSSZEFŰZ függvénnyel összerakod az egymás melletti cellákat mind a két táblázatban. Majd ezt az oszlopot FKERES függvénnyel megkeresed a másik táblában. Ha nem talál ilyet a másik táblában, akkor ez a sor vagy új, vagy megváltozott. Persze ez csak akkor használható ha minden sor egyedi, vagyis a táblában nincs és nem is lehet két teljesen egyforma sor.

Most kapásból ez jutott eszembe, de biztos van még több más lehetőség is.

Ezen kívül lehet makróval is, aminek viszont már számtalan megvalósítási módja lehet.

Előzmény: 954 (8341)
E.Istvan Creative Commons License 2008.12.12 0 0 8345
Ha nem túl bonyolult az amit készítened kell, akkor lehet hogy nem is Form-ot kellene használnod. Nem tudom mennyire ismered az excelt. Két féle nagyon hasonló mégis nagyon eltérő eszköztár létezik. Van a "vezérlők eszközkészlete" és van az "űrlapok". Meg kellene próbálnod ezt a másodikat használni. Kezdő VBA felhasználók számára ez sokkal könnyebb. Ezeket közvetlenül leteheted az aktuális munkalapra, de akár egy másik munkalapra is. Ezáltal egy ürlapot létrehozva. Viszont ezeket sokkal könnyebb csatolnod az excel cellákhoz és a tartalmuk együtt változik a cellákkal. A legtöbb esetben nem is szüséges makrókat írni. A legtöbb szövegdobozt és egyéb objektumot feltölthetnéd az excel cellákban ügyes képletekkel kiszámolt értékekkel és valószínűleg csak egyetlen makrót kellene használnod ami a kívánt sormásolást elvégzi.
Előzmény: balogh.zs (8342)
Törölt nick Creative Commons License 2008.12.12 0 0 8344
így van.
Előzmény: balogh.zs (8340)
Törölt nick Creative Commons License 2008.12.12 0 0 8343
attól, hogy a makróban használod - még használhatod a cellában is azt az fkerest.
Előzmény: balogh.zs (8342)
balogh.zs Creative Commons License 2008.12.12 0 0 8342
Köszönöm a tanácsot, sajna az én VBA tudásom = 0, a cellába írás fontos lenne mivel egy következő makróval az egész sort másolom a lentebb található legközelebbi sorba.
Előzmény: E.Istvan (8339)
954 Creative Commons License 2008.12.12 0 0 8341

Sziasztok!

Olyan kérdéssel fordulnék hozzátok, hogy:

Van 2 excel táblázatom 6000-6000 tétellel, és az egyikbe változott 1000 tétel elszórtan. Namost az eredetiből akarom kivonni a változtatott táblázatot, hogy a megváltozott 1000 tételt kapjam eredményül. Hogyan csináljam ezt? Még egy dolog, hogy ezt ecxellel is meg kéne csinálnom, és open office-nak a táblázatkezelőjével is.. :S Hogyan? A válaszokat előre is köszönöm!

Üdv!

balogh.zs Creative Commons License 2008.12.12 0 0 8340
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Kiadás_Form1.TextBox3.Text = Application.VLookup(Sheets("Kiadás").Cells(3, 3), Sheets("Árú törzs").Range("A4:B500"), 2, False)
End Sub

Erre gondoltál?
Előzmény: Törölt nick (8338)
E.Istvan Creative Commons License 2008.12.12 0 0 8339

Nekem az az érzésem, hogy rossz az egész megközelítésed a probléma megoldására. Amit eddig olvastam abból azt szűrtem le, hogy vagy egy Form-od, amin több objektum beviteli mező stb van. Ez esetben nem célszerű ezt még összekötni a munkalapon lévő függvényekkel. Illetve lehet, de a frissítéseket akkor is a Form-hoz tartozó makrókból és nem a Sheet-hez tartozó makrókból kellene indítanod.
Esetünkben, ha van egy ComboBoxod, aminek a megváltozása esetén megváltozik a C3, majd a C4 cellád, akkor az ehez a ComboBox-hoz tartozó makróban kell kiolvasnod a C4 tartalmát és ezt beírni a TextBox-ba és még ezután még lehet, hogy ki kell adnod a parancsot a Form frissítéséhez is.

Ezt most csak elméletként írom nem vagyok nagy szakértője a témának (még csak középszinten haladok VBA területen), és most sajnos időm sincs lemodellezni Excelben az esetet.
Még jobb ha a robbantomester modszerével közvetlenül a makróban használód az Fkerest. Sőt még jobb ha eleve a ComboBox eredményét ki sem írod a C3-as cellába, hanem közvetlenül használod fel a további műveletekben a makrókban.

Előzmény: balogh.zs (8337)
Törölt nick Creative Commons License 2008.12.12 0 0 8338
Akkor csinálhatod úgy is, hogy közvetlenül használod az FKERES-t:

Kiadás_Form1.TextBox3.Text = Application.Vlookup(Sheets("Kiadás").Cells(3, 3),Range("A:B"),2,0)

A Range("A:B"),2 részt nyilván a sajátodra szabod (Ez az Fkeres tartomány;oszlop argumentje)

Nekem ezek jutottak eszembe. Várhatsz jobb megoldásra, vannak itt nálam okosabbak is.
Előzmény: balogh.zs (8337)
balogh.zs Creative Commons License 2008.12.12 0 0 8337
A cella értéke szinte állandóan változik, mivel itt arról lenne szó, hogy létrehoztam egy munkalapon törzsadatokat ahol szerepel többek között a termék neve valamint a mértékegysége.
Cement kg
B-30 falazó db
A Form gyakorlatilag egy beviteli űrlap lenne, ezen létrehozott ComboBox segítségével a törzsadatból átemelek egy terméket „Kiadás! C3” cellába, ekkor az említett „C4” cellában az FKERES függvény segítségével megjelenik a termékhez tartozó mértékegység. Ezt a mértékegységet kellene megjeleníteni a TextBox-nak és ezt követően írnám be a mennyiséget egy másik TextBox-ba. A beírással nincs gond mivel ControlSource tulajdonsághoz beírom az adott cellát, csak fordítva nem jön össze.
Előzmény: Törölt nick (8335)
balogh.zs Creative Commons License 2008.12.12 0 0 8336
Köszönöm a segítséget, vélhetően én vagyok a béna, nekem nem jön össze.
Üdv: Zsiga
Előzmény: Törölt nick (8334)
Törölt nick Creative Commons License 2008.12.12 0 0 8335
1.
A Worksheet_Change esemény akkor hajtódik végre, ha egy cella értéke megváltozik.

Másik lehetőség - Worksheet_SelectionChange - pedig akkor, ha a cellakiválasztás változik meg. (Azonban így sokszor feleslegesen hajtódik végre a parancs pazarolva az erőforrást)

2.
1.-es pont alapján jó helyre másoltad a kódot, jó munkalapra?
Előzmény: balogh.zs (8332)
Törölt nick Creative Commons License 2008.12.12 0 0 8334
kipróbáltam, nekem megjelenik.
Előzmény: balogh.zs (8332)
balogh.zs Creative Commons License 2008.12.11 0 0 8333
From=Form :(((
Előzmény: balogh.zs (8332)
balogh.zs Creative Commons License 2008.12.11 0 0 8332
Helló robbantomester!
Köszi a gyors válasz, de sajna nem mükszik, ígyen változtattam rajta:

Private Sub Worksheet_Change(ByVal Target As Range)
Kiadás_Form1.TextBox3.Text = Sheets("Kiadás").Cells(4, 3)
End Sub

Mivel más a From név, valamint TextBox szám és átállítottam a from tulajdonságoknál a „Showmodal = False”. Sajnos nem jelenik megy semmi érték :(

Üdv: Zsiga
Előzmény: Törölt nick (8330)
stromba Creative Commons License 2008.12.11 0 0 8331
legközelebb elolvasom rendesen. :)
Előzmény: Törölt nick (8318)
Törölt nick Creative Commons License 2008.12.11 0 0 8330
talán:

Private Sub Worksheet_Change(ByVal Target As Range)
UserForm1.TextBox1.Text = Sheets("kiadás").Cells(4, 3)
End Sub

Akkor fut le, ha a valamelyik cella értéke megváltozik.

A form tulajdonságainál a Showmodal = False.
Arra a munkalapra tedd, amelyiken használni szeretnéd.
Előzmény: balogh.zs (8328)
Törölt nick Creative Commons License 2008.12.11 0 0 8329

A VBA példája szerintem nem jól szemlélteti a gyakorlati hasznát.

Próbáld ki azt, hogy ActiveCell.EntireRow.Select és akkor megérted mire való.

Előzmény: Master of Amateurs :) (8327)
balogh.zs Creative Commons License 2008.12.11 0 0 8328
Sziasztok!
Az lenne a kérdésem, hogyan lehet Form-on megjeleníteni egy cellában -’Kiadás’!C4- szereplő értéket, mely változó érték , „FKERES” függvény van beszúrva. ComboBox-al valamint ListBox-al meg tudom csinálni, viszont TextBox vagy Label megoldás érdekelne. Fontos, hogy a függvény ne törlődjön.

Segítségeteket előre is köszönöm!

Üdv: Zsiga
Master of Amateurs :) Creative Commons License 2008.12.11 0 0 8327

Megint lenne egy kérdés, bár ez csak elméleti.

Az Entirerow metódus/objektum/mittomén pontosan mire jó?

Nézegettem a neten is, meg a VBA súgójában.

A kutakodás eredmény: az egész sorra (rows esetén sorokra) mutató dolog.

A VBA példája:

ActiveCell.EntireRow.Cells(1, 1).Value = 5
Az első dolog, ami egyből feltűnt az az, hogy ez a programsor az EntireRow nélkül pontosan ugyanazt csinálja, mint vele.

 

Köszönöm előre is!

Master of Amateurs :) Creative Commons License 2008.12.11 0 0 8326

Ezt nem tudtam. Elég sűrűn kell majd a jövőben nekem ez, úgyhogy marad a makró, de örülök, h okosabb lettem ezzel is. :) Köszi neked is! :)

Előzmény: E.Istvan (8325)
E.Istvan Creative Commons License 2008.12.11 0 0 8325
Most esett le hogy te az üres cellákat külön külön jelölgetnéd ki, de nem kell. Erre ott van az irányított kijelölés, ami az összes üres cellát kijelöli.
Előzmény: Master of Amateurs :) (8321)
E.Istvan Creative Commons License 2008.12.11 0 0 8324

Most egy kicsit haragszom :o)

Mi tart sokáig? Nekem akár mekkora a tábla, legyen az 65000 soros is nem tart tovább 2 másodpercnél.

Egy darab képlet beírása, egy darab enter, egy darab CTRL+C, egy darab tartomány kijelölés (az egész kimutatás egyszerre), majd a beillesztés az üres cellákba (5 db egér kattintás és egy darab CTRL+V)

Persze ha naponta többször kellene végrehajtanom én is a makrót választanám, de egyébként nem.

Előzmény: Master of Amateurs :) (8321)
Master of Amateurs :) Creative Commons License 2008.12.11 0 0 8323
Köszi! :)
Előzmény: Törölt nick (8322)
Törölt nick Creative Commons License 2008.12.11 0 0 8322
Talán ez segít.

Sub feltölt()
Dim Rng As Range, cel As Range, An As Long

Set Rng = ActiveCell.CurrentRegion
Rng.Select
An = MsgBox("A kijelölt területet tölteném fel. Mehet?", vbYesNo)
If An = vbNo Then Exit Sub
For Each cel In Rng.SpecialCells(xlCellTypeBlanks)
cel.Value = cel.End(xlUp).Value
Next
End Sub


Indítás előtt jelöld ki a kimutatás-másolat bal felső sarkát.
Előzmény: Master of Amateurs :) (8321)
Master of Amateurs :) Creative Commons License 2008.12.11 0 0 8321

Igenigen. Erre a jelenségre (jelen esetben problémára) gondoltam. A megoldásod én is szoktam használni, csak ritkán, mert nagy táblánál borzasztó sok ideig tart.

 

A makró, amit írtam erre (nagy hibája pl, hogy nem keresi meg az első nem üres cellát, hanem konkrétan az A5-ről indul, ezért átírrom:

Loop Until intO = intI + 5

 

De ezzel is csak a szőnyeg alá söpörtem a gondot, mert nem minden felhasználó fogja A5-ös kezdéssel "átkopizni" a kimutatást. A másik gondom az oszlopok számának meghatározása, és ezt változóként meghatározni, hogy flexibilis legyen a progi. Mert elég béna megoldás, hogy annyiszor illesztem be a ciklust, ahány oszlopot sejtek majd.

Előzmény: E.Istvan (8317)
Master of Amateurs :) Creative Commons License 2008.12.11 0 0 8320

Nem jelenítette meg a táblát..

 

A oszlop:

Józsi

Klári

Pisti

Joci

Gyuri

Pisti

Pisti

 

B oszlop:

hétfő

kedd

szerda

csütörtök

Péntek

szombat

Vasárnap

 

Előzmény: Master of Amateurs :) (8319)
Master of Amateurs :) Creative Commons License 2008.12.11 0 0 8319

Jogos. Bocsi.

 

például:

 

Ha a lenti adatokkal készítesz egy kimutatást, melyben mindkét oszlop a "Sor mező"be kerül (sorrend legyen pl. név, nap), akkor az eredeti táblában 3* szereplő Pistit összevonja, és csak egyszer szerepelteti. (Nem tudom értelmesebben megfogalmazni :( )

 

név nap Józsi hétfő Klári kedd Csaba szombat Joci vasárnap Zsuzsi hétfő Gergő kedd Gyuri szerda Balázs csütörtök Pisti péntek Pisti szombat Pisti vasárnap

 

Ez nem jó nekem, ezért a kimutatás adatait átmásolom egy másik munkalapra (hogy módosíthatóvá váljon az üres cella), és ráeresztem a makrót. (vagy manuálisan másolgatom át, de egy több tízezer soros táblánál ez igen könnyfacsaró tevékenység... :(

 

Így okés?

 

Előzmény: Törölt nick (8316)
Törölt nick Creative Commons License 2008.12.11 0 0 8318
a 8233 alapján nem ezt kérdezte szrtem.
Előzmény: stromba (8314)
E.Istvan Creative Commons License 2008.12.11 0 0 8317
Tudomásom szerint magában az eredeti kimutatásban nem lehet feltölteni az üres cellákat, csak ha ezt értékként másolod valahová. Ott pedig én úgy szoktam, hogy belemegyek az első üres cellába mondjuk C6 és beírom hogy =C5, majd másolás, a kérdéses tartomány kijelölése, majd ezen belül a csak üres cellák kijelölése (szerkesztés, ugrás, irányított), majd beillesztés.
Már ha erre gondoltál :) Viszont összetettebb kimutatások esetén, így az összesítő sorok tartalmazhatnak nem odaillő adatokat, elnevezéseket is.
Előzmény: Master of Amateurs :) (8315)
Törölt nick Creative Commons License 2008.12.11 0 0 8316
Tudnál egy-két képet feltölteni arról, hogy mi a kiindulási állapot, illetve mi a cél?
Vagy szóban elmondani, hogy mit akarsz megvalósítani. Ez, hogy "kimutatás üres mezőinek kitöltése", nem túl informatív (számomra legalábbis).
Előzmény: Master of Amateurs :) (8315)
Master of Amateurs :) Creative Commons License 2008.12.11 0 0 8315

Sziasztok!

 

 Egy kimutatás üres mezőinek kitöltésére mi a legjobb megoldás?

 

 Csináltam rá egy makrót, de nem minden esetben működik jól:

 

Sub kimutataskitolto()

Dim intI As Integer
Dim intO As Long

Range("A5").Select
Selection.CurrentRegion.Select
intI = Selection.Rows.Count
intO = 6


Do

If Cells(intO, 1) <> 0 Then
    intO = intO + 1
    Else
    Range("A" & intO - 1).Copy
    Range("A" & intO).Select
    ActiveSheet.Paste
   
End If

Loop Until intO = intI

intO = 6

Do

If Cells(intO, 2) <> 0 Then
    intO = intO + 1
    Else
    Range("B" & intO - 1).Copy
    Range("B" & intO).Select
    ActiveSheet.Paste
   
End If

Loop Until intO = intI

 

És így tovább, attól függően, hogy hány oszlopot érint a dolog.

 

Tuti, hogy van ennél jobb megoldás is...

Adjatok pár tippet, pls!

Köszi!

stromba Creative Commons License 2008.12.09 0 0 8314

inkább így.

 

 

Sub check_filter()
    If ActiveSheet.FilterMode = True Then
        MsgBox "Az autofilter be van kapcsolva"
    Else
        MsgBox "Az autofilter nincs bekapcsolva vagy nincs autofilter a munkalapon"
    End If
    
End Sub

Előzmény: magyarpityu (8311)
Törölt nick Creative Commons License 2008.12.09 0 0 8313

Én ezt így csináltam:

 With Worksheets("Cash-flow").AutoFilter.Filters.Item(4)
 If .On Then
 MsgBox "A munkalapon aktív autoszűrő van!"
 End If
 End With

Előzmény: magyarpityu (8311)
gaboromrom Creative Commons License 2008.12.09 0 0 8312
Köszi Jimmy!
magyarpityu Creative Commons License 2008.12.09 0 0 8311

Köszi! Ötletes megoldás, tetszik. Azt hiszem, nem bonyolítom a dolgot, ha akarok keresgélni a munkalapon, akkor Munkalap.ShowAllData és megszűnik az összes szűrési feltétel. Különös módon, ha a munkalapon soronként vizsgálgatom az adatokat, akkor az elrejtett sorokban is keresgél a makró, de a leszűrt sorok láthatatlanok maradnak. Bár elég gyanúsan viselkedik a makró, lehet, valahol hiba van, vagy a makrómban, vagy az Excel bugzik. Köszi a segítséget!

Előzmény: Törölt nick (8309)
Törölt nick Creative Commons License 2008.12.09 0 0 8310
1. Másolás
2. Irányított beillesztés -> Értéket
Előzmény: gaboromrom (8308)
Törölt nick Creative Commons License 2008.12.09 0 0 8309
Nem teljesen bolondbiztos, de kezdetnek jó:

Dim R As Range
Set R = Sheets(1).AutoFilter.Range
If R.Cells.Count <> R.SpecialCells(xlCellTypeVisible).Cells.Count Then MsgBox "Szűrő bekapcsolva"

Vagyis ha a szűrési tartományon belül az összes cellák és a látható (nem rejtett) cellák száma különböző, akkor szűrve vagyon. Fel lehet rúgni azzal, hogy pl. elrejtesz egy vagy több oszlopot, vagy szűrés után egy sortartománynak átállítod a magasságát, stb.


Előzmény: magyarpityu (8307)
gaboromrom Creative Commons License 2008.12.09 0 0 8308

Sziasztok! Óriási segtség lenne ha valaki meg tudná nekem mondani hogy tudok egy függvényértékből normál szöveget kreálni. Összefűz fügvénnyel két cella tartalmából egyet csináltam, de a forrás oszlopokat törölni szeretném, csakhogy akkor a függvényértékből is eltűnik az a szövegrész.

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

magyarpityu Creative Commons License 2008.12.09 0 0 8307

Sziasztok!

 

Makróból szeretném lekérdezni, hogy az adott munkalapon az AutoFilter le van-e szűrve. Azt le tudom kérdezni, hogy a szűrés be van-e kapcsolva (Munkalap.AutoFilterMode értéke True vagy False), de azt hogyan lehet lekérdezni, hogy ha be van kapcsolva a szűrő, akkor vajon le van-e szűrve? Úgy lehetséges, hogy a Munkalap.AutoFilter.Filters.Item[i].Criteria1 változókat végignézem 1-től Munkalap.AutoFilter.Filters.Count-ig, és ha akár egy is tartalmaz valamit, akkor le van szűrve, de talán lenne egyszerűbb módszer?

Törölt nick Creative Commons License 2008.12.09 0 0 8306
Nekem fogalamam sincs, de azért

ézd át ezt
Előzmény: E.Istvan (8305)
E.Istvan Creative Commons License 2008.12.09 0 0 8305

Van egy táblázatom, ami „szép színes” sok cellaformázást tartalmaz, valamint feltételes formázást is. A feltételes formázás a H oszloptól kezdődően összehasonlítja az adatokat az egymás melletti oszlopokban tehát H-I, J-K és így tovább. Ezt a táblát folyamatosan bővítem és sajnos egy idő után az Excel kiakad. Jelen esetben az AV-AW oszlopnál még semmi problémája nincs, viszont abban a pillanatban, hogy beleteszem az AX-AY oszloppárt is és menteni próbálom ezt adja:

Az Excel nem tudja menteni a(z) …..xls valamennyi hozzáadott adatát vagy formázását.
A Mégse gombbal mentés nélkül visszatérhet a munkafüzethez.
Ha a probléma kiküszöbölése nélkül kívánja folytatni a mentést, kattintson az OK gombra.

Tehát vagy nem mentem le és nem tehetek semmit, vagy lementem és akkor sem tehetek semmit :o) mert azt nem közli és nem is jelöli, hogy mit nem sikerült menteni.

Ez már tavaly is kiakasztott, akkor ugyanis az egész táblát újra kellett készítenem. Azóta minden verziót külön fájlban más néven mentek. Idén most értem el a bűvös oszlopszámot.
Ez a 2003-as hibája? Ki lehet küszöbölni valahogy, vagy legalább meg lehetne tudni, hogy miben különbözik az így hibásam mentett tábla egy korábbi hibátlan táblától?
Azt már tapasztaltam például, hogy a munkalapon lévő ürlap objektum (választókapcsoló, vagy rádiógomb) nálam szürkére van színezve. A hibás táblában a tulajdonsága szintén szürke, de ez nem jelenik meg és átlátszó lesz, hiába színezem újra.

balogh.zs Creative Commons License 2008.12.08 0 0 8304
Szia Jimmy the Hand!
Nagyon szépen köszönöm a segítséget
Üdv: Zsiga
Előzmény: Törölt nick (8298)
szali11 Creative Commons License 2008.12.08 0 0 8303
Köszönöm szépen, megpróbálom.:)
Előzmény: E.Istvan (8302)
E.Istvan Creative Commons License 2008.12.08 0 0 8302

Az előző módszerrel (Jimmy) megjelenítheted az y tengely viszonylatában a minimum és maximum értékeket.

Ezt továbbfejlesztve ha csak az x tengelyen szeretnéd jelölni, hogy hol vannak ezek az értékek, akkor arra egy megoldás, hogy második oszlopban a képletet így módosítod:

=HA(VAGY(B1=MAX($B$1:$B$8);B1=MIN($B$1:$B$8));0;-1)

Az y tengely minimumát átállítod 0-ra. A második adat formátumát oszlopról pont diagramtípusra. Ezáltal az x tengelyen ott fog megjelenni a beállított jel, amelyik értéknél a minimum vagy maximum van.

Ha másra van szükség én is csak a makrót látom megoldásnak, de diagram területen nem vagyok nagyon jártas.

Előzmény: szali11 (8300)
Törölt nick Creative Commons License 2008.12.08 0 0 8301
Direktben nem tudok ilyenről, de kerülő megoldások léteznek.
Pl.
Létrehozol az eredeti adatoszlop alapján egy segédoszlopot, olyan képlettel, amely csak a minimumra és maximumra ad eredményt.
=HA(VAGY(B1=MAX($B$1:$B$8);B1=MIN($B$1:$B$8));B1;"")
Azt is felveszed a diagramra, és ha sikerül feltölteni a képet, akkor itt látod az eredményt.


Gondolom, makróval is lehetne bűvészkedni...
Előzmény: szali11 (8300)
szali11 Creative Commons License 2008.12.08 0 0 8300

Vannak értékeim egy oszlopban, ezek vannak ábrázolva egy diagramon. Azt szeretném, ha jelölve lenne a diagramon, hogy hol van a legkisebb illtve a legnagyobb érték.

Előzmény: Törölt nick (8299)
Törölt nick Creative Commons License 2008.12.08 0 0 8299
Talán, ha cserébe elárulod, hogy minek a minimumát/maximumát akarod látni, és hol.
Előzmény: szali11 (8296)
Törölt nick Creative Commons License 2008.12.08 0 0 8298
Szia!

A form-ra tehető DTPicker-nek én sem találtam meg a LinkedCell tulajdonságát, viszont a változását viszonylag egyszerű munkalapon tükrözni:

Private Sub DTPicker1_Change()
Sheets("Bevételezés").Range("D4").Value = DTPicker1.Value
End Sub

Visszafelé sem sokkal bonyolultabb:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D4")) Is Nothing Then UserForm1.DTPicker1.Value = Range("D4").Value
End Sub

Persze ez utóbbit azért fejre lehet állítani, mert a DTPicker nem tud akármilyen értéket fogadni, de legfeljebb kitalálsz neki valami okos hibakezelést.
Előzmény: balogh.zs (8297)
balogh.zs Creative Commons License 2008.12.07 0 0 8297
Sziasztok!
Egy form-ra elhelyeztem (többek között) egy DTPicker-t , viszont nem tudom a kiválasztott dátumot beírni az adott cellában, pld:„'Bevételezés'!d4”. Viszont , ha egy munkalapba ágyazom be akkor a tulajdonságoknál megjelenik a „ LinkedCell”, és oda beírom:„'Bevételezés'!d4”, akkor tökéletessen működik csak a form-on nem szerepel a tulajdonságoknál.
Segítségeteket előre is köszönöm!
Üdv:Zsiga
szali11 Creative Commons License 2008.12.07 0 0 8296

Sziasztok!

 

Meg tudná vki írni, hogy hogyan tudom beállítani, hogy egy diagramon jelölje a minimum és maximum értékeket?

 

Előre is köszi!

szali1

Törölt nick Creative Commons License 2008.12.03 0 0 8295
Nagyon jó, már nekem sem villog! :-) Köszönöm mindkettőtöknek!
Előzmény: Törölt nick (8292)
Törölt nick Creative Commons License 2008.12.03 0 0 8294
"Kedves tanult professzor kolléga! :o)"

Maximum önjelölt tanársegéd ;)

"Ha jól értem ez a ShowModal tulajdonság lehetővé teszi, hogy ..."

A ShowModal tulajdonság azt befolyásolja, hogy amíg a Form fent van, a fókusz lekerülhet-e róla, vagy sem. Egy modális Formról nem tudsz lelépni és pl. cellába kattintani. A nem modális Formról igen.
Aztán hogy ennek még milyen egyéb járulékai vannak, azt én sem tudom pontosan. Ehhez már (azt hiszem) a Windows ablakkezelő függvényeit, algoritmusait kellene behatóan ismerni. De tapasztalatom szerint ez az egyik mellékhatás, amit te is írtál. Ám abban nem vagyok biztos, hogy ez jobb, mint Form aktiválásból indítani a dolgokat. A modális Form egyértelművé teszi a vezérlés útját. A nem modális Formok bekavarhatnak. Nekem voltak már gonjdaim több nem modális Form egyidejű alkalmazásával, de nem tudom elmondani, mert nem értem pontosan.
Előzmény: E.Istvan (8288)
vfsz2005 Creative Commons License 2008.12.03 0 0 8293

Sziasztok!

 

Van egy problémám. Még csak most kezdem tanulgatni az Excelt, és elakadtam. Nyitok egy Excelt. Úgy csinálam, hogy amit a Munka1-be beírok nevet, az a Munka2-be is megjelenjen. Azt szeretném elérni, hogy amit a Munka1-be beírok nevet,  pl (Kovács Tamás) a Munka 2-be már név+rangjelzést jelenitsen meg. (Kovács Tamás tű. tőrm.)  Segítségeteket előre is köszönöm.

Törölt nick Creative Commons License 2008.12.03 0 0 8292
Kölcsönvettem István ötletét a Progressbar feltételes frissítéséről, és így módosítottam a Sub-ot (a vastagított sor a különbség):

Sub Update_ProgressIndicator(PctDone As Single)
With UserForm1
If .FrameProgress.Caption = Format(PctDone, "0%") Then Exit Sub
.FrameProgress.Caption = Format(PctDone, "0%")
.LabelProgress.Width = PctDone * (.FrameProgress.Width - 10)
End With
' The DoEvents statement is responsible for the form updating
DoEvents
End Sub

Nekem ez így nem villog.

A várakozást azért raktam bele, mert úgy gondoltam, hogy anélkül egy pillanat alatt lefut. Nem próbáltam ki. Azóta igen, és láttam, hogy az első megoldásom várakozás nélkül is elég lassú, ez a módosított változat azonban elbírja.

Előzmény: Törölt nick (8291)
Törölt nick Creative Commons License 2008.12.03 0 0 8291
Köszönöm. Ebben számomra az a furcsa, hogy csak a % jelzés villog, a kiíratott aktuális feldolgozási státusz (UserForm1.Label1.Caption) nem.
Egy picit átalakítottam a feldolgozás jelző most ilyen:

Sub teszt()
Dim i As Long, j As Long, V As Long

UserForm1.LabelProgress.Width = 0
UserForm1.Show
V = 44567

For i = 0 To V
Update_ProgressIndicator i / V, i, V
'For j = 1 To 5000
'várakozás
'Next
Next
Unload UserForm1

End Sub


Sub Update_ProgressIndicator(PctDone As Single, Indx As Long, Volume As Long)

With UserForm1
.Label1.Caption = "Feldolgozva: " & Volume & " -> " & Indx ' ez nem villog
.FrameProgress.Caption = Format(PctDone, "0%") ' csak ez villog
.LabelProgress.Width = PctDone * (.FrameProgress.Width - 10)
'.Repaint
End With
' The DoEvents statement is responsible for the form updating
DoEvents

End Sub
Előzmény: E.Istvan (8290)
E.Istvan Creative Commons License 2008.12.03 0 0 8290

Bocsi most olvastam el „figyelmesebben”, hogy a % jelzés villog. (Nekem az egész panel villogot) A % jelzés valószínűleg azért villog, mert túl gyakran és nagyon gyorsan egymás után írja át a program. Erre én korábban olyan megoldást találtam ki, hogy egy változóban elmentem a beírni kívánt értéket, majd a következő ciklusban amikor újra kiszámolom a % értéket, akkor összehasonlítom az előző értékkel (csak az kiírandó egész részt INT függvénnyel) és csak akkor írom be az értéket a panelra, valamint csak akkor kérek repaintot, ha ez az érték megváltozott. Ezáltal ideális esetben megszűnik a vibrálás.

 

Előzmény: Törölt nick (8286)
E.Istvan Creative Commons License 2008.12.03 0 0 8289
A villogásra csak tippelni tudok. Szerintem ezzel a ShowModal tulajdonsággal van összefüggésben. Mert igaz esetén én pont az ellenkezőjét tapasztaltam, ahogy korábban már írtam. Nekem a repaint villogot és a DoEvents meg abszolút nem.
Csak ha ez a tulajdonság azt jelenti amire gondolok (8215), akkor sejtésem szerint nem ez a Form ablak az elsődlegesen aktív ablak és ez miatt villoghat. De Jimmy the Hand talán tud más magyarázatot is.
Előzmény: Törölt nick (8286)
E.Istvan Creative Commons License 2008.12.03 0 0 8288

Kedves tanult professzor kolléga! :o)

Ha jól értem ez a ShowModal tulajdonság lehetővé teszi, hogy a Form megjelenítése után folytatódjon az azt megjelenítő program? Én balga meg mindig a feldolgozó programrészeket és szubrutinokat beletettem a Form aktiválásába.

Előzmény: Törölt nick (8285)
Törölt nick Creative Commons License 2008.12.03 0 0 8287

Isten vagy. Meg a feletted hozzászólók is. Tényleg szuper dolog és megoldás mindenre.

1000x köszi

Előzmény: Törölt nick (8272)
Törölt nick Creative Commons License 2008.12.03 0 0 8286

Tökéletes, köszönöm szépen! :-) 

 

Ez a várakozás miért kell? A százalék jelzésének villogását nem lehetne valahogy kiszűrni? Érdekes, ha a DoEvents helyett UserForm1.Repaint -ot használom, nem villog olyan bántóan, viszon jóval lassabban fut le...

Előzmény: Törölt nick (8285)
Törölt nick Creative Commons License 2008.12.03 0 0 8285
"csak még nem tudom, hogy lehetne rávenni, hogy pl. 35000 ig futó cikloson belül is megfelelően működjön..."

Például így:
1) Törlöd a Form kódlapjáról az aktiváláskor lefutó kódot
2) Átállítod a Form ShowModal tulajdonságát False-ra
3) Beírod az alábbi szubrutinokat
4) Futtatod a teszt nevűt.

Sub teszt()
Dim i As Long, j As Long
UserForm1.LabelProgress.Width = 0
UserForm1.Show
For i = 0 To 35000
Update_ProgressIndicator (i / 35000)
For j = 1 To 5000
'várakozás
Next
Next
Unload UserForm1
End Sub


Sub Update_ProgressIndicator(PctDone As Single)
With UserForm1
.FrameProgress.Caption = Format(PctDone, "0%")
.LabelProgress.Width = PctDone * (.FrameProgress.Width - 10)
End With
' The DoEvents statement is responsible for the form updating
DoEvents
End Sub
Előzmény: Törölt nick (8283)
qncogi Creative Commons License 2008.12.03 0 0 8284
Nem tudom jó helyen járok-e, de van egy kérdésem.
2007-es officeban (word, excel) le van tiltva a Legutóbbi dokumentumok listájának módosítási lehetősége (szürke). /beállítások-speciális - megjelenítés rész/

Hogy lehet ezt visszacsinálni (telepítéskor élt)?

Registry?
Törölt nick Creative Commons License 2008.12.03 0 0 8283

Köszönöm, most tanulgatom a VBA-t probálok minden ötletet begyűjteni...

 

Íme egy másik feldolgozás jelző ami letölthető és még tetszetős is, csak még nem tudom, hogy lehetne rávenni, hogy pl. 35000 ig futó cikloson belül is megfelelően működjön...

Előzmény: E.Istvan (8279)
E.Istvan Creative Commons License 2008.12.03 0 0 8282
Ja és még a VBA felület jelszavazásán kívűl az egész munkafüzetet is levédheted pluszban, hogy ne lehessen módosítnai a felépítésen.
Előzmény: gery789 (8280)
E.Istvan Creative Commons License 2008.12.03 0 0 8281

Ha annyira titkosak azok a rejtett sorok, de egyébként szükségesek valamilyen számításokhoz és ezért nem lehet véglegesen törölni őket, akkor olyan megoldási javaslatom lenne, hogy azokat tedd át egy másik munkalapra és onnan hivatkozd meg. Majd ezt a másik munkalapot rejtsd el, de nem sima lapelrejtéssel, hanem VBA felületen kereszült

sheets("Munka2").visible=xlveryhidden

majd az egész VBA felületre tegyél jelszót. Halandó felhasználók ellen elegendő védelem.

Előzmény: gery789 (8280)
gery789 Creative Commons License 2008.12.03 0 0 8280

A leírtakat a 2007-es Excelben tapasztaltam.
Amikor a bal felső sarokra kattintok látszólag nem csinál semmit, de utána a Ctrl+C-vel tudom másolni az egész lapot.
S azt már könnyedén be tudom illeszteni egy másik Excel állományba.

köszi a próbálkozást
Gerő
Előzmény: E.Istvan (8278)
E.Istvan Creative Commons License 2008.12.03 0 0 8279

Nem tudom mennyire vagy otthon a VBA-ban, és a Form-ok kezelésében, de ez csak egy sima értékadás. Ha ezt az objektumot beleteszed egy Form-ba, ott tudod változtatni az értékét.

For ciklus = 1 To ciklusvege
    ProgressBar1 = int(ciklus/ciklusvege*100)
    DoEvents
Next ciklus

Sajnos magát az értéket nem jeleníti meg, de az meg kiírható külön egy szövegdobozban ha szükséges.

Előzmény: Törölt nick (8275)
E.Istvan Creative Commons License 2008.12.03 0 0 8278

Erre csak azt tudom mondani, amit az előttem lévő kolléga már leírt, hogy nekem 2003-as alatt nem engedi a lap kijelölést sem.

Előzmény: gery789 (8276)
Törölt nick Creative Commons License 2008.12.02 0 0 8277
Ez érdekes. Most próbáltam ki: ha a zárolt cellák kijelölése nincs engedélyezve, akkor nem tudom az egész lapot (bal felső sarok) sem kijelölni. 2003-as Excelem van.
Előzmény: gery789 (8276)
gery789 Creative Commons License 2008.12.02 0 0 8276

Sziasztok!

Igen, a kicselezésen azt értem, hogy másolás után a rejtett cellákat (sorokat, oszlopokat) is beilleszti.

Sajnos a "zárolt cellák kijelölése" pipa kivétele sem működik (próbáltam korábban), mert ha az egész lapot kijelölöm (bal felső sarok) akkor kijelöl mindent (bár láthatatlanul), mégis lehet másolni, s beilleszteni mindent (rejtett cellákkal együtt).

Valakinek valami más ötlete?

köszönöm az eddigieket is
Gery
Előzmény: E.Istvan (8271)
Törölt nick Creative Commons License 2008.12.02 0 0 8275
Esetleg nem tennél be egy egyszerű példát a használatára mondjuk egy for cikluson belül?

Előzmény: E.Istvan (8273)
E.Istvan Creative Commons License 2008.12.02 0 0 8274
Korán lelkesedtem. :( Igaz, hogy egyszerű a használata, de nem olyan szép, mert csak egységnyi kockákat ugrik és nem mutatja a folyamatos emelkedést, úgy mint az én barkácsolt megoldásom.
Előzmény: E.Istvan (8273)
E.Istvan Creative Commons License 2008.12.02 0 0 8273
Tapasztalatom nincs, de most megnéztem. Szuper. (Például ilyet kerestem volna korábban.) Beállítható a minumum és a maximum értéke, ami alapból 0 és 100, majd értéket adva neki mutatja, hogy hol tartunk. Ezentúl nem kell barkácsolnom :o)
Előzmény: Törölt nick (8272)
Törölt nick Creative Commons License 2008.12.02 0 0 8272

Sziasztok!

 

A folyamat/feldolgozás jelzővel kapcsolatban olvastam valahol, hogy viszonylag egyszerűen megoldható egy ProgressBar nevű eszközzel. Esetleg, van már valakinek tapasztalata ezzel kapcsolatban?

 

Microsoft ProgressBar Control
E.Istvan Creative Commons License 2008.12.02 0 0 8271

Ha a lapvédelem kicselezésén a következőt érted:

Ha egy tartományt kijelölsz és másolsz és ez a tartomány tartalmaz rejtett oszlopokat sorokat, akkor azt is másolni fogja. Tehát ahová beilleszted, ott megjelenik a rejtett sorok, oszlopok tartalma is.

 

Ennek kiküszöbölésére egy lehetőség például az, hogy a lapvédelem bekapcsolása elött kiveszed a pipát a "zárolt cellák kijelölése" sor elől. Ezáltal nem lehet kijelölni a cellákat, így másolni sem lehet. (Egyszerű halandó felhasználóknak)

Előzmény: gery789 (8268)
Törölt nick Creative Commons License 2008.12.02 0 0 8270
Ez speciel engem is érdekelne...
Előzmény: Sánta Kutya (SK) (8269)
Sánta Kutya (SK) Creative Commons License 2008.12.01 0 0 8269
"A sima lapvédelmet ki tudtam cselezni. :("
Hogyan?
Előzmény: gery789 (8268)
gery789 Creative Commons License 2008.12.01 0 0 8268
Sziasztok,
Tud valaki segíteni abban, hogy hogyan lehet (ha egyáltalán van erre lehetőség)
Excel munkalapon másolásvédelmet beállítani a cellákra / összes cellára?

Vagy úgy elrejteni sorokat, hogy csak jelszóval lehessen felfedni (fonsot, hogy copy-paste után se legyenek ott ezek a sorok).
A sima lapvédelmet ki tudtam cselezni. :(

köszönöm
Gery
E.Istvan Creative Commons License 2008.12.01 0 0 8267
Sajnos ez esetben ezt nem használhatom, mert olyan táblázatokat és programokat kell készítenem, amit az alap Excel támogat, vagy ha nem akkor maga az Excel fájl tartalmazza valamilyen módon beépülve, csatolva.
Előzmény: Törölt nick (8259)
Törölt nick Creative Commons License 2008.12.01 0 0 8266
Köszi :)
Szerintem ne várj, mert lehet, hogy a tiednél jobb megoldás sosem érkezik. Nem lehet tudni.
Előzmény: E.Istvan (8265)
E.Istvan Creative Commons License 2008.12.01 0 0 8265
Hát igen. Aki profi az profi :)
Legközelebb tovább várok, mielőtt valakinek próbálok segíteni amatőr módon :)
Előzmény: Törölt nick (8260)
Törölt nick Creative Commons License 2008.11.28 0 0 8264
Köszi, ki is javítom a "" jeleket False-ra
Előzmény: Törölt nick (8263)
Törölt nick Creative Commons License 2008.11.28 0 0 8263
A végén ne feledd a StatusBar-t alaphelyzetbe állítani:

Application.StatusBar = False

Különben egész héten azt fogja mutatni, amit utoljára beleírtál. (Pontosabban a következő Excel indításig.)
Előzmény: Törölt nick (8262)
Törölt nick Creative Commons License 2008.11.28 0 0 8262
Sok erőforrást használhat így, de leleményes megoldás.
Eszembe jutott még az, hogy lehet játszani a StatusBar-al is - nyilván nem látványos annyira, de egyszerű.
Pl.
Application.StatusBar = Application.StatusBar & "|"
Előzmény: E.Istvan (8249)
OZ Juice Creative Commons License 2008.11.28 0 0 8261
őrülten hálás vagyok!
Előzmény: E.Istvan (8257)
Törölt nick Creative Commons License 2008.11.28 0 0 8260
Sub h()
Dim Rng As Range
ActiveSheet.Rows.Hidden = False
Do
Set Rng = ActiveSheet.Range("B:B").Find(What:=1, LookIn:=xlValues, LookAt:=xlWhole)
If Rng Is Nothing Then Exit Do
Rng.EntireRow.Hidden = True
Loop
End Sub


Bizonyos konkrét esetekben ezt még lehet tovább egyszerűsíteni.
Előzmény: OZ Juice (8256)
Törölt nick Creative Commons License 2008.11.28 0 0 8259
Igen, ez egy plusz dll, amit telepíteni kell ahhoz, hogy VBA-ból elérhető legyen. Ez a rész szól a telepítésről:

"Installing ProgessReporter

Unzip and save the file to some directory. Then, go to the Windows Start menu, choose Run, and enter the following command:
RegSvr32 "C:folderProgressReporter.dll"

Change the folder to the complete folder name in which you saved the file. Then, in your VBA Project, go to the Tools menu, choose References, and put a check next to "ProgressReporter"."


Előzmény: E.Istvan (8254)
Delila_1 Creative Commons License 2008.11.28 0 0 8258

Bocsi!

 

A next sor előtt kimaradt az endif.

Előzmény: E.Istvan (8257)
E.Istvan Creative Commons License 2008.11.28 0 0 8257

B oszlop 1 értéke esetén például:

kérdéses munkalapon nyomógomb létrehozása makró hozzárendelése

 

sub rejtes

for sor=1 to 65536

if cells(sor,2).value=1 then

rows(sor).hidden=true

else

rows(sor).hidden=false

next sor

end sub

Előzmény: OZ Juice (8256)
OZ Juice Creative Commons License 2008.11.28 0 0 8256
Csókolom!

Aztat szeretném csinálni, hogy egy táblázat automatikusan (mondjuk gombnyomásra, vagy ilyesmi) rejtse el azokat a sorokat ahol a B (vagy akármelyik) oszlop értéke mondjuk 1 (vagy akármi).

Ilyet lehet?

Hálásan
E.Istvan Creative Commons License 2008.11.28 0 0 8254

Ezt is megnéztem. Az angol tudásom nem túl jó, de ha jól értem ez egy plusz dll, amit a gépre fel kell tenni, viszont ha készítek egy excel táblát makróval, és más valaki más gépen futtatná, ott meg nem lesz meg ez a dll. Vagy valahogy csatolható az excel fájlhoz?

Előzmény: Törölt nick (8252)
E.Istvan Creative Commons License 2008.11.28 0 0 8253

Nem ismertem. Megnéztem. Ez végül is hasonló az enyémhez, de ebben az esetben is ismert mind a két ciklusban a futások száma.
Viszont tanultam egy újat. Köszönöm.
Eddig én a userform.repaint paranccsal frissítettem a panelomat, ami a gyakori frissítések miatt vibrálást okozott. Most kicseréltem erre a DoEvents-re és így most nem vibrál. :)

Előzmény: magyarpityu (8251)
Törölt nick Creative Commons License 2008.11.28 0 0 8252
"Azért érdekelne, hogy ezt hogy kellene "hivatalosan" és "profin"elkészíteni."

Például.
Előzmény: E.Istvan (8249)
magyarpityu Creative Commons License 2008.11.28 0 0 8251

Sziasztok!

 

Ezt már próbáltátok? http://support.microsoft.com/kb/211736

Előzmény: E.Istvan (8249)
Törölt nick Creative Commons License 2008.11.28 0 0 8250
Nézd meg a VB Editor ablakban a Tools->References menüpontot. Ott valszleg lesz valami *MISSING* figyelmeztetés, hogy milyen DLL-t vagy OCX-t vagy hasonló függvény- illetve objektumkönyvtárt nem talál a gépre telepítve. Azt kellene pótolni. Ennek semmi köze a Mid függvényhez. Az sem biztos, hogy Office tartozék az illető.
Előzmény: Gavriel (8248)
E.Istvan Creative Commons License 2008.11.28 0 0 8249

>>Ja,a kérdésem arra vonatkozott, hogy az egysoros textboxban ott alul mitől lesz kék színű a folyamatjelző csík. (Vmilyen kék színű karaktereket fűzöl egymás után?)

 

Ez egy nem túl elegáns barkácsolás eredménye. A panelen látható elemek egyike sem TextBox, hanem Label. Csak úgy vannak formázva mintha TextBox-ok lennének. Jelen esetben egy 304 széles fehér Label-en van rajta egy 300 széles kék Label. Ennek a szélessége van változtatva 0-300 között ami a % érték 3 szorosa. Majd az egész tetején van egy harmadik átlátszó Label, amibe a % érték kerül. Nem túl elegáns, de tudásomból erre futotta.
Azért érdekelne, hogy ezt hogy kellene "hivatalosan" és "profin"elkészíteni. Ennek a módszernek ugyanis van egy kis hibája, hogy géptől és képernyő felbontástól függően a kék Label egy nagyon picit elcsúszhat a fehér háttértől és akkor már nem olyan szép.

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

Szia!

>> Persze ez akkor nem működik ha összesen egy ciklusod van és az sokáig fut. :(

Pontosan ez a helyzet áll fenn :)

>>Azt ne vedd készpénznek, hogy a problémádra nincs megoldás, mert én is amatör vagyok.

Amit megcsináltam, az is már egy fél megoldás - célnak megfelel, a felhasználó így már nem néz bután, hogy most akkor lefagyott avagy történik valami.

De mégis keserű a csokoládé, ezért kérdezősködtem itt erről és köszönöm a válaszaidat.

Ja,a kérdésem arra vonatkozott, hogy az egysoros textboxban ott alul mitől lesz kék színű a folyamatjelző csík. (Vmilyen kék színű karaktereket fűzöl egymás után?)

Előzmény: E.Istvan (8246)
E.Istvan Creative Commons License 2008.11.27 0 0 8246

Van egy egysoros text box, majd alatta egy több soros.

Az egysorosba beírom az éppen aktuális folymatot. Például

x.munkalapon táblázat formázása folyamatban

vagy y munkalap adatainak ellenörzése, feldolgozása stb.

Majd amikor az egy sorosba új szöveget írok a régit sortöréssel hozzáfűzüm a többsoroshoz. Így azt is látja, hogy eddig mi történt.

Egyébként ha nem ismert a ciklusszám, de több egymás utáni feladatot kell elvégezned akkor az is megoldás, hogy minden egyes feladat elvégzése után kiírsz egy új % értéket. Ez által kisebb ugrásokkal számol a % értéked is mégsem kell ismerned a ciklusszámot. Az egyes százalék ugrások között meg kiírod a vonalaidat :) Persze ez akkor nem működik ha összesen egy ciklusod van és az sokáig fut. :(

Azt ne vedd készpénznek, hogy a problémádra nincs megoldás, mert én is amatör vagyok.

Előzmény: Törölt nick (8245)
Törölt nick Creative Commons License 2008.11.27 0 0 8245
Szia!
Köszönöm a segítségedet, korrekt.
Jól sejtettem, hogy ismerni kell a lépésszámot.
A legegyszerűbb megoldásra gondoltam én is - miszerint az épp futó folyamatot szövegesen kiírnám. De ennél tovább szerettem volna menni.
A képen a folyamatjelzőt (textbox?) mivel töltöd fel?
Előzmény: E.Istvan (8244)
E.Istvan Creative Commons License 2008.11.27 0 0 8244

Én a folyamatjelzésre kétféle módszert használok, azonban mindegyik esetben szükség van a ciklusszám ismeretére.

 

A legegyszerűbb esetben simán kiírom a ciklusváltozót és egy / jel után az ciklusok számát, így a felhasználó látja, hogy hol tart. Egy for each ciklus esetében természetesen előbb meg kell határozni a ciklusok számát majd bevezetni egy változót a ciklusszámlálásra. Ebből a két számból már kiírható a százalék is

 

A látványosabb esetben készítettem egy Form-ot melyben egy futó sávban jelzem és %-ban kiírom hogy hol tartunk, valamint felette egy szöveges mezőben azt hogy melyik munkafolyamat fut. Ennek egy hátránya van, hogy az állandó frissítések miatt vibrál.

clip_image002

Amikor több munkafolyamat van akkor egyszerre csak egy munkafolyamat esetén tudom megszámolni a szükséges ciklus számot. Ez esetben %-os értékben megbecsülöm hogy az egyes munkafolyamatok a teljes munkafolyamat hány %-át teszik ki.

 

például az első munkafolyamat 5%, akkor a kiíratandó érték:

Int(feldolgozott_adat /osszes_adat * 0.05 * 100)

 

A következő munkafolyamat 80% tehát a sávnak 5%-ról kell indulnia és 85-nél kell befejeződnie.

Int(feldolgozott_adat / osszes_adat) * 100 * 0.8) + 5

 

Előzmény: Törölt nick (8236)
Master of Amateurs :) Creative Commons License 2008.11.26 0 0 8243

Köszi megint!

(Bár még ezt sem próbáltam ki, de már a szándék is megéri a köszönetet! :) )

Előzmény: Törölt nick (8242)
Törölt nick Creative Commons License 2008.11.26 0 0 8242
Szerintem a References a fájlban van rögzítve. Szóval ha a makrót tartalmazó fájlt teszed közzé, akkor mindenkinek tudnia kell futtatni.
Másrészt, csinálhatod a fejlesztést úgy, hogy beikszeled az Outlook Object Library referenciát, és használod a kódkiegészítőt. És amikor kész vagy, kicseréled

ezt:
Dim OL As Outlook.Application
Set OL = New Outlook.Application

erre:
Dim OL As Object
Set OL = CreateObject("Outlook.Application")

és már nem kell a referenciával törődni.

Az Outlook-os makrórögzítést meg kicsit elnéztem... Bocsánat.
Előzmény: Master of Amateurs :) (8241)
Master of Amateurs :) Creative Commons License 2008.11.26 0 0 8241

A "Reference-es" lehetőséggel az a baj, hogy a felhasználók nem tudják majd kezelni a kész makrót... (abból indulok ki, hogy nem szeretném a majdani felhasználóknak a kezét fogni) ezért valamilyen CreateObject-es megoldást kell találnom.

 

Csak azok a nyavalyás tulajdonságok... :(

Előzmény: Törölt nick (8239)
Törölt nick Creative Commons License 2008.11.26 0 0 8240
Tényleg, hogy lehet Outlookban makrót rögzíteni? :)
A lentit a VBA kezelőfelületén találod meg.
Előzmény: Master of Amateurs :) (8238)
Törölt nick Creative Commons License 2008.11.26 0 0 8239
A tools/references menüpontban válaszd ki az Microsoft Outlookot
Előzmény: Master of Amateurs :) (8238)
Master of Amateurs :) Creative Commons License 2008.11.26 0 0 8238

Azelőtt köszöntem meg, hogy kipróbáltam volna... :)

 

Kipróbáltam, amit mondtál, de a "." kirakása után nem jelenik meg lista a lehetőségekről. :(

 

Az Outlookban hogyan kell makrót rögzíteni?

 

Az Eszközök menü ---> Makrók menüpontja alatt nincs ilyen opció (Csak 3 lehetőségem van: ("Makrók..." :a már elkészített makrók listája; "Biztonság..."; "Visual Basic Editor").

 

Köszi!

Előzmény: Törölt nick (8235)
Master of Amateurs :) Creative Commons License 2008.11.26 0 0 8237
Köszi szépen!!! :)
Előzmény: Törölt nick (8235)
Törölt nick Creative Commons License 2008.11.26 0 0 8236
SZiasztok,
1 db kérdésem van, jellegét tekintve inkább matek.
A lényeg az hogy folyamatjelzőt készítettem

Const folyamat = "|"
FJ.value = FJ & folyamat

módszerrel, bizonyos ciklusokba, sorokba beszúrva.

Azonban nem tetszik, mert ismeretlen a vége - tehát pakolgatja a More vonalakat, de a felhasználó nem tudja, hogy meddig. (De legalább azt látja, hogy valami történik.)

Fenti módszert követve egyszerűsíteném úgy, nem | vonalakat fűzögetne egybe, hanem számolna 100%-ig.

Azonban nem tudom hogy kell kiszámolni azt, hogy mindig 100 legyen a végére. Az a megoldás nem jó, hogy elindítom 1%-ról fenti módszert követve beszúrok 1-1 sort, hogy 10%.... 20%....30%....100%, mert egy változó lépésszámú for each ciklusba is bele kell raknom.
Gondolom valahogy el kell osztani a 100-at és megszorozni valamivel. A gond itt az lehet, hogy iváltozó az ismétlődések száma.

Meg tudom számolni a for each ciklus lépéseit (ez egy sima selection.count lenne) és akkor már gyerekjáték lenne kiszámolni, hogy a végére 100legyen.

De nagyon kíváncsi vagyok, hogy más mit tud erről mondani.
Törölt nick Creative Commons License 2008.11.26 0 0 8235
Írd be egy makró elején, hogy
Dim OL As Outlook.Application

Azután írd be ezt:
OL.

És amikor a pontot kiteszed, megjelennek a választható tulajdonságok és műveletek.

Ezen kívül a VBA Help is jól jöhet, mert ott megtalálod a műveletek paraméterezési szabályait.

Meg Outlookban is lehet makrót rögzíteni.
Előzmény: Master of Amateurs :) (8234)
Master of Amateurs :) Creative Commons License 2008.11.26 0 0 8234

Sziasztok!

 

 Ismertek valamilyen általános szabályt, módszert, hogy hogyan lehet meghatározni

 egy alkalmazás mezőneveit, hivatkozásait?

 Pl. szeretném, hogy a makróim ne csak a jelenlegi feladatait csinálják meg, hanem a

 végén küldjenek egy (vagy több) e-mailt.

 A problémám az, h csak ennyit tudok az Outlookra való hivatkozásról:

 Outlook.Application :)

 Ezzel meg is állt a tudományom.

 Nem feltétlenül azt szeretném, hogy konkrétan oldjátok meg a gondom, csupán az

 alkalmazások hivatkozásainak megismerésének menetét mondjátok meg, pls!

 

 Pl. Új mail megnyitása; piszkozat mappában levő levél duplikálása elküldés céljából,

 a piszkozat állapotának megváltozása nélkül; Címzett mező kitöltése... stb.

 

 Csupán ilyen alapvető dolgokat szeretnék csinálni. :)

 

 Köszi!

 

 

wawabagus Creative Commons License 2008.11.25 0 0 8233

Szia!

Köszi. Ez jól hangzik.

És műveletet is írhatok bele :-)?

Mindjár ki is próbálom :-)!!

Köszi szépen!

Előzmény: toccata (8230)
wawabagus Creative Commons License 2008.11.25 0 0 8232

Szia!

Hát ez az :-)...el lehet itt mindenen bukni :-))...

Köszi a segítséget!!!!

 

Előzmény: Törölt nick (8229)
Törölt nick Creative Commons License 2008.11.25 0 0 8231
Esetleg azt megpróbálhatod, hogy nevet adsz a két pivotos cellának.
Kijelölöd az egyiket, aztán Menü: Beszúrás -> Név -> Név megadása, és beírod oda, hogy pl. "Pista_átlag". A másikat hasonló módon elnevezed "Józsi_átlag"-nak.
Aztán a képleted kb. így fog kinézni: =Pista_átlag/Józsi_átlag
Előzmény: wawabagus (8228)
toccata Creative Commons License 2008.11.24 0 0 8230
Az "=" és átkattintás Pivotba meg tudja tréfálni az embert.
Javaslom, inkább írd be direkbe az egyenlőség jel után a pivotot tartalmazó lap nevét, utána felkiáltójellel majd a cella címét (=pivotosmunkalap!B5).
Előzmény: wawabagus (8228)
Törölt nick Creative Commons License 2008.11.24 0 0 8229
Annyit tennék hozzá, hogy angol Excelben a függvény-argumentumokat nem pontosvesszővel, hanem sima vesszővel kell elválasztani. Ha a vizsgáztatónak szőrös a szíve, akár ezen is el lehet bukni.
Előzmény: wawabagus (8228)
wawabagus Creative Commons License 2008.11.24 0 0 8228

Szia!

:-)

Szóval, ami a harmadik pontot illeti.

 

Azt kell elképzelni, hogy csináltam egy pivot-ot...ahol láthatom pl. Pista/Józsi hányszor vásárolt és mennyiért összesen.

 

Aztán egy másik munkalapon egy konkrét cellába formula szintjén nekem bele kell írnom Pista átlagát,...de ez egy teszt volt, szóval konkrétan a lényeg az, hogy abban a cellában benne kell lennie egy ilyen automatikusan kiszámoló formulának...

 

Mert persze magamtól, tutira megoldok mindent valami paraszti módszerrel...de itt ebben az esetben ez egy excel ismeretet tesztelő feladat volt, amivel engem vizsgáztatnak...

 

És dühítő, mert elég szarul sikerült, főleg hogy én magyar excelt használok és nem annyira egyértelmű, hogy angolul is tudnom kell a formulákat...meg persze 1 perc alatt meg lehet őket tanulni, ha szükséges...itt meg mégis hülyének jöttem ki :-(

 

Na, mindegy :-((...

 

Tehát, ami ezt a feladatot illeti, logikus, hogy a celléba beírom, hogy "=", majd átmegyek a pivot ablakában és bekattintom mivel is egyenlő és ezt a szám osztva egy másik pivotban lévő értékkel, de valami követhetetlenül hosszú sorok lesznek a formulában...szóval azt hiszem nem így kell csinálni....

 

 

Álláskeresésben vagyok ugyanis :-((...aztán ott teszteltek.

Szóval gondotam megtanulom, mert egyébként is jól jöhet még :-)...

De azt hiszem megint elég érthetetlenül írtam le a problémám....

 

Előzmény: Törölt nick (8223)
wawabagus Creative Commons License 2008.11.24 0 0 8227

Szia!

Óóó, köszi neked is :-)!!!

 

Előzmény: Delila_1 (8226)
Delila_1 Creative Commons License 2008.11.24 0 0 8226

 

=if(or(a1=4;a1=5);válasz_igaz_esetén;válasz_hamis_esetén)

Előzmény: wawabagus (8225)
wawabagus Creative Commons License 2008.11.24 0 0 8225

Rájöttem :-)

 

Magyar függvénnyel így lenne:

 

=HA(A1=4;1;HA(A1=5;1))

 

Á, tök jó!!

 

 

Előzmény: wawabagus (8224)
wawabagus Creative Commons License 2008.11.24 0 0 8224

Szia! :-)

Köszi a segítséget!

Ha az első pontnál maradunk... Csak, hogy megértesem :-)...

 

Tehát nekem azt kéne csinálnom, hogy

ha A1=4 vagy 5   akkor B1=1

 

=IF(A1=4;1;"egyik sem")

 

az eleje a függvénynek azt jelenti, hogy ha A1=4, akkor B1=1, ugye?

Az "egyis sem"? Az mit jelent? Hogyan kerül képbe itt az 5-ös (tehát a vagy 4, vagy 5?).

 

Bocs, kicsit lassú a felfogásom.

 

Én a paraszti eszemmel azt írnám, hogy

 

=IF(A1=(4 | 5);1)

 

de ezt sajna valahogy nem így kell kifejezni :-(...

 

Köszi a segítséget!

Y

Előzmény: Törölt nick (8223)
Törölt nick Creative Commons License 2008.11.24 0 0 8223
1. B1-be: =IF(A1=4;1;"egyik sem")
2. Feltételes formázással. Ha a képlet értéke ISEVEN(A1)
3. ?
Előzmény: wawabagus (8222)
wawabagus Creative Commons License 2008.11.24 0 0 8222

Sziasztok!

Szeretnék segítséget kérni tőletek.

Hogyan kell függvénnyel (ANGOLLAL :-(():

 

1. többszörös feltételt írni (pl. ha A1=4, vagy 5, akkor B1 =1)...tudom, hogy ez nagyon könnyű dolog, csak hát én nem tudom :-(...

 

2. sorokat színezni az alapján, hogy pl. A1 páros, vagy páratlan szám (függvénnyel, azt hiszem valami MOD()

 

3. hogyan lehet (osztani szorozni) egy pivot táblázatban lévő számot. pontosabban az munka1 en egy cellában szeretnék pl. megjeleníteni egy átlag számot, amit egy pivotban lévő táblázat alapján számolok ki...de függvénnyel...fúúú, nem tudom értehető-e a kérdésem...

 

Ezer köszönet a segítségért!!!!

Y.

 

 

SpidyX30XE Creative Commons License 2008.11.20 0 0 8221

Sziasztok!

 

FIFO követő rendszert kellene készítenem.

Lehetőleg Excelben, ha nem megy akkor VBA is jó.

FI FO - First in First out

 

Magyarul bejött 4 időpontban 5-5 termék és ki kellen adni 7,3,4 db terméket úgy hogy a legelső 5 és a második 2 menjen ki először, aztán 3 db a második bejövőből, aztán 4 db a harmadikból. Mindegy elsőre hogy néz ki. Meg tudom csinálni én is, de ha már készített valaki ilyet nagyon szívesen vennék egy xls-t.

 

VBA dettó. Meg tudom írni, de azt hiszem fölös erősfeszítés lenne, ha már létezik ilyen és a felhasználók miatt, egy egyszerűbb Exceles megoldás lenne a hatásos.

 

Köszönöm előre is,

Spidy

Törölt nick Creative Commons License 2008.11.20 0 0 8220
Ezt már értem. Nos, ha nem ftp-ről kellene, akkor azt gondolom, sima ügy lenne.
De az ftp nagyon bekavar. Nem tudok ftp helyről fájlokat listázni.
Előzmény: fajlkezelo (8219)
fajlkezelo Creative Commons License 2008.11.19 0 0 8219
Szia!

Csatolás Excel 2003-ban:
Adatok menü - Külső adatok importálása - Adatok beolvasása
- prn fájlt adok meg, majd szövegimportáló varázsló.
No most ezen a fülön jobb egérgombra lehet frissíteni, ill.
az Adattartomány tulajdonságainál lehet beállítani, hogy
"Frissítéskor rákérdezés a fájlnévre".
No tehát ennek a frissítéséről lenne szó.

Kösz

Előzmény: Törölt nick (8218)
Törölt nick Creative Commons License 2008.11.19 0 0 8218
Nem értem a helyzetet.
Mit jelent az, hogy "egy fülre csatolva van egy textfájl"?

Úgy tudom elképzelni, hogy Menü: Beszúrás->Objektum->Létrehozás fájlból, és ott a csatolás fájlhoz négyzetet beikszelni.
Namost. Ezt a munkafüzetet elmentem, megnyitom, és nyitáskor kérdezi, hogy akarom-e frissíteni a más helyekre mutató hivatkozásokat. Mondom neki, hogy igen. De tőlem nem kérdez semmiféle fájlnevet...

Szóval pontosan mi is ez, és mit akarsz vele csinálni?
Előzmény: fajlkezelo (8217)
fajlkezelo Creative Commons License 2008.11.18 0 0 8217
Sziasztok!

Van egy kis problémám:

Egy fülre csatolva van egy textfájl (prn).
Frissítéskor rákérdez a fájlnévre, no de egyre több fájl közül kell
kiválasztani a helyes fájlt és ez nagyon zavaró.

Olyat szeretnék, hogy ha pl. az A1 cellára lép valaki,
akkor jöjjön elő a frissítéskor előbukkanó szövegfájl importálása
(persze csak a fájlt kellene kiválasztanom újra - a varázsló nem kell).

Az megy, hogy az A1 cellára kattintva elinduljon egy makró,
csak az nem, hogy
- a frissítés ablak jöjjön elő
- adott kiterjesztésű fájlok jöjjenek csak elő (pl. 11*bx.prn)
- egy ftp helyen lévő könyvtár tartalma jöjjön elő (név-jelszó rögzítve lehet).

Köszönöm.
Törölt nick Creative Commons License 2008.11.07 0 0 8216
Ez teljesen korrekt, úgy tájékozódtam közben hogy nem lehet máshogy, csak ezzel a tömbös bejárással.

A CDbl konvertálást nem ismertem. Megnéztem a helpben, nagy jó dolgot tanultam megint Tőled.

Köszönöm!
Előzmény: Törölt nick (8215)
Törölt nick Creative Commons License 2008.11.07 0 0 8215
Ez egy kicsit egyszerűbb, de még mindig nem az igazi...

Sub Proba()
Dim TOMB() As Variant, i As Long
TOMB = Split("1;2;3", ";")
For i = LBound(TOMB) To UBound(TOMB)
TOMB(i) = CDbl(TOMB(i))
Next
End Sub
Előzmény: Törölt nick (8214)
Törölt nick Creative Commons License 2008.11.07 0 0 8214
Hát, megcsináltam de nem igazán tetszik, kell lennie valami egyszerűbb megoldásnak is.:


Sub Proba()
Dim TOMB2(4) As Byte
TOMB = Split("1;2;3", ";")
For Each akarmi In TOMB
akarmi = akarmi - 1
TOMB2(akarmi) = TOMB(akarmi) * 1
Next
End Sub
Előzmény: Törölt nick (8211)
Törölt nick Creative Commons License 2008.11.07 0 0 8213
Köszönöm a jótanácsokat. Egyébként gondoltam arra, hogy stringgé darabolja, írja a help is.
Egyelőre megpróbálom valahogy számmá alakítani, a rejtett cellás megoldásod is jó, csak nem tetszik annyira.
Előzmény: Törölt nick (8211)
Törölt nick Creative Commons License 2008.11.07 0 0 8211

Szerintem nem lenne itt semmi gubanc, ha a tömbödben számok lennének.
De egy Split() után sztringek kerülnek a tömbbe, és az Average emiatt fut zátonyra. Nézd csak:

Sub teszt()
Dim Arr, Arr2

Arr = Array(1, 2, 3, 4, 5, 6, 7, 8)
Arr2 = Array("1", "2", "3", "4", "5", "6", "7", "8")
MsgBox Application.WorksheetFunction.Average(Arr)
MsgBox Application.WorksheetFunction.Average(Arr2)
End Sub

Arra kellene rájönni, hogyan lehet a sztringsorozatot elegánsan átalakítani számsorozattá. Egy lehetséges megoldás, hogy a tömböt egy (rejtett) cellatartományba másolod, és ezt a Range-et adod meg az Average paramétereként.
De ez nem elegáns.
Előzmény: Törölt nick (8210)
Törölt nick Creative Commons License 2008.11.07 0 0 8210

mit kell tennem azert, hogy egy tombben levo szamok atlagat kiszamoljam? 

valtozo= Split(InputBox("szamok"), ";")

msgbox worksheetfunction.Average(valtozo)

ez sajnos nem mukodik, mert az average tulajdonsag nem erheto el. Hat dehogynem, felhozza a metodus lista is.

Tudom, en vagyok a hulye nem az excel, de nem akarok igy meghalni.

segitene megint vki?

Törölt nick Creative Commons License 2008.11.06 0 0 8209
Jogos a két pont :)
Előzmény: magyarpityu (8193)
Törölt nick Creative Commons License 2008.11.06 0 0 8208
Az idő az Excelben számként van ábrázolva. Az egység a nap. Az idő megfeleltethető egy végtelen számegyenesnek. Konvenció szerint a számegyenes 1-es értéke 1900.01.01. 0:00:00 időpontnak felel meg. Minden egységnyi lépés egy napot jelent előre vagy hátra az időben. Az 1900 előtti dátumok (tehát a negatív számok) kezelése alapértelmezésben nincs benne az Excelben.

Amikor egy dátum típusú változónak értéket adsz (pl. D = "1999.02.12"), akkor a változóhoz tulajdonképpen egy valós szám rendelődik hozzá, amelynek csak a megjelenítési módja dátumforma. Ezzel a számmal minden matematikai művelet elvégezhető, amit valós számokkal el lehet végezni. Így például a fenti D dátumból gyököt lehet vonni, ki lehet számolni a szinuszát, meg lehet szorozni kettővel, stb. és valódi értékek jönnek, ki, csak éppen az értelmük kérdéses.

Dátumokat végzett műveletek esetében általában a következő aritmetikai műveleteknek van értelmük:
- két dátum különbsége (időtartam)
- dátum és időtartam összege v. különbsége

Az időtartam egy tetszőleges szám, de ez is nap alapú. Tehát 24-gyel kell megszorozni, ha óraszámot akarsz belőle kihozni.

Ha egy dátumváltozóval matematikai műveletet végzel, az eredmény gyakran valós (Double) típusú lesz, ezt dátummá a CDate() típuskonverziós függvénnyel alakítod.
Előzmény: Gavriel (8204)
Delila_1 Creative Commons License 2008.11.06 0 0 8205

Szívesen.

 

A súgóban keresőszóként add meg a függvények címszót, azok között  megtalálod a Dátum- és időfüggvényeket. Példák is vannak mindegyikhez.

Előzmény: Gavriel (8204)
Törölt nick Creative Commons License 2008.11.06 0 0 8203
Pl. Jelöld ki a problémás tartományt, majd ctrl+1 és ott válaszd ki a "szám" formátumot
Előzmény: repuleskepekben (8202)
repuleskepekben Creative Commons License 2008.11.06 0 0 8202
És még a következő segítségre lenne szükségem.Van egy honlap, ahol kijelölök egy részt, ami betüket és számokat tartalmaz.Ezt másolom, és egy Excel táblázatba beillesztem.Csak az a baj, hogy egyes számértékekekt Pl: 4,15 értéket a beillesztés után 15.Ápr-ként jeleniti meg.Hogyan tudnám azt elérni, hogy ne dátumként írja át, hanem ahogyan beillesztettem, azaz 4,15-ként?
mishabv Creative Commons License 2008.11.06 0 0 8201
Köszönöm! Sikerült!
Előzmény: Jozsef (8200)
Jozsef Creative Commons License 2008.11.06 0 0 8200
Beállsz a A2 cellába és Ablak/Ablaktábla rögzítése menüpont
Előzmény: mishabv (8199)
mishabv Creative Commons License 2008.11.06 0 0 8199
Sziasztok!

Azt szeretném kérdezni, hogyan tudok olyat csinálni, hogy pl. az első sor (A) az folyamatosan látszodjon ha lefele görgetek listán? Abban a sorban irtam be az oszlopok megnevezését és szeretném látni, ha pl lemegyek a 60. sorba.

Választ előre is köszönöm!

üdv

misha
Jozsef Creative Commons License 2008.11.06 0 0 8198
Akkor a Solver lehet a megoldás, annak meg lehet adni, hogy egészértékű lehessen csak a változód. Kicsit hosszú lenne itt leírni a működését, először olvass utána, és ha van kérdésed, szívesen segítek.
Üdv
József
Előzmény: repuleskepekben (8197)
repuleskepekben Creative Commons License 2008.11.06 0 0 8197

Szia!

 

Próbáltam a célértékkeresőt, de sajnos az nem talált olyat, de ha kézzel görgettem a léptetőt, akkor talált.A célértékkereső tizedes végű számokat is behelyettesít, igy nem jó nekem ez a megoldás.Más ötleted nincs?

Előzmény: Törölt nick (8186)
Delila_1 Creative Commons License 2008.11.06 0 0 8196

Így is a kívánt eredményt hozza:

 

For sor = 1 To 15
    Cells(sor, 2).Formula = "=ROUNDUP(A" & sor & ",0)"
Next

Delila_1 Creative Commons License 2008.11.06 0 0 8195
Most nem tudom, mire írtad a "bocsánat"-ot. Arra-e, hogy másnak címezted, vagy arra, hogy valójában jól működik a ROUNDUP, ha a második argumentum=0.
Előzmény: magyarpityu (8194)
magyarpityu Creative Commons License 2008.11.06 0 0 8194
Hoppá, bocsánat! :))
Előzmény: Delila_1 (8192)
magyarpityu Creative Commons License 2008.11.06 0 0 8193

Ez így biztosan nem jó, mert az egész számokhoz hozzáad 1-et (12,1 -> 13 ok, 12,9 -> 13 ok, 12 -> 13 nem ok). Inkább ezt próbáljátok ki: Application.WorksheetFunction.RoundUp(Arg1, Arg2)

Előzmény: Törölt nick (8191)
Delila_1 Creative Commons License 2008.11.06 0 0 8192
ROUNDUP
Előzmény: Gavriel (8188)
Törölt nick Creative Commons License 2008.11.05 0 0 8191
Trunc(x) + 1
Előzmény: Gavriel (8190)
Törölt nick Creative Commons License 2008.11.04 0 0 8187
"Azt gondoltam, hogy erre lesz egy tulajdonság, aztán kész - amit ki lehet fejezni 1-2 rövid sorral."

Lehet, hogy van is, csak én nem ismerem...

"A kód ebben elérhető"

Köszi, megnézem majd.
Előzmény: Törölt nick (8182)
Törölt nick Creative Commons License 2008.11.04 0 0 8186
Szerintem próbáld ki a célértékkeresőt. (Eszközök->Célértékkeresés...)
A célcella legyen a G1, a módosuló cella a H1, a célérték pedig 1.
Előzmény: repuleskepekben (8185)
repuleskepekben Creative Commons License 2008.11.04 0 0 8185

Sziasztok!

 

Lenne egy kérésem, nem tudom, hogy ez az excelben megoldható-e.

 

A következő:

 

 

Van benne egy léptető, amely a H1 cella értékeét változtatja.

Ez a H1 cella értéke K és az L oszlopokkal van összefüggésben.Azaz jelenleg a H1 cella értéke 234, ami a K oszlopban 234-nél a vele azonos sorban lévő érték 67.

 

A K oszlop állandó értékek, de az L oszlop változó értékek vannak,amelyek egy másik cella értéke alapján más lehet, bár ezt most nem tüntettem fel itt.

 

A 234 érték ugye jelenleg a 67-et hozza, amit behelyettesít a D oszlopba.

 

Az A , B , C, D oszlopok értékei soronként össze vannak adva,ami az E oszlopban jelenik meg.

 

Az F oszlopban meg HA függvény található, amely a G4-es cellával van összefüggésben, aminek az értéke szintén változó érték ,ami változtatható, de itt most 1160.Ennek hatására abban a sorban megjelent egy 1-es, ahol a G4 cella értéke megyegyezik.Ez az 1 es szám van ott megjelenitve a G1 cellában.

 

A művelet a következő:A léptetőt 1-es értékről indulva léptetjük, ami D , és az E oszlopban folyamatosan változik.De a G4 es oszlopba beírunk egy tetszőleges értéket, ami itt 1160, és a léptetőt addig léptetük, mig nem talál olyan sort, ami megfelel a G4 cella kritériumának, és ha megfelel akkor a HA függvény segítségével megjelenik az adott sorban az 1 szám, ami összesítve megjelenik a G1 cellában.

 

A léptetőt meg addig léptetjük, amig itt a példán 234 értékre nem ér,mert itt adta ki előszőr azt a sort, ahol egyezés van.

 

Ez volt a leírása a dolognak, és most jönne a kérdésem.

 

Lehet-e olyat csinálni, hogy H1 cella értékét 1-től kezdve az excel automatikusan 1-el növekedve addig helyettesítse be magának, mig el nem ér addig, ahol egyezés található, azaz itt a 234 értékig.Mert a léptetőt nem akarom egyfolytában nyomni, és figyelni, hanem helyettesítsen be magától, és ott ahol megfelelnek a feltételek, ott álljon meg.

 

Remélem nem ilyet tud az excel, és nem csak álmodozom...

 

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

 

 

Törölt nick Creative Commons License 2008.11.04 0 0 8184
Egyébként elnézést kell kérjek, mert ezt pusztán kíváncsiságból kérdeztem - és nem kell használnom (egyelőre) sehol.
Előzmény: Törölt nick (8178)
Törölt nick Creative Commons License 2008.11.04 0 0 8183
Ezt sajnos nem tudtam megnézni, nem jön be az oldal.
De nézd meg ezt:
www.tar.hu/exalto/excelpackman.rar

Jimmy:
A kód ebben elérhető
Előzmény: Jozsef (8180)
Törölt nick Creative Commons License 2008.11.04 0 0 8182
De durva. Azt gondoltam, hogy erre lesz egy tulajdonság, aztán kész - amit ki lehet fejezni 1-2 rövid sorral.
Erre ( ha jól értem a kódot) az oldaltörés szélétől kell kiszámolgatni a cella helyét.
Előzmény: Törölt nick (8178)
Törölt nick Creative Commons License 2008.11.04 0 0 8181
Kár, hogy nem színes :)
Előzmény: Jozsef (8180)
Jozsef Creative Commons License 2008.11.04 0 0 8180
Törölt nick Creative Commons License 2008.11.04 0 0 8179
Ja még annyit, hogy a bemenő paraméter Range típusú, tehát meghívható úgy is, hogy pl.
MsgBox Oldalszám(Workbooks("akármi.xls").Sheets("Munka1"):Range("AB1234"))
Előzmény: Törölt nick (8178)
Törölt nick Creative Commons License 2008.11.04 0 0 8178
Aprócseprő válasz, és nem tökéletes.

Function Oldalszám(Cella As Range)
Dim SavedBckp As Boolean, EmptyCell As Boolean, WS As Worksheet
Dim HPB As HPageBreak, VPB As VPageBreak
Dim HCount As Long, VCount As Long, i As Long

Set WS = Cella.Parent
SavedBckp = WS.Parent.Saved

If Cella = vbNullString Then EmptyCell = True
If EmptyCell Then Cella = 1
For i = 0 To WS.HPageBreaks.Count - 1
If Cella.Row < WS.HPageBreaks(i + 1).Location.Row Then Exit For
Next
HCount = i

For i = 0 To WS.VPageBreaks.Count - 1
If Cella.Column < WS.VPageBreaks(i + 1).Location.Column Then Exit For
Next
VCount = i

If WS.PageSetup.Order = xlDownThenOver Then
Oldalszám = VCount * (WS.HPageBreaks.Count + 1) + HCount + 1
Else
Oldalszám = HCount * (WS.VPageBreaks.Count + 1) + VCount + 1
End If

If EmptyCell Then Cella = vbNullString
WS.Parent.Saved = SavedBckp

End Function


Sub teszt()
MsgBox Oldalszám(Range("W67"))
End Sub


Az Excelben van egy "beépített" hiba az oldaltörések kezelésében. Bizonyos esetekben előfordulhat, hogy a fenti program kiakad. Más esetekben pedig hibás eredménnyel tér vissza. Ez utóbbi akkor fordul elő, amikor a táblázat utolsó értéket tartalmazó sora éppen egy vízszintes törésvonal fölött van, illetve az utolsó értéket tartalmazó oszlop éppen függőleges egy törésvonal előtt.
Biztosan ezt is le lehet kérdezni, de arra most nem fussa.
Egyéb esetekben szerintem jól működik.
Előzmény: Törölt nick (8177)
Törölt nick Creative Commons License 2008.11.04 0 0 8177
Aprócseprő kérdés, de próbálkozásaim, keresgéléseim ellenére sem sikerült:

Hogy lehetne lekérdezni azt, hogy egy cella melyik oldalszámra esik
(oldaltörés szerinti oldalszám)
Törölt nick Creative Commons License 2008.11.04 0 0 8176
A groupweb előtt a backslasht duplán kell kitenni, az index ezt lenyelte...
Előzmény: Törölt nick (8175)
Törölt nick Creative Commons License 2008.11.04 0 0 8175

Hátha valakinek még segítség lesz, több különböző probálkozás eredményre vezetett:

 

Sub Lista()

 

  ListaAdat = 0

  tmp = "\groupweb\mappa1\mappa11\mappa111\"

 

  FN = Dir(tmp & "*.xls", vbNormal)

 

  Do While FN <> ""

    MsgBox FN

    FN = Dir()

    ListaAdat = ListaAdat + 1

  Loop

 

End Sub

Előzmény: Törölt nick (8172)
Törölt nick Creative Commons License 2008.11.03 0 0 8174
Köszönöm, próbálkozom vele.
Előzmény: Törölt nick (8173)
Törölt nick Creative Commons License 2008.11.03 0 0 8173
Én még ilyet nem próbáltam, de a neten ezt találtam.
Előzmény: Törölt nick (8172)
Törölt nick Creative Commons License 2008.11.03 0 0 8172
Sziasztok!

 

A következő problémában szeretnék segítséget kérni:

 

Adott egy Microsoft Office SharePoint Portal Server 2003 tárhely, ahonnan hiba nélkül tudok egyenként excel fájlokat megnyitni az alábbi utasítással:

Workbooks.Open Filename:= "http://groupweb/mappa1/mappa11/mappa111/teszt1.xls"

 

Ami probléma, az a tárhelyen található *.xls fájlok listázása, az alábbi eljárás Run-time error 52 (Bad file name or number) hibaüzenettel akad ki.   

 

Tudna valaki segíteni?

 

Sub Lista()

 

  ListaAdat = 0

  tmp = "http://groupweb/mappa1/mappa11/mappa111/"

 

  FN = Dir(tmp & "*.xls", vbNormal)

 

  Do While FN <> ""

    MsgBox FN

    FN = Dir()

    ListaAdat = ListaAdat + 1

  Loop

 

End Sub

Törölt nick Creative Commons License 2008.11.02 0 0 8170
A Worksheet_SelectionChange eseménykezelő, mint a neve is mutatja, akkor aktiválódik, amikor a munkalapon megváltozik a kijelölés. Tehát pl. másik cellába kattintasz.

A Worksheet_Change eseménykezelő ezzel szemben akkor aktiválódik, amikor a munkalapon bármelyik cella tartalma változik meg.

Mindkettőnek van egy Target nevű "paramétere", amely egy Range típusú objektum, és az első esetben az újonnan kijelölt, a második esetben az éppen megváltozott tartományt tartalmazza. Ha pl. az A1 cellába írsz 1-et, akkor a Worksheet_Change eseménykezelő esetében a Target az A1 cella lesz, és a pl. a következő értékek olvashatók ki belőle
Target.Address = $A$1
Target.Value = 1
Target.Interior.ColorIndex = ... (az aktuális színkód)
stb.

Ha azt akarod, hogy cellától függjön, hogy az eseménykezelő lefut-e, akkor így lehet eljárni:
If Target = Range("A1") Then
(lefut)
Else
Exit sub
End If

Előzmény: Gavriel (8169)
Törölt nick Creative Commons License 2008.11.02 0 0 8168
Miért nem a Worksheet_Change eseményt használod?
Előzmény: Gavriel (8167)
Sánta Kutya (SK) Creative Commons License 2008.11.02 0 0 8166
Vszleg számformátumban adta meg az eredményt, tehát a célcella formátumát kellene időre állítani.
Előzmény: Gavriel (8165)
Jozsef Creative Commons License 2008.10.29 0 0 8164
Nem értem hogyan, mert ellentmond a józan észnek, hiszen a képlet csak az adatbázis második sorára hivatkozik, nincs definiált mezőnév de működik. >:o)
Hát, ez az Excel... Különben hogyan is lenne több, mint nyolcezer hozzászólás ebben a topikban :))
Előzmény: E.Istvan (8163)
E.Istvan Creative Commons License 2008.10.28 0 0 8163

Hálás köszönetem. A 3613-as hozzászólásod.

 

Tehát alapesetben a feltételnek úgy kellene kinézni, hogy az első sor tartalmazza a mezőnevet ami azonos az adatbázis első sorában lévő névvel a második sortól pedig kezdődnének a feltételek.

Azonban ha képletet akarunk megfogalmazni, akkor az első sort (D25) hagyjuk üresen a második sorba (D26) pedig írjunk be egy képletet, melynek igaz vagy hamis lehet az eredménye. Jelen esetben a problémás oszlopom az adatbázisban az E oszlop. Tehát a feltételbe ezt kell beírnom: =Adatbázis!E2<>"987" és már működik is. Nem értem hogyan, mert ellentmond a józan észnek, hiszen a képlet csak az adatbázis második sorára hivatkozik, nincs definiált mezőnév de működik. >:o) Így a =AB.SZUM(alapadatok;"Érték";Feltételek!D25:D26) eredménye az összes rekord kivéve a 987-esek.

 

Előzmény: Jozsef (8162)
Jozsef Creative Commons License 2008.10.28 0 0 8162
Az általad említett logikai és információs függvényeket csak magában az adatbázisban használhatnám, de oda nem lehet annyi oszlopot és annyi logikai feltételt beírni, amennyi
Valamelyik régebbi hozzászólásomban leírtam, hogyan lehet függvényeket használni a feltételtáblában a szűrőfeltétetel megadására, keress rá, nagy valószínűséggel megoldja a problémádat.
Előzmény: E.Istvan (8159)
Sánta Kutya (SK) Creative Commons License 2008.10.28 0 0 8161
Szerintem passz. Inkább átadnám valakinek a telefont.
Előzmény: E.Istvan (8159)
Delila_1 Creative Commons License 2008.10.28 0 0 8160

1. Nyiss egy új füzetet.

2. Formázd meg kedved szerint (pl. a cellák szöveg formátumúak, kedvenc betűtípusod, függőlegesen középre, szegélyek, stb.).

3. Mentés másként,  a fájlnév Munkafüzet, a fájltípus xlt legyen, a helye pedig

C:\Document and Settings\Felhasználó\Application Data\Microsoft\Excel\XLSTART

 

Az Excel újraindítása után minden újonnan megnyitott füzeted ezt a formát veszi fel.

 

Előzmény: egoman (8147)
E.Istvan Creative Commons License 2008.10.28 0 0 8159

Mint írtam adatbázis függvény szűrési feltételeivel van probléma.

Az adatbázis egy 50000 sorból és 21 oszlopból áll. Ebből kell adatbázis függvényekkel egy kész jelentést készíteni. Az egyes adatok bonyolult szűrési feltételekkel állnak elő, melynek egy csekély része ez a korábban említett kizárás.

 

Az általad említett logikai és információs függvényeket csak magában az adatbázisban használhatnám, de oda nem lehet annyi oszlopot és annyi logikai feltételt beírni, amennyi feltételt meg kellene fogalmaznom. (Legalábbis úgy értettem, hogy oda írjam be ezeket a függvényeket és arra az új oszlopra hivatkozzak a feltételnél.)

 

Ez a problémás oszlop 3 karakterből álló kombináció, melyben lehet szöveges és számos karakter is. A 987 csak egy példa volt.

 

Mellesleg már kipróbáltam mindegyik említett függvényt és mindegyik azt az információt adja vissza, hogy a cellában szöveg található, hiszen a cellában található érték egy szövegfüggvény eredménye.

 

Tehát problémás képlet a

=AB.SZUM(alapadatok;"Érték";Feltételek!D25:D26)

melyben a D25:D26 a feltétel lenne. Ez a feltétel majd több oszlopból és sorból állna, de most maradjunk csak ennél az egy problémás feltételnél. A D25 a mezőnév, a D26 a feltétel, ami a példa kedvéért <>987 lenne, de ez nem működik, mert nem zárja ki a 987-es rekordokat. Hogy tudnám megadni, hogy a <>987 feltételben lévő karakterek, (jelen esetben a 987) szövegként értelmezendők és nem számként. (Az idézőjelekre sem működik <>"987"

 

Lehet, hogy a végén nem marad más hátra, mint hogy magában az adatbázisban kell megoldanom, hogy ha az adott cellában csak szám karakterek szerepelnek, akkor az legyen számmá alakítva az ÉRTÉK függvénnyel, ha viszont van benne betű is (5P9) akkor maradjon szöveg.

Előzmény: Sánta Kutya (SK) (8157)
Sánta Kutya (SK) Creative Commons License 2008.10.28 0 0 8158
Bocsi, ezek nem a logikai, hanem az információs függvények.
Előzmény: Sánta Kutya (SK) (8157)
Sánta Kutya (SK) Creative Commons License 2008.10.28 0 0 8157
Most akkor kell a 987 vagy nem kell? Ha kell, akkor valami olyannal próbálkoznék, hogy ÉS(B1=987;SZÁM(B1))
A lényeg, hogy a logikai függvények segíthetnek, nézd meg ezeknek a súgóját:
SZÁM
NEM.SZÖVEG
TÍPUS
Előzmény: E.Istvan (8156)
E.Istvan Creative Commons License 2008.10.28 0 0 8156

Üdv mindenkinek!

 

Átolvasgattam a forumokat és itt találtam sok okos embert, akik talán tudnak segíteni nekem is. :)

 

Van egy adatbázisom. Az egyik oszlopban szövegfüggvényekkel előállított adatok találhatóak. Például AAA és 987. Mivel ezek szövegfüggvényekkel vannak előállítva, ezért a 987-et nem számként, hanem szövegként értelmezi az excel (balra van rendezve). Ennek így is kellene maradnia.

 

Most adatbázis függvényyel szeretnék számolni. Ha a feltételt tartalmazó cellába 987-et írok összeszámolja a 987-es szöveget tartalmazó rekordokat annak ellenére, hogy a feltétel cellában lévő 987-es érték szám és nem szöveg. (cellaformátum általános és a beírt értéket jobbra rendezi az excel) Most szeretném kizárni a 987-es rekordokat. Ha a <>987 értéket írom a feltételbe, akkor eredménynek az összes rekordot kapom. valószínűleg azért mert az excel úgy "találja", hogy 987-es számot nem tartalmaz az adatbázis, ami igaz is mert csak 987-es szöveget tartalmaz. A <>"987" sem működik. Tud valaki valamilyen megoldást? Úgy rémlik, hogy kb 6 évvel ezelött ezt már sikerült megoldanom, igaz akkor még 95-ös excelben, most meg 2003-as van. Lebutult az excel?

Természetesen megoldás lehetne hogy két képlettel számolom ki a kívánt értéket. Az összes rekordból kivonom a 987-es rekordok értékeit, de más okok miatt szükségem van rá hogy a kizárás <> feltételt használjam.

Sánta Kutya (SK) Creative Commons License 2008.10.28 0 0 8155
A listák rendezgetése szerintem teljesen korrekt táblázatkezelési feladat. Nekem is az Excel jut eszembe először az ilyenről.
Előzmény: egoman (8154)
egoman Creative Commons License 2008.10.28 0 0 8154

Köszönöm a tanácsokat! Tényleg valami olyasmit vártam, hogy itt tegyél egy pipát, vagy onnan vegyed ki, és kész. Azért lett jó ötlet!

 

Igazából -mint nagyon sokan- nem arra használom az exelt, amire ki van találva. Különböző listákat irogatok bele, ezeket rendezgetem különböző szempontok alapján. Meg számológépnek is használom.  :) 

Törölt nick Creative Commons License 2008.10.28 0 0 8153
"Én legalábbis nem találtam a 2000-esben,"

Én sem 2003-ban, de még a neten sem. És ha Micro$oft sem tud/akar jobbat javasolni, akkor nincs más hátra, mint betenni a jelenséget az "ez van, ezt kell szeretni" feliratú dobozba.
Előzmény: Sánta Kutya (SK) (8151)
Törölt nick Creative Commons License 2008.10.28 0 0 8152
"Pedig a csúzlitól is feldobta a bakancsot. :)"

Lehet.
Mindenesetre kíváncsi vagyok, hány új film után jutunk el odáig, hogy automatizálni kéne...
;)
Előzmény: Delila_1 (8146)
Sánta Kutya (SK) Creative Commons License 2008.10.28 0 0 8151
Ez is jó, de ez sem állandó megoldás. Ha valaki nagyon sok ilyet ír be, és sose akarja átváltoztatni, akkor joggal idegeskedik. Arra gondolok, hogy a Worben például az automatikus formázás beállításainál ki lehet kapcsolni, hogy magától felsorolásra váltson, ha úggy kezdek egy bekezdést, hogy '1.', meg még egy csomó hasonlót. Az Excelben viszont nincs olyan beállítás, hogy ne kezdjen semmilyen önhatalmú automatikus formázásba. Én legalábbis nem találtam a 2000-esben, pedig szerintem a kérdező ezt keresi. Talán még lehetne egy rögzített makrót csinálni az összes formázás visszaállítására, és annak kitenni egy ikont az eszköztárra, és akkor alkalmanként egy kattintás, de igazából még az is sok.
Előzmény: Törölt nick (8150)
Törölt nick Creative Commons License 2008.10.28 0 0 8150
Micro$oft says:
Method 2
1. Select a range of cells, and then click Cells on the Format menu.
2. Click the Number tab.
3. Click Text, and then click OK.
This method allows you to type data in the selected cells as text. You must perform these steps before you type the numbers in the cells.

Előzmény: Sánta Kutya (SK) (8149)
Sánta Kutya (SK) Creative Commons License 2008.10.28 0 0 8149
Ez nekem is eszembe jutott, de szerintem a kolléga egy állandó megoldást keres, amivel nem kell egyenként vacakolni.
Előzmény: Jozsef (8148)
Jozsef Creative Commons License 2008.10.28 0 0 8148
Ha azt írom be, hogy 10.15, akkor átírja 15.okt -ra.

Írj elé egy aposztróf jelet: '10.15
Előzmény: egoman (8147)
egoman Creative Commons License 2008.10.28 0 0 8147

Sziasztok!

 

Valószínűleg volt már hasonló kérdés, de már akkora ez a topic...

 

Excel folyamatosan irogatja át azt, amit én gépelek. Azt akarom, hogy ne tegye. Soha, semilyen körülmények közt. Azért írom bele úgy, ahogy, mert azt akarom ott látni. Pont azt.

 

Ha azt írom be, hogy 10.15, akkor átírja 15.okt -ra.

 

Dühít. Ha dátumot szeretnék csinálni, majd szólok neki. (Arra sohasem volt még szükségem.) A cella formátumot generalként szeretném megtartani... Folyamatosan kell számokkal, szövegekkel vegyesen babrálnom.

 

Ez annyira felhasználó barát, hogy éveket vesz el az életemből. Hosszú órákat töltöttem már el, az értelemetlen sugó olvasgatásával, végig böngésztem az Tools/optionst, de nem lelek rá a megoldásra. Pedig valami pofon egyszerűnek kell lenie.

 

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

Delila_1 Creative Commons License 2008.10.28 0 0 8146
Pedig a csúzlitól is feldobta a bakancsot. :)
Előzmény: Törölt nick (8145)
Törölt nick Creative Commons License 2008.10.28 0 0 8145
Látod? Ágyúval lőttünk verébre... :)
Előzmény: Delila_1 (8140)
szalkay88 Creative Commons License 2008.10.27 0 0 8144
Aaa nagyon fasza vagy, pöpec nagyon:D Működik ez az irányított beillsztés, eddig nem is hallottam ilyenről. Köszi!
Törölt nick Creative Commons License 2008.10.27 0 0 8143
Színezd be az első sort amilyenre akarod, a következőt hagyd fehéren.
Jelöld ki ezt a két sort, majd Ctrl + C
Jelöld ki azt a területet, ahol alkalmazni akarod a formátumot.

(A sorokat úgy jelöld ki SZERINTEM úgy, hogy a sorszámra mutatsz az egérrel, a kurzor meg is változik.)

Majd Menü - Szerkesztés - Irányított beillesztés -> itt jelöld be a csak formátumot.

Ez excel 2003 de szrtem megvan 2007-ben is.

Még egyszerűbb:

Használd az "ecsetet" az eszköztáron.
Előzmény: szalkay88 (8142)
szalkay88 Creative Commons License 2008.10.27 0 0 8142
Hmm, ezek nagyon bonyolultnak tűnnek. Azt hittem könnyű megcsinálni, mert láttam ilyet sokszor, ezt a felváltott színezést. Mindenesetre köszönöm a részletes választ.

Beszúrok egy képet, h mi is ez, egy filmlista, csak látványosabbá akartam tenni, meg áttkeinthetőbb is lenne úgy.

Táblázat

És nem az egészet akarnám, hanem csak a 2. sortól lefele, a D oszlop szélességéig.
Törölt nick Creative Commons License 2008.10.27 0 0 8141
Igen, de a Te megoldásod másképp működik, és lehet, hogy úgy lesz jó a kérdezőnek.
Előzmény: Delila_1 (8140)
Delila_1 Creative Commons License 2008.10.27 0 0 8140
Megelőztél...
Előzmény: Törölt nick (8137)
Delila_1 Creative Commons License 2008.10.27 0 0 8139
Sub sorok()
    For sor = 1 To 999 Step 2
        Rows(sor & ":" & sor).Select
        Selection.Interior.ColorIndex = 2
        Rows(sor + 1 & ":" & sor + 1).Select
        Selection.Interior.ColorIndex = 34
    Next
End Sub
Előzmény: szalkay88 (8136)
Törölt nick Creative Commons License 2008.10.27 0 0 8138
Ja, még annyit, hogy ez Excel 2003-ban van, de sztem 2007-ben is ugyanígy működik.
Előzmény: Törölt nick (8137)
Törölt nick Creative Commons License 2008.10.27 0 0 8137
Kétféle megoldás jut eszembe. Az egyik a feltételes formázás használata, a másik pedig makró.
Az elsőt leírom, a másikat majd valaki más elmondja, ha szükséges lesz.
1. Válaszd ki az A1 cellát
2. Menü: Formátum -> Feltételes formázás
3. 1. feltétel: A képlet értéke, =MARADÉK(SOR(A1);2)=0 (lásd ábra)
4. Megadod a kívánt formátumot, aztán OK gomb
4. A1 cella másolás (Ctrl+c)
5. Kijelölöd azt a részt, amit formázni akarsz (bizonyos sorok, oszlopok, vagy akár az egész táblázat).
6. Menü: Szerkesztés -> Irányított beillesztés -> Formátumot
7. Ha az A1 cella nem része annak a tartománynak, amit kékre akarsz csíkozni, akkor az A1 cellából törlöd a feltételes formázást.

Meg fogod látni, hogy ez a formázás sajátosan reagál arra, ha beszúrsz vagy törölsz cellákat, sorokat, oszlopokat. Kérdés, hogy mi a célod pontosan.

Előzmény: szalkay88 (8136)
szalkay88 Creative Commons License 2008.10.27 0 0 8136
Hali,

lehet ez nagyon láma kérdés de nem bánnám ha megválaszolnátok:

hogy tudom azt megcsinálni, hogy egy táblázatban a sorok felváltott színűek legyenek, tehát pl az 1. sor fehér, 2. világoskék, 3. megint fehér, 4. világoskék? Mert a cellaformázás opcióban ezt sehogy sem lehet. 2007-es Excelem van.
Törölt nick Creative Commons License 2008.10.26 0 0 8135
Nem lehetsz annyira láma, ha magadtól is tudtad, hogyan kell azt a kódot használni ;)
Előzmény: Törölt nick (8134)
Törölt nick Creative Commons License 2008.10.26 0 0 8134
Köszönöm mester ! Tökéletes ..
Törölt nick Creative Commons License 2008.10.25 0 0 8133
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Target.Address = "$B$2" Then
ActiveWindow.Panes(2).Activate
Range("AA:AA").Select
End If
End Sub
Előzmény: Törölt nick (8132)
Törölt nick Creative Commons License 2008.10.25 0 0 8132

Üdv mindenkinek !

 

Kissé láma vagyok, de nagyon szeretnék egy olyan scriptet, hogy ha egy megnevezett cellába kattintok a függőlegesen felosztott munkalap bal oldalán, akkor a jobb oldal egy adott oszlophoz ugorjon.

 

Ennyit tudok (pl B2 cellába kattintás eseményekor):

If ActiveCell.Address = "$B$2" Then  ..... itt jönne hogy ugrik a jobb felosztás, pl az AA oszlophoz

 

Előre is köszönök minden javaslatot !

Sánta Kutya (SK) Creative Commons License 2008.10.20 0 0 8130
Én csak válaszolni próbáltam a kérdésedre, de ha neked ez csak rágás, akkor legközelebb nem teszem.
Előzmény: Gavriel (8129)
fraulaci Creative Commons License 2008.10.20 0 0 8128
Nagyon köszönöm a kimerítő válaszokat.

És köszönöm a fáradozásodat.

Ki fogom próbálni...

üdv.

Laci


Előzmény: Törölt nick (8111)
Sánta Kutya (SK) Creative Commons License 2008.10.20 0 0 8127
Mármint minek a többszöröse? A hété biztosan nem, mert akkor nem kellene maradékot nézni. De ha folyamatosan vannak számozva a napok, akkor ugyanaz a hetes maradék nyilván mindig a hétnek ugyanazt a napját jelenti, örökkön-örökké.
Előzmény: Gavriel (8124)
Törölt nick Creative Commons License 2008.10.20 0 0 8125
Sub proba()
MsgBox Weekday(DateSerial(2008, 12, 0), vbMonday)
MsgBox Day(DateSerial(2008, 12, 0))
End Sub

A DateSerial hasznos tulajdonsága, hogy nullát és negatív számokat is elfogad paraméternek.
Pl.
a DateSerial(2008, 12, 0) kifejezés 2008. november 30-at jelent
a DateSerial(2008, 12, -1) kifejezés 2008. november 29-et jelent
a DateSerial(2008, 0, 0) kifejezés 2007. november 30-at jelent
stb.

Ha tehát bármely hónap utolsó napja kell, nem kell tudnod, hogy hány napos a hónap, hanem így kell paraméterezni:
év, hónap+1, 0
Előzmény: Gavriel (8112)
Sánta Kutya (SK) Creative Commons License 2008.10.20 0 0 8123
Sőt, ha jól sejtem, több, mint 400.
Előzmény: Sánta Kutya (SK) (8122)
Sánta Kutya (SK) Creative Commons License 2008.10.20 0 0 8122
"Hogyan lehet meghatározni tetszőleges hónap milyen hosszú."
Legegyszerűbb fejben, számítógép nélkül. :-DDDD


Nem pontosan értem a függvényekkel szembeni ellenérzéseidet, és hogy melyiket akarod elkerülni és miért, de az is lehet megldás, ha a keresett dátumot számmá alakítod, és egyszerűen megnézed a maradékát héttel osztva.

(Azt meg végképp nem értem, hogy az Excelbe miért táplálták ezt az idióta saját belső dátumábrázolást, amikor a folyamatos napszámozásra több, mint háromszáz éve van ismert és elfogadott eszköz, a Julián-dátum.)
Előzmény: Gavriel (8112)
Delila_1 Creative Commons License 2008.10.20 0 0 8120

A függvények angol neve:

hét.napja -> weekday

szöveg -> text

eomonth -> eomonth :)

 

Ezeket már alkalmazhatod makróban.

Előzmény: Gavriel (8117)
Törölt nick Creative Commons License 2008.10.20 0 0 8119
hopp ezt elnéztem, nem is ezt kell vele csinálni... hülye vagyok.
elnézést.
Előzmény: Törölt nick (8118)
Törölt nick Creative Commons License 2008.10.20 0 0 8118
sziasztok, remélem tud valaki választ a problémámra
a gond a következő: leíró statisztikát (összesítő statisztika) kellene készítenem egy táblázatból, ki is jelölöm hozzá a kellő mezőket, leokézom, és azt írja ki, hogy "a bemeneti tartomány nem-numerikus adatokat tartalmaz"
biztos hülye vagyok hozzá de nem tudom mit tegyek. a nem-numerikus adatok is kellenek bele, asszem, órán legalábbis sikerült.
köszönöm, előre is
Jozsef Creative Commons License 2008.10.20 0 0 8116
Még egyszer:
=HÉT.NAPJA(DÁTUM(ÉV(A1);HÓNAP(A1);1);2)
Előzmény: Jozsef (8115)
Jozsef Creative Commons License 2008.10.20 0 0 8115
Bocs, az elsőt félreértettem, az enyém azt adja meg, hogy a dátum egy év hányadik hetére esett. A HÉT.NAPJA(A1;2) a jó megoldás.
Üdv
József
Előzmény: Jozsef (8114)
Jozsef Creative Commons License 2008.10.20 0 0 8114
Szia!

- Hogyan lehet meghatározni tetszőleges hónapjának első napja a hét melyik napjára esik.

Bekapcsolod a Eszközöd/Bővítménykezelőből az Analysis ToolPak-t és akkor lesz egy WeekNum nevezetű függvényed, ami ezt adja. Ha ez nem elég, előkeresek egy méteres képletet, ami enélkül is kiszámítja.
- Hogyan lehet meghatározni tetszőleges hónap milyen hosszú.
Ha A1 van egy dátum, akkor az e hónap napjainak számát a következő képlet adja meg (az eredményt számformátumra meg kell formázni)
=DÁTUM(ÉV(A1);HÓNAP(A1)+1;1)-DÁTUM(ÉV(A1);HÓNAP(A1);1)
Üdv
József
Előzmény: Gavriel (8112)
Delila_1 Creative Commons License 2008.10.20 0 0 8113

Az A1 tartalma a dátum.

 

Szövegesen írja ki:

=SZÖVEG(HÉT.NAPJA(A1;1);"nnnn")

 

Számmal írja ki:

=HÉT.NAPJA(A1;2)

 

Dátum formát adva a cellának teljes dátumot ír, a hónap utolsó napjával.

=EOMONTH(A1;0)

Előzmény: Gavriel (8112)
Törölt nick Creative Commons License 2008.10.20 0 0 8111
A feltételes formázásról azt tapasztaltam, hogy az általa megszabott formátum és a cella normál formátuma egymástól független, és a feltételes formázás prioritása nagyobb. Ha pl. a cellát pirosra színezed, de a feltételes formázás alapján sárga kell legyen, akkor sárgának fogod látni. És amíg ez a sárga él, addig bármilyen színűre beállíthatod, nem fogsz változást látni.

Amikor először feltetted ezt a kérdést, akkor kaptál egy makrót Delilától, ami kiszínezte a feltételnek eleget tévő cellákat. Amikor ehelyett a feltételes formázást javasoltuk, nem tudtuk, hogy végül is hogyan akarod használni. Azt mondanám - az újabb adatok ismeretében -, hogy egyszerűbb makróval formázni a cellaszíneket, egyszer, amikor már minden egyéb szempontból kész és végleges a táblázat.

Ennek ellenére - csak mert kihívás volt - csináltam egy makrót, ami a feltételes formázást alakítja át fix formázássá. A kérdéses munkalapon kell lefuttatni, és reményeim szerint beszínezi azokat a cellákat, amelyek a feltételes formázás alapján színt kaptak volna.
A kódból látható, hogy az 1-e típusú formátum esetén csak 3 relációt (>, =, <) vizsgáltam meg, de a többi ezek alapján pótolható. Szerintem nem lesz rá szükség.

Sub CopyFormat()
Dim cel As Range, WS As Worksheet
Set WS = ActiveSheet
For Each cel In WS.Cells.SpecialCells(xlCellTypeAllFormatConditions).Cells
cel.Select
With cel.FormatConditions(1)
If .Type = 1 Then
Select Case .Operator
Case xlGreater
If cel.Value > Evaluate(.Formula1) Then cel.Interior.ColorIndex = .Interior.ColorIndex
Case xlEqual
If cel.Value = Evaluate(.Formula1) Then cel.Interior.ColorIndex = .Interior.ColorIndex
Case xlLess
If cel.Value < .Formula1 Then cel.Interior.ColorIndex = .Interior.ColorIndex
End Select
ElseIf .Type = 2 Then
If Evaluate(.Formula1) = True Then cel.Interior.ColorIndex = .Interior.ColorIndex
End If
.Delete
End With
Next
End Sub

Javaslom, készíts biztonsági másolatot, mielőtt ezt kipróbálod.

Megjegyzés:
Általában ellene vagyok a cellák szelektálásának, de ez valahogy nem ment másképp. Ha nem választottam ki a ciklusban az aktuális cellát, akkor a
cel.FormatConditions(1).Formula1
kifejezés rossz képletet adott vissza. Nem tudom, miért van ez.
Előzmény: fraulaci (8109)
toccata Creative Commons License 2008.10.19 0 0 8110
Akiknek átadod a táblázatot, menniyre ismerik az excel "titkait"?
A munkalap jelszavas védelme nem segít?
Átadás előtt a D oszlopot jelöld be védetté és rejtetté is, majd rejtsd el és kapcsold be a lap védelmi valami frappáns jelszóval.
Utána átadhatod.
Előzmény: fraulaci (8102)
fraulaci Creative Commons License 2008.10.19 0 0 8109
Köszi a tanácsokat!

A színezés egy kiemelés, figyelem felkeltés.

A számok pedig a konkurencia miatt titkosak.

Ezt a listát kb. 300 partnernek juttatjuk el, de a tényleges db. számok nem kerülhetnek ki.

Szóval ha megvan a szinezés akkor sajnos törölni kell.

De akkor meg mennek a szinek is...

Szóval ha nem megy akkor marad a manuális formázás.

Köszi.
Előzmény: Delila_1 (8108)
Delila_1 Creative Commons License 2008.10.19 0 0 8108

Azt is megteheted, hogy jó messze a táblázatodtól beiktatsz egy oszlopot a D helyett, és elrejted. Valószínüleg nem jut eszébe senkinek sem megnézni.

 

Jimmy

Nem is úgy értettem.

Előzmény: fraulaci (8106)
Sánta Kutya (SK) Creative Commons License 2008.10.19 0 0 8107
Milyen számok szerepelnek a D oszlopban, és mi titkos ezekből? Például hozzá lehetne rendelni a D oszlop értékeihez valami kódot? Mondjuk egy összetett HA függvénnyel 10 és 20 között A, 20 fölött B stb. Ezek már nyilván nem titkosak, hiszen a színezés sem az. Ha kiadsz egy színezést, akkor nyilván kiadod valamennyire azt is, hogy mi annak az alapja.
Előzmény: fraulaci (8106)
fraulaci Creative Commons License 2008.10.19 0 0 8106
A formázás lényege, hogy pl. ha a "D" oszlopban 10-nél nagyobb szám szerepel akkor színezze azt a teljes sor mondjuk sárgára.

Ezt okosan meg is tudom csinálni, de utána ki kellene törölni a "D" oszlopot.

Ez is megy,de ekkor jön az, hogy viiszaállítja formázást.

És minden szép fehér lesz.

Szóval ezért kellene, hogy amikor kész a feltételes formázás valahogy "rögzíteni kellene", hogy törölni tudjam a "D" oszlopot.

Köszi, hogy foglalkozol vele.

Üdv.

Laci.
Előzmény: Sánta Kutya (SK) (8103)
Sánta Kutya (SK) Creative Commons License 2008.10.19 0 0 8105
Csináljak belőle statisztikát? :-)
Előzmény: Törölt nick (8104)
Törölt nick Creative Commons License 2008.10.19 0 0 8104
"Az baj lenne, ha én "szorítanám ki" Józsefet."

Nem így értettem. Csak elismerésemet akartam kifejezni. ;)

"Itt a többé-kevésbé azonos résztvevők miatt még azt is meg lehet tudni, ki mikor szokott a gép előtt ülni."

Ez is olyan adat, amit Robbantómester szerint nem kellene közölnünk magunkról...
Előzmény: Delila_1 (8101)
Sánta Kutya (SK) Creative Commons License 2008.10.19 0 0 8103
És nincs valami korreláció a két oszlop között, aminek az alapján a céloszlopot formázhatnád? Akár úgy is, hogy nagyjából megcsinálod feltételessel, aztán kézzel korrigálod.
Biztos meg lehet csinálni makróval a dolgot, de azt nem én fogom elmondani.
Előzmény: fraulaci (8102)
fraulaci Creative Commons License 2008.10.19 0 0 8102
Köszi a tanácsot, de az sajnos nem lehet, mert a táblázatot idegen kezekbe kell adnom, és nekik nem szabad látniuk a kérdéses oszlopot.

Én is próbálkoztam azzal, hogy a már formázott táblázatot átmásolom, de az a baj, hogy viszi magával a "Feltételes formázás" kritériumát is.

Néztem az irányított beillesztéseket is, de nem találtam megoldást.

Szóval még keresem a megoldást, de szívesen veszem a segítséget.

Köszönöm.

Laci

Előzmény: Sánta Kutya (SK) (8100)
Delila_1 Creative Commons License 2008.10.19 0 0 8101

Az baj lenne, ha én "szorítanám ki" Józsefet. :) Sokkal többet tud nálam.

Én meg Rólad állapítottam meg, hogy azonnal kész vagy a válasszal.

Itt a többé-kevésbé azonos résztvevők miatt még azt is meg lehet tudni, ki mikor szokott a gép előtt ülni.

Előzmény: Törölt nick (8098)
Sánta Kutya (SK) Creative Commons License 2008.10.18 0 0 8100
Szerintem sehogy, bár nem vagyok biztos benne, hogy jól értem a problémádat. Törlés helyett inkább tedd rejtetté azt az oszlopot, és akkor a kecske meg a káposzta is. Esetleg körül lehetne nézni az irányított beillesztésnél, ha valami, akkor tán az tud ilyet.
Előzmény: fraulaci (8099)
fraulaci Creative Commons License 2008.10.18 0 0 8099
Sziasztok!

Nemrég kaptam egy jó tanácsot, hogy hogyan lehet "Feltételes formázással" formázni a táblázatot.

Ez jó is működik, de az lenne a kérdésem, hogy hogyan lehet ezt a formázást úgy "rögzíteni", hogy ha pl. azt az oszlopot kitörlöm ami a formázás "feltétele" maga formázás megmaradjon?

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

Laci
Törölt nick Creative Commons License 2008.10.18 0 0 8098
Hát igen, azok a játékok érdekesek. Mondjuk én nem szoktam excellel játszani, mert arra ennél jobb eszközök is vannak. Az viszont érdekelne, hogyan csinálják. De az a pár játék, amit megnéztem, nem engedte megnyitni a kódmodulokat.

Ami Józsefet illeti, szerintem biztosan nem mondott búcsút nekünk. Talán csak az a baj, hogy nem hagyjuk szóhoz jutni :)
Delila pl. igen gyorsan reagál a feltett kérdésekre ;)
Előzmény: Törölt nick (8096)
Törölt nick Creative Commons License 2008.10.18 0 0 8097
Én is szeretemezt a fórumot, koptatom is a virtuális padját 1999 óta. Sőt. Ennek elődje az internetto.hu volt, még ott is jelen voltam.
Előzmény: Delila_1 (8089)
Törölt nick Creative Commons License 2008.10.18 0 0 8096
Excelből fűnyírót... :)))

Egyébként ha körülnézel, rengeteg játékot lehet találni, ami az excel cellákat grafikai mátrixként használva fut excel alatt, pl Pacman stb.... Jópofa dolog ilyet látni azon a felületen, amit általában nem erre szoktunk használni :))
Aki erre képes, az tud excel (visual basic-et) programozni. Meg nagyon ráér.

Szerintem is egy hatalmas chatszobára hasonlít - de ez nem baj. (Természetesen van kivétel is)

Szeretem ez az exceles topikot. Sajnos ha a mag eltűnne, akkor úgy érzem kihalna. Így is hiányolok 1-2 arcot, (pl József, rengeteget tanultam tőle is) a többiek még fel-fel bukkanak.

Az egyetlen hiba, amit nehezményezek, hogy Opera böngészővel nem úgy viselkedik a hozzászólás szerkesztő, ahogy egyébként. 10 éve használom ezt a böngészőt, nem tudok az extráiról emiatt lemondani...

Egy (NEKEM) rázós kérdésre emlékszem, amikor az user arra volt kíváncsi, hogy mit kell tenni ahhoz, hogy kiszámolja az excel két egyenes metszetét egy x;y tengelyen egy gombnyomásra. Jó játék volt megoldani.

Az index nem támogatja a közösségformálást - kivéve néhány topicot, ami a semmiből nőtte ki magát offline baráti társasággá - közös gondolkodású tagokból.
Sőt. Óva intenek attól, hogy bárki saját vagy más személyére utaló információkat adjon közre, de ez egy másik téma.

Továbbá van itt egy szűk mag, aki életben tartja ezt a topikot. Mi lesz ha ezek eltűnnek? Pl "József"-et hiányolom, bár lehetséges, hogy olvas. Sok jó dolgot tanultam tőle IS.

Előzmény: Törölt nick (8090)
Törölt nick Creative Commons License 2008.10.18 0 0 8095
Ez érdekes, a vastagbetűkkel kiemelt probléma nálam is előfordul, de úgy érzem ez mégsem a fórumszoftver hibája.
Egyébként azt hittem ezzel egyedül vagyok :)
Előzmény: Delila_1 (8089)
Törölt nick Creative Commons License 2008.10.18 0 0 8094
Én egyébként a prog.hu-ra gondoltam, de ez egy kalap alatt van a pcforum.hu -val.
Előzmény: Törölt nick (8091)
Delila_1 Creative Commons License 2008.10.18 0 0 8093
Az első kettőnél nincs új topic az új kérdéshez.
Előzmény: Delila_1 (8092)
Delila_1 Creative Commons License 2008.10.18 0 0 8092

Prohardver, PC World Segélyvonal, PC fórum.

 

Előzmény: Törölt nick (8091)
Törölt nick Creative Commons License 2008.10.18 0 0 8091
Melyik az a másik fórum?
Előzmény: Törölt nick (8088)
Törölt nick Creative Commons License 2008.10.18 0 0 8090
Gondolom, ezek szakmai fórumok. Én is ismerek pár ilyet. Közös jellemzőjük, hogy minden kérdező új topikot nyit a kérdésével, ezért nem keverednek össze az egyes problémákhoz tartozó hozzászólások. Lehet regisztrálni egyes (pl. saját) topikokra, és kérni értesítést, ha azokban új hozzászólás jelenik meg. Sokkal könnyebb így nyomon követni és visszakeresni a dolgokat.

Továbbá, azok a fórumok jobban támogatják a segítségnyújtást (pl. fájlfeltöltés lehetőségével) és a közösségformálást (pl. privát üzenetekkel), mint az index.

Az index viszont egy annyira általános fórum, hogy itt aztán ablaktól zsiráfig minden téma előfordul. Évente több millió hozzászólás, és a legtöbbnek túl sok értelme nincs is. Inkább hasonlít ez egy hatalmas chat szobára. A magam részéről nem sok esélyét látom, hogy ez változni fog. De nem bánom. Ez az exceles topik elég jó szerintem, általában minden problémára kerül valami használható válasz. Vagy csak elkerülnek az igazán rázós kérdések? Még senki nem jött pl. azzal, hogy excelből akar fűnyírót vezérelni...

Előzmény: Delila_1 (8089)
Delila_1 Creative Commons License 2008.10.18 0 0 8089

Több fórum értesít a hozzászólásokról. Van, amelyiknél kérhetjük a napi 1-, vagy választhatjuk a minden hsz-ról való értesítést.

 

Ha előcsalom ezt a fórumot, először mindig a fejemhez vágja, hogy:

"A művelet elvégzéséhez sajnos nem rendelkezik a szükséges jogosultsággal."

Újabb belépésre megengedi a bejelentkezést, ha ezután hozzá is akarok szólni, előbb megint sajnálkozik, és csak utána enged be. De a legördülőben akkor is kiírja, hogy váltsak nicknevet.

 

Ezeket az apró technikai furcsaságokat leszámítva nagyon szeretem ezt a fórumot.

Előzmény: Törölt nick (8088)
Törölt nick Creative Commons License 2008.10.17 0 0 8088
OFF
Indexen nincs ilyen jellegű szolgáltatás, ellentétben egy másik fórummal (Azt hiszem Delile is erre gondolt) - ahol úgy látszik nem okozott problémát ennek megvalósítása.
De van erre számtalan példa is, egy szó mint száz - az indexen nincs.
ON
Előzmény: Delila_1 (8086)
Törölt nick Creative Commons License 2008.10.17 0 0 8087
Ezt a fórumot? Nem tudom. Szerintem sehogy. Egy ilyen funkció irgalmatlan mennyiségű levelezést generálna.
Előzmény: Delila_1 (8086)
Delila_1 Creative Commons License 2008.10.17 0 0 8086

Mindig kisegítesz, ez már jó, nagyon köszönöm.

 

Most egy abszolút más jellegű kérdés: hogy lehet rávenni a fórumot, hogy értesítsen új hozzászólásról, válaszról?

Előzmény: Törölt nick (8085)
Törölt nick Creative Commons License 2008.10.17 0 0 8085
Van gyógymód.

Tulajdonképpen elsiettem az előző hsz-t, mert azóta kifundáltam egy sokkal egyszerűbb megoldást.

Private Sub ComboBox_Feltöltés
Dim Rng As Range
Set Rng = ThisWorkbook.Sheets("Munka1").Range("E2")
Set Rng = Range(Rng, Rng.End(xlDown))
ComboBox1.List = Rng.Value
End Sub

Ez a szubrutin mindig a teljes listát lecseréli, nem csak elemeket ad hozzá a meglévőkhöz. Meg kell hívni egyszer a form inicializálásakor, és utána minden alkalommal, amikor a másik lapon új rekordokat viszel be.
Előzmény: Delila_1 (8084)
Delila_1 Creative Commons License 2008.10.17 0 0 8084

Köszönöm, ezzel fel tudom tölteni.

 

A szépséghibája ugyanaz, mint a "direkt" (tulajdonságlapon történő) feltöltésnek. Ha ugyanennek a MultiPage-nek a másik lapján felviszek egy új rekordot, ezen a lapon csak akkor mutatja, ha előbb kilépek a UserFormból.

 

Erre nincs gyógymódod?

 

Az is nagy segítség, hogy az első használatnál nem mutat jónéhány üres sort, mint az E2:E500-nál.

Előzmény: Törölt nick (8083)
Törölt nick Creative Commons License 2008.10.17 0 0 8083
Ja, értem.
Combobox feltöltése makróból:

Private Sub UserForm_Activate()
Dim Rng As Range, cel As Range
Set Rng = ThisWorkbook.Sheets("Munka1").Range("E2")
Set Rng = Range(Rng, Rng.End(xlDown))
For Each cel In Rng.Cells
ComboBox1.AddItem cel.Value
Next
End Sub
Előzmény: Delila_1 (8082)
Delila_1 Creative Commons License 2008.10.17 0 0 8082
A MultiPage egyik lapja a Lekérdezés nevezetű, ezen van a kérdéses ComboBox.
Előzmény: Törölt nick (8081)
Törölt nick Creative Commons License 2008.10.17 0 0 8081
Mi az a "Multipage Lekérdezés"?
Előzmény: Delila_1 (8079)
Delila_1 Creative Commons License 2008.10.17 0 0 8080
Az 'Aktí dolgozók'!Név értéket hol elfogadja, hol méla undorral elutasítja.
Delila_1 Creative Commons License 2008.10.17 0 0 8079

Egy MultiPage Lekérdezés lapján van egy L_Névlista nevű ComboBoxom, aminek a RowSource tulajdonságát szeretném makróból aktualizálni. 

Bevihetném fixre (E2:E500), de akkor ad egy csomó üres sort, az adatok bővülése után pedig meg kellene változtatni.

 

Próbáltam úgy, hogy beszúrtam egy (Név) nevet az "Aktív dolgozók" lapon,

=OFSZET('Aktív dolgozók'!$E$2;0;0;DARAB('Aktív dolgozók'!$E:$E);1)

hivatkozással, és a RowSource tulajdonságba ezt írtam:

'Aktív dolgozók'!Név

de ha zz nevet viszek fel utoljára, azt a lekérdezésnél nem mutatja - új név felvitele után rendeztetem az oszlopot.

 

Van valakinek ötlete?

Törölt nick Creative Commons License 2008.10.15 0 0 8077
Ja:)
Előzmény: Törölt nick (8075)
Törölt nick Creative Commons License 2008.10.15 0 0 8076
FKERES() függvénnyel.
valahogy így:

=FKERES(ide válaszd ki azt a sorszám cellát amit vissza kell keresned; itt add meg azt a tartományt úgy, hogy az első oszlopa a visszakeresendő sorszám legyen; az előzőleg kiválasztott tartománynak az az oszlopszáma, amit vissza akarsz keresni.; HAMIS)*2
a *2 azért kell, mert aszontad duplája kell az árnak
Előzmény: Törölt nick (8074)
Delila_1 Creative Commons License 2008.10.15 0 0 8072

C3-ba beírod a képletet.

Állsz a C3-on, és a jobb alsó sarkában lévő kis fekete négyzetre  duplán klikkelsz. A képlettel kitölti a C oszlopot addig, míg a B-ben talál maga mellett adatot.

Előzmény: Törölt nick (8071)
Delila_1 Creative Commons License 2008.10.14 0 0 8070

Szívesen.

Az msgbox-hoz írhattam volna a szemléletesebb cv.Address-t is.

 

Előzmény: Törölt nick (8069)
Törölt nick Creative Commons License 2008.10.14 0 0 8069
pfff... köszi.
Isten biz próbáltam a Range-val is, ahogy mutatod, de nem tetszett neki.
Igaz, Excel.Application-nal, de akkor sem értem azzal mit rontottam el.
Köszi még1x
Előzmény: Delila_1 (8067)
toccata Creative Commons License 2008.10.13 0 0 8068
Ez a nyerő.
Köszönet.
Előzmény: Törölt nick (8063)
Delila_1 Creative Commons License 2008.10.13 0 0 8067

Pl. így:

 

For Each cv In Worksheets("Munka1").Range("Tartomány")
     If cv = 114 Then MsgBox "+van"
Next

Előzmény: Törölt nick (8066)
Törölt nick Creative Commons License 2008.10.13 0 0 8066
A névvel megadott tartomány Select-je nem okoz problémát, mert makrórögzítő megmondja, de hogy tudom ezt a tartományt pl. használni is a makróban?
Előzmény: Törölt nick (8065)
Törölt nick Creative Commons License 2008.10.13 0 0 8065
Sziasztok, azt szeretném most megkérdezni, hoigy egy névvel ellátott tartományt hogy tudok elérni a makróban?

Ha esetleg így nem érthető:
Kijelölök egy tartományt és megadok neki egy nevet (pl menü-beszúrás-Név megadása)
És erre a névre hivatkozni szeretnék a makróban, hogy pl válassza(select) ki, vagy a tartományát integrálni szeretném vhová, akkor mit kell tennem?
Delila_1 Creative Commons License 2008.10.13 0 0 8064
Pedig ez kiüríti az A1 tartalmát. Záráskor rákérdez a mentésre, természetesen menteni kell, akkor töröl. A zárójel fele biztosan csak itt a fórumban maradt le.
Előzmény: toccata (8062)
Törölt nick Creative Commons License 2008.10.12 0 0 8063

És így?

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets("munkalap").Cells(1,1) = ""
End Sub

ThisWorkbook-ba tedd
Előzmény: toccata (8062)
toccata Creative Commons License 2008.10.12 0 0 8062
Sajna nem működik. :(

Nem történik semmi változás sem bezáráskor, sem a mentésgombra kattintáskor.
Ezt írtam be:

Sub auto_close()
Cells(1,1=""
End Sub
Előzmény: Delila_1 (8061)
Delila_1 Creative Commons License 2008.10.12 0 0 8061
Annyi az egész, hogy Sub auto_close() legyen a makró neve, és szerepeljen benne a Cells(1,1)="".
Előzmény: toccata (8060)
toccata Creative Commons License 2008.10.12 0 0 8060
Sziasztok!

Szükségem lenne egy olyan makróra, ami minden mentéskor lefut, és egy adott cella (monjuk A1) értékét üresre állítja.

Köszönet érte előre is.
fraulaci Creative Commons License 2008.10.12 0 0 8059
Igazad van!

És működik!!!

Köszi.

Laci
Előzmény: Jozsef (8048)
Törölt nick Creative Commons License 2008.10.10 0 0 8058
Ok, ez megoldva, de sajnos felesleges lezongorázza az egyesített cellákban lévő (üres) sorokat is.
Előzmény: Törölt nick (8057)
Törölt nick Creative Commons License 2008.10.10 0 0 8057
1. Működne programból, ha nem Excel.Application-ból vezérelném - de így sajnos nem működik.

2. ...Forrás.Range("B2").End(xlDown).Offset(0, 12)...
Ha hiszed, ha nem, nem ment az Address nélkül, pedig szerintem is működnie kéne.
Próbáld ki, szerintem neked sem fog menni, ha hasonlóan éred el a munkafüzetet mint én.

3. Ha kézzel SIMÁN másolom át, akkor valóban a képletek értékként másolódnak át egyik munkafüzetből a másikba (valóban...)


Egyébként feladtam. Feltöltöm For Each ciklussal, viszont ennek se barátja a mergelt cella :(



For Each CELLA In xls.Selection formában sajnos végig lépked az egyesített cellát alkotó sorokon is :(

Van erre vmi módszer, vagy figyeljem a cikluson belül valahogy hogy kihagyja.
Azt tudom, hogy van MergeArea stb... de azt nem, hogy miként lehetne ezt rábeszelni, hogy csak a mergearea cellákon lépkedjen végig.




Előzmény: Törölt nick (8056)
Törölt nick Creative Commons License 2008.10.10 0 0 8056
"Ha kézzel csinálom, akkor mindenféle irányított beillesztés nélkül ÉRTÉKKÉNT átmásolódik a tartomány a forrásból a célmunkafüzetbe."

És programból ugyanez nem működik? Mert akkor a pastespecial kihagyható lenne...

"A Range tartomány végcellája változó, ezért van az Address-el meghatározva."

a végcella meghatározása odáig tart, hogy (pl.)
Forrás.Range("B2").End(xlDown).Offset(0, 12)
Az Address azért kell, mert a Range definiálását sztringgel végzed. Ezt akarod kihozni:
Range(cella1.address & ":" & cella2.address)
Ehelyett javasoltam a Range([color=#ff0000]cella1[/color], [color=#0000ff]cella2[/color]) verziót:
Range([color=#ff0000]"N7"[/color], [color=#0000ff]Forrás.Range("B2").End(xlDown).Offset(0, 12)[/color])
(remélem, sikerült a színeket alkalmaznom...)

Rövidebb a kód és jobban áttekinthető. Ezen túlmenően nem tudom, van-e más előnye.

csak kimarad az "önmagára másolás"

Az önmagára másolás azért kell, hogy a forrás helyen ne képletek, hanem értékek legyenek. No de ha a képletek is értékként másolódnak, akkor persze nincs szükség erre a lépésre.
Előzmény: Törölt nick (8052)
Törölt nick Creative Commons License 2008.10.10 0 0 8055
Ha jól értem az általad írt kód gyakorlatilag ugyanaz, amit a 7979-ben írtam a rögzített makró beintegrálására, csak kimarad az "önmagára másolás"
Előzmény: Törölt nick (8051)
Törölt nick Creative Commons License 2008.10.10 0 0 8054
Csak megjegyzésként, mag a forráskód egy harmadik munkafüzetből indul útjára.
Előzmény: Törölt nick (8052)
Törölt nick Creative Commons License 2008.10.10 0 0 8053
2. észrevételedhez kapcsolódóan:
A Range tartomány végcellája változó, ezért van az Address-el meghatározva.
Azt tudom, hogy ezt lehetett volna egyszerűbb formában is, vagy Cells(sor,soszlop) segítségével, de ez "így maradt"
Ugyanakkor van egy olyan érzésem, hogy nem erre vonatkozott az észrevételed, de akkor mire?
Előzmény: Törölt nick (8051)
Törölt nick Creative Commons License 2008.10.10 0 0 8052
Köszönöm, még mindig dolgozoma megoldáson, de tudod mi a poén?
Ha kézzel csinálom, akkor mindenféle irányított beillesztés nélkül ÉRTÉKKÉNT átmásolódik a tartomány a forrásból a célmunkafüzetbe. Holott a forrásban képleteket tartalmazó tartományt jelölök ki! (Ez 1-1 munkafüzet. Nem 1-1 munkalap 1 munkafüzeten belül)
Valószínűleg hihetetlen, de igaz. (Annyira azért értek az excelhez, hogy hülyeséget ne állítsak.)

Egyelőre azzal próbálkozom, hogy fennt leírtakat alapján megjelenítem a 2 munkafüzetet.

pivot.Application.Visible = True 'törölhető
payment.Application.Visible = True 'törölhető

Majd integrálom a kódomba, amit ilyenkor a rögzítő létrehozna

' Windows("WorkBook.xls").Activate
' Range("K6:M8").Select
' Range("K6:M428").Select
' Selection.Copy
' Windows("WorkBook2.xls").Activate
' ActiveSheet.Paste


A köztes megoldásodra gondoltam én is, de egyszerűen nem tudok aludni, ha nem sikerül enélkül. (tisztább, szárazabb érzés lenne...:)
Ettől függetlenül jó ötletnek tartom.


Előzmény: Törölt nick (8051)
Törölt nick Creative Commons License 2008.10.10 0 0 8051
Szóval, ha jól értem, van két munkafüzeted és mindegyiken egy kijelölt munkalap. A forrás és a cél munkalapon egyaránt vannak egyesített cellák. Te a forrás munkalap valamely, egyesített cellákat tartalmazó tartományát akarod a cél munkalapra másolni, egy olyan tartományra, ahol az egyesített cellák elhelyezkedése pontosan ugyanolyan, mint a forrás tartományban volt. És ez nem megy.

Vigasztaljon a tudat, hogy a probléma gyökere nem az OLE objektumban és nem a kódodban van, ugyanis ez a művelet ugyanazon a munkalapon belül, kézi vezérléssel sem megy. Tehát:
Ha pl. A1:A2 cellák egyesítve vannak, valamint B1:B2 cellák egyesítve vannak, akkor A1:A2 -t kimásolva B1:B2-be nem tudok irányított érték-beillesztést csinálni.

Úgy tapasztaltam, hogy a fenti művelet csak az értékek beillesztésénél akad ki, ellenben sima másolás, formátum-beillesztés, képletbeillesztés, stb. megy. Ennek alapján egy kerülő megoldást tudnék javasolni. A kerülő módszer lépései:

1. A forrás tartományt átmásolod egy segédmunkalapra (Forrás.Copy Destination:=Segéd)
2. A forrás tartományt önmagára másolod értékekkel (Forrás.Copy, Forrás.PasteSpecial xlvalues)
3. A cél tartomány formátumát átmásolod a forrásra (Cél.Copy, Forrás.PasteSpecial xlFormats)
(Ekkor a forrás tartományod már csak értékeket tartalmaz, és formátumában pontosan olyan, amilyennek a cél munkalapon ki kell néznie.)
4. A forrás tartományt átmásolod a célra (Forrás.Copy Destination:=Cél)
5. Visszaállítod a forrás tartomány eredeti tartalmát (Segéd.Copy Destination:=Forrás)

Ha a cellaformátumok nem számítanak, akkor a 3. lépés ki is hagyható.

Ha megengedsz még két észrevételt.
1. Szerintem érdemes lenne két munkalap objektumot deklarálni. Sokkal áttekinthetőbbé tenné a kódot.
2. A Range két sarokcella megadásával is definiálható, nem csak a címeiket tartalmazó sztringgel.

A javasolt módosításokkal a kódod így nézne ki (nyilván nem teszteltem):

Dim Forrás As Worksheet, Cél As Worksheet
Set Forrás = pivot.Worksheets("pivottable")

For i = 1 To 2
Set Cél = payment.Worksheets(WS)
Forrás.Range("O:O").AutoFilter Field:=15, Criteria1:=TIPUS 'szures alapanyagszallitokra

Forrás.Range("C3", Forrás.Range("B2").End(xlDown).Offset(0, 6)).Copy Cél.Range("G11").PasteSpecial xlPasteValues

Forrás.Range("K" & Elso, Forrás.Range("B2").End(xlDown).Offset(0, 11)).Copy
On Error Resume Next
Cél.Range("A11").PasteSpecial xlPasteValues

Forrás.Range("N" & Elso, Forrás.Range("B2").End(xlDown).Offset(0, 12)).Copy 'Item / "service being supplied" oszlop atmasolasa
On Error Resume Next
Cél.Range("P11").PasteSpecial xlPasteValues

WS = "LIST B"
TIPUS = "Service"
Elso = Application.Match(TIPUS, Forrás.Range("O:O"), 0)

Next

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

For i = 1 To 2
        
         pivot.Worksheets("pivottable").Range("O:O").AutoFilter Field:=15, Criteria1:=TIPUS 'szures alapanyagszallitokra
        
         pivot.Worksheets("pivottable").Range("C3:" & pivot.Worksheets("pivottable").Range("B2").End(xlDown).Offset(0, 6).Address).Copy           payment.Worksheets(WS).Range("G11").PasteSpecial xlPasteValues
        
         pivot.Worksheets("pivottable").Range("K" & Elso & ":" & pivot.Worksheets("pivottable").Range("B2").End(xlDown).Offset(0, 11).Address).Copy
         On Error Resume Next
         payment.Worksheets(WS).Range("A11").PasteSpecial xlPasteValues
        
         pivot.Worksheets("pivottable").Range("N" & Elso & ":" & pivot.Worksheets("pivottable").Range("B2").End(xlDown).Offset(0, 12).Address).Copy  'Item / "service being supplied" oszlop atmasolasa
         On Error Resume Next
         payment.Worksheets(WS).Range("P11").PasteSpecial xlPasteValues
                
         WS = "LIST B"
         TIPUS = "Service"
         Elso = Application.Match(TIPUS, pivot.Worksheets("pivottable").Range("O:O"), 0)

     Next

 

Ez a kódrészlet. Az Resume Next soroknál akad ki, mert ott van egyesített cella

Másoláskor ezek az egyesített cellák biztos hogy jól fedik egymás - tehát jól van beállítva a tartományok kezdete ill. vége.

Előzmény: Törölt nick (8049)
Törölt nick Creative Commons License 2008.10.09 0 0 8049
Ezzel kapcsolatban most elakadtam. Gyakorlatilag ezzel a módszerrel másolgatok át egyik munkafüzetből a másikba tartományokat.
A gond az, hogy ez tartalmaz egyesített cellákat is.
De: A két xls egyesített cellái azonos számú sorokat foglalnak össze. (oszlopokat nem)
Ennek ellenére nem tudom átmásolni a tartományokat a megfelelő helyeikre.
Találkoztál már ilyennel, ill. erre tudsz vmi megoldást?
Előzmény: Törölt nick (8024)
Jozsef Creative Commons License 2008.10.09 0 0 8048
=($C1>10) helyett
valami
=($D1>10)
jellegű képletet tettél be a feltételes formázásba? Figyeltél arra, hogy hol van dollárjel és hol nincs? Mert ez alapvető fontosságú!
Előzmény: fraulaci (8047)
fraulaci Creative Commons License 2008.10.09 0 0 8047
Szia!

Na most sikerült!!!

Szóval!!

Ez már érdekesebb, de nekem egy kicsit össze vissza jelöl.

A biztonság kedvéért itt a tábla képe amit meg kell oldani.

Szóval a "D" oszlopot kell vizsgálni és a ha ott találok 10 db feletti értéket akkor a
"B","C","D","E" oszlopokhoz tartozó celláket kell beszinezni az adott sorban.

nekem az előzőekben leírt módszerrel nem a legjobban csinálta meg.

Ha kéritek szúrok be olyan képet amit azzal csinált.


Köszi a fáradozást...
Előzmény: fraulaci (8045)
fraulaci Creative Commons License 2008.10.09 0 0 8046
Bocs, de nem sikerült a kép csatolása.

Próbálkozom.
Előzmény: Jozsef (8042)
fraulaci Creative Commons License 2008.10.09 0 0 8045
Szia!

Ez már érdekesebb, de nekem egy kicsit össze vissza jelöl.

A biztonság kedvéért itt a tábla képe amit meg kell oldani.

Szóval a "D" oszlopot kell vizsgálni és a ha ott találok 10 db feletti értéket akkor a
"B","C","D","E" oszlopokhoz tartozó celláket kell beszinezni az adott sorban.

nekem az előzőekben leírt módszerrel nem a legjobban csinálta meg.

Ha kéritek szúrok be olyan képet amit azzal csinált.


Köszi a fáradozást...


Laci
Előzmény: Jozsef (8042)
Törölt nick Creative Commons License 2008.10.09 0 0 8044
Megelőztél ;)
Előzmény: Jozsef (8042)
Törölt nick Creative Commons License 2008.10.09 0 0 8043
- Állj rá az A1 cellára.
- Írd be feltételes formázásnak, hogy
- 1. mező: képlet értéke
- 2. mező: =$C1>10
- Állítsd be a formátumot amire akarod.
- Miközben az A1 cella aktív, kattints a "formátum másolása" gombra.
- Jelöld ki az A-B-C oszlopokat.
Előzmény: fraulaci (8041)
Jozsef Creative Commons License 2008.10.09 0 0 8042
A megoldás, akkor is a feltételes formázás:
1. Kijelölöd a teljes munkalapot, vagy ott, ahol az adatok vannak (tehát nem csak a C oszlopot)
2. Formátum/ Feltételes formázás
Képlet értéke: =($C1>10)

Ha nem az első sortól jelölted ki, akkor $C2, $C3 stb. A lényeg, hogy olyan vegyes hivatkozást kell használni, ahol az oszlop ("C") rögzített, a sor pedig relatívan változik.
3. Beállítod a sárga hátteret.
Előzmény: fraulaci (8041)
fraulaci Creative Commons License 2008.10.09 0 0 8041
Köszi, ez tök jól mőködik, de lehet, hogy nem voltam eléggé egyértelmű.

A lényeg, hogy pl. az adat amit vizsgálok a "C" oszlopban van és ha ott igaz a feltétel, hogy 10 felett van akkor a "C" oszlop éppen vizsgált sorában (pl.10) az "A10" és a "B10" is ki kell, hogy legyen színezve és persze a "C10" is.

De természetesen köszönöm, hogy segítettél.

Laci.
Előzmény: Törölt nick (8033)
Törölt nick Creative Commons License 2008.10.09 0 0 8040
Én az általad említett 2. módszert használom. Sokat küzdöttem vele, mert ez bizony nem szűr semmilyen hibát - tehát valószínűleg jobb a te 1. módszered.

Legközelebb ezzel próbálkozom én is, mert magamtól nem fogom tudni hogy minek milyen metódusa/tulajdonsága van.

Most már megírom így a kódomat (2. módszerrel), legalább jól megalapozom vele a könnyebb 1.módszeredet...
Előzmény: Törölt nick (8024)
ndrv Creative Commons License 2008.10.09 0 0 8039
Valóban, müxik a dolog. :)
Előzmény: Törölt nick (8037)
Törölt nick Creative Commons License 2008.10.09 0 0 8038
Mármint, az ábrán éppen ki van kapcsolva, de be kell kapcsolni.
Előzmény: Törölt nick (8037)
Törölt nick Creative Commons License 2008.10.09 0 0 8037
Próbáld kí így:
Eszözök -> Beállítások -> Szerkesztés fül -> Adattartomány végén a formázás és a képletek folytatása: pipa be.
Előzmény: ndrv (8036)
ndrv Creative Commons License 2008.10.09 0 0 8036

Iagazad van, működik ofszet-tel is...:) (Ott rontottam el, hogy az ofszet függvényben

lévő számot úgy írtam be, mintha szummáztam volna és nem a szumma függvény sorának számát.)

 

Viszont az utolsóként írt dolog valami fekete mágia lehet, nálam nem javítódik ki a képlet, ha beírsz a beszúrt sor cellájába írok egy értéket.

Előzmény: Törölt nick (8034)
Delila_1 Creative Commons License 2008.10.09 0 0 8035
Igazad van, praktikusabb a feltételes formázás. Sokszor alkalmazom, most nem jutott eszembe.
Előzmény: Törölt nick (8033)
Törölt nick Creative Commons License 2008.10.09 0 0 8034
Nem tudom, hogy néz ki a táblázatod, de sztem működnie kellene az ofszetes megoldásnak. Mert ha pl. az összegzendő tartomány A1:A5, és az A6-ban van az összeg, akkor a helyes képlet:
=SZUM(A1:OFSZET(A6;-1;0))
Ha itt beszúrsz egy sort a 6-os sor elé, akkor a képlet az A7-be kerül, és így módosul:
=SZUM(A1:OFSZET(A7;-1;0))
az OFSZET(A7;-1;0) hivatkozás pedig az A6-os cellára mutat, tehát a SZUM függvény az A1:A6 tartományt összegzi.

Az, hogy a tartomány eleji vagy végi beszúrás miért nem módosítja a képleteket, gondolom költői kérdés. Legalábbis, ha tudnánk is a választ, az sem módosítana a helyzeten. Viszont megfigyeltem egy érdekességet.

A1:A7 tartományba számokat írtam, A8-ba pedig SZUM(A1:A7)
Aztán beszúrtam egy sort A8 elé. A képlet A9-be került, és továbbra is SZUM(A1:A7) maradt.
Ezután beírtam egy számot A8-ba, mire a képlet az A9-ben SZUM(A1:A8)-ra változott!!
Előzmény: ndrv (8032)
Törölt nick Creative Commons License 2008.10.09 0 0 8033
1. Jelöld ki a kérdéses oszlopot.
2. Menü: Formátum -> feltételes formázás -> 1.feltétel: a cella értéke nagyobb, mint 10
3. Állítsd be a kívánt formátumot.

Előnye a makrós módszerrel szemben, hogy
- teljesen automatikus, nem kell makrót futtatni minden módosítás után
- ha az oszlop máshová kerül, a formátum beállítások mennek vele, míg a makrót módosítani kellene, hogy rendesen működjön
Előzmény: fraulaci (8030)
ndrv Creative Commons License 2008.10.09 0 0 8032

Szia!

 

Köszi a keresést, ezzel nekem nem működött a dolog, de "kínomban" kitaláltam egy megoldást:

 

=SZUM(E2:INDIREKT(ÖSSZEFŰZ("E";SOR()-1)))

 

Továbbra sem értem azonban az excelnek azt a működési módját, amelyben:

 

ha a szumma függvénnyel összegzel egy adott tartományt (mondjuk öt sor A oszlopát a hatodik sorban - "=szum(a1:a5)" ), akkor, ha a tartományban beszúrsz egy plusz sort, akkor a szumma függvény automatikusan kijavítódik ("=szum(a1:a6)" lesz), de ha az összegző sorba szúrsz be plusz sort (ami az összegző sor fölé kerül, tehát látszólag az is a tartomány része lesz), akkor az nem változtatja meg a szumma függvényt (marad "=szum(a1:a5)").

 

Érti ennek valaki a magyarázatát? Mert számomra nem logikus. 

Előzmény: Törölt nick (8028)
Delila_1 Creative Commons License 2008.10.09 0 0 8031

 

Sub Szinez()
    For sor = 1 To Range("J65536").End(xlUp).Row
        If Cells(sor, 10) > 10 Then Rows(sor & ":" & sor).Interior.ColorIndex = 6
    Next
End Sub

Előzmény: fraulaci (8030)
fraulaci Creative Commons License 2008.10.09 0 0 8030
Köszönöm a segítséget!

A dolog szépen működik.

Persze lenne egy újabb kérdésem!

Meg kellene oldani azt, hogy egy oszlopot vizsgálva cellánként az abban szereplő értékeket figyelembe véve, amennyiben pl. 10 nél nagyobb szám van a cellában akkor az álltalam beállított cellák hátterét szinezze ki pl sárgára.

Lehet, hogy ez full hülyeség, de van egy 4000 soros táblázat amiben ki kell emelni háttérszínezéssel bizonyos sorokat asszerint, hogy egy bizonyos oszlop pl. "J"-ben szereplő érték nagyobb-e mint 10 vagy sem.

Most ez manuális munka és kb. fél óra.

Szóval ha lenne megoldás akkor köszönöm a segítséget.

Üdv.

laci.
Előzmény: Delila_1 (7964)
Delila_1 Creative Commons License 2008.10.09 0 0 8029

Stromba válasza működne, ha véletlenül a

Rows(Sor_száma - 1).Insert Shift:=xlDown sorban nem pluszt írt volna a mínusz helyett.

 

Előzmény: ndrv (8027)
Törölt nick Creative Commons License 2008.10.09 0 0 8028
Előzmény: ndrv (8027)
ndrv Creative Commons License 2008.10.08 0 0 8027
Látszólag ugyanaz a dolog és mégsem. Elmondom konkrétan a problémát:

Van egy részösszeges tábla, amibe a részösszeges csoportba, annak utolsó, részösszeg előtti sorába szeretnék sort beszúrni úgy, hogy a beszúrt sor megfelelő adatát is adja bele a részösszegbe. Az excel sajátossága adja a porblémát, aminek az a lényege, hogy ha a részösszeg (vagy szumma) soron állva szúrsz be sort, akkor nem bővül a réssszeg tartomány képlete (nem lesz eggyel több), hanem marad ugyanannyi, míg ha a résszösszeg tartományon belül szúrod be a sort, akkor a képlet is nő a beszúrt sorok számával. Ezért, ha a résszösszegen állva szurok be sort a tartományba, akkor nem fogja a beszúrt sor adatát a résszösszeg tartalmazni, ha meg a réssszöszeg felett szurokbe sort, akkor az meg nem lesz a tartomány utolsó sora. Mindezek miatt kellene úgy tudni beszúrni sort, hogy a tartomány utolsó sora alá tudjak sort beszúrni, ne az eggyel alatti fölé.
Előzmény: Törölt nick (8026)
Törölt nick Creative Commons License 2008.10.08 0 0 8026
Mi a különbség a kérésed és Stromba válasza között?
Előzmény: ndrv (8025)
ndrv Creative Commons License 2008.10.08 0 0 8025
Köszi, de nekem az adott soron kéne, valahogy így:

Rows(Sor száma).Insert Shift:=xlUp

De sajna nincs "XlUp" opció...
Előzmény: stromba (8022)
Törölt nick Creative Commons License 2008.10.08 0 0 8024
Excel application objektumot kétféleképpen tudok létrehozni (bár lehet, hogy van még egy tucat lehetőség):

1.
Dim xls As As Excel.Application
Set xls = New Excel.Application

2.
Dim xls As Object
Set xls = CreateObject("Excel.Application")

Az első módszer előnye, hogy a fordító már a kód írásakor tudja, hogy milyen objektumom van, és felkínálja a lehetséges property-ket és method-okat, továbbá egy rakás hibát kiszűr, még mielőtt a program futását engedélyezné. Pl. nem engedi, hogy olyan property-t írjak a kódba, amilyen az Excel application-nek nincs.

Te viszont általában a CrateObject-et használod, legalábbis innen úgy tűnik. Annak milyen előnye van az 1. módszerhez képest?

Előzmény: Törölt nick (8023)
Törölt nick Creative Commons License 2008.10.08 0 0 8023
Biztosan ismered. Lehet hogy én fogalmaztam rosszul. Egyébként egy másik fórum segítségével megtaláltam a megoldást.


Erre gondoltam:

Set xls = CreateObject("Excel.Application")
Set pivot = xls.Workbooks.Open("elérési út")
Előzmény: Törölt nick (8020)
stromba Creative Commons License 2008.10.08 0 0 8022
Rows(Sor száma +1).Insert Shift:=xlDown
Előzmény: ndrv (8021)
ndrv Creative Commons License 2008.10.08 0 0 8021

Egy nagyon egyszerű kérdésem van, kérem, hogy aki tud, segítsen:

 

Insert paranccsal (teljes sorra) lehet az adott sor alá beszúrni? Ha igen, hogy (makróból kellene). Köszi, előre is.

 

Törölt nick Creative Commons License 2008.10.08 0 0 8020
Nem ismerem az OLE objektumos elérési lehetőségeket. (Vagy lehet, hogy ismerem, csak nem tudom, hogy úgy hívják?) Elmondod, hogy megy ez? Hátha tudok valami tippet adni.
Előzmény: Törölt nick (8018)
Törölt nick Creative Commons License 2008.10.08 0 0 8019
Illetve van még egy kérdésem, köszönettel venném ha valaki segítene.
Szintén OLE objuktomon keresztül kimásolok Copy-val egy tartományt, de én csak az értéket akarom átadni.
Ez ugye így nézne ki de természetresen nem működik:

payment.Worksheets("LIST A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False payment.Worksheets("LIST A").Range("G11")

Hogy lehetne csak az értéket visszadni egy Paste-val?
Törölt nick Creative Commons License 2008.10.08 0 0 8018
Sziasztok,
OLE objektummal elért munkafüzetben hogy lehet For Each-el bejárni egy Selection-t?
Ha esetleg így nem érthető a kérdésem másolok be kódrészletet.
Törölt nick Creative Commons License 2008.10.07 0 0 8017

Sziasztok!

 

A kérdésem most az lenne, hogyan tudom beállítani azt, hogy egy billentyű kombinációval beállított eljárást az Eszközök - Makró - Makrók - Indítással ne lehessen elindítani? Ha a modul tetején Option Private Module-t használom, nem indul el a beállított billenytyűkkel...

 

Köszönöm.

magyarpityu Creative Commons License 2008.10.07 0 0 8016
Örülök, ha tudtam segíteni! :-))
Előzmény: Törölt nick (8014)
Törölt nick Creative Commons License 2008.10.07 0 0 8015
Bocsánat, magyarpityu topictárs megoldása a (7937) számú hozzászólás.
Előzmény: Törölt nick (8014)
Törölt nick Creative Commons License 2008.10.07 0 0 8014
Kedves Delila_1, magyarpityu, Jimmy the Hand!

 

Köszönöm szépen a segítséget! Végül, magyarpityu topictárs vezetett a jó megoldásra, mivel a megoldásával (7934) a 2 és 100 között változó értékeket is lehet összegezni.

Törölt nick Creative Commons License 2008.10.06 0 0 8013
Mondjuk 30-as darabszám fölött ez is kiakad, de annak valószínűleg az az oka, hogy a SZUM képlet argumentumainak maximális száma 30.
Előzmény: Törölt nick (8012)

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