Az „Excel” fórum célja, hogy keretet adjon az Excel felhasználók széles táborának tapasztalataik megosztására, és lehetőséget a segítséget kérőknek. Az alábbi összefoglaló azért készült, hogy segítse a helyes kérdésfeltevést.
– Írd le szabatosan a problémát. Úgy fogalmazz, hogy ne csak te magad, de a szakértő is megértse, mire szeretnél választ kapni.
– Írd le, hogy milyen verziójú Excellel dolgozol. (Vagy ha nem – ill. nem csak – Excel, akkor micsoda?)
– Írd le, hogy milyen úton indultál el, és hol akadtál el rajta.
– A kérdés megértése szempontjából sokat segíthet, ha feltölteszt egy képet, amin látszik, hogy mit szeretnél, vagy illusztrálja azt.
– Még jobb, ha feltöltesz egy minta munkafüzetet valahová (pl. data.hu). Feltöltés előtt távolítsd el belőle a nem publikus adatokat.
– Ha a feladat jellege olyan, célszerű az "előtte" és "utána" állapotokat bemutatni. (Miből kellene csinálni mit?)
– Ha VBA kódon kell javítani, másold be a releváns kódrészt. Rövid kód mehet hozzászólásba, hosszú kód inkább ide: http://pastebin.com/
– Ha valami nem úgy működik, ahogy kellene, add meg a rendellenes viselkedés jellemzőit, a hibaüzenetet, és a hibát okozó programsort.
Egy munkafüzetet szeretnék menteni makróval megadott helyre. A mentett munkafüzet neve a B19 cellában lévő lenne, a mentés helye pedig egy könyvtár valahol a gépen.
Tömbképlet, tehát Ctrl+Shift+Enterrel kell zárni. Lefelé húzható.
A sárga sor az alap, ezt kell módosítanod a saját táblázatodnak megfelelően. B10:C10-től lefelé vannak a sorpárosítások, vagyis hogy a sárgától számítva hányadik sort kell hányadikkal összehasonlítani. A sorpárok listája (B10:C19) bemenő adat, azokat neked kell megadni.
(Ha jól értettem, az üres cellák egyezősége nem jelent találatot.)
Példa 5 listával, összegyűjtöttem, hogy soronkénti listák elemei milyen gyakran fordulnak elő, alul összegeztem, ilyen táblázatom van (első oszlop a listák sorszáma, utána az elemek, amelyik listában van olyan elem, az 1-es, a többi cella üresen marad):
-,a,b,c,d,e,f,g,h,i (az elemek azonosítói)
1.1,1,-,-,1,-,-,1,1
2.1,-,-,1,1,-,1,1,-
3.-,1,1,-,-,1,-,-,-
4.-,1,-,-,1,-,-,1,1
5.1,-,1,1,1,-,-,-,1
ö:3,3,2,3,3,1,2,3,3
A listák közötti közös elemek számát kell meghatározni:
1-2 3
1-3 1
1-4 4
1-5 3
2-3 0
2-4 3
2-5 3
3-4 1
3-5 2
4-5 2
Azért csináltam '1' és 'üres" cellákat, mert igy jobban áttekinthetők az oszlopok, de nagyon macerás igy is végigbogarászni több oszloponként az aktuális két sort.:-(
Így már érthető, vagy az a baj, hogy rossz irányban indultam el, és más megközelítés kellene?
Viszont tegnap a nyakamba zúdítottak egy rendezéses feladatot, a tegnapi napom csak az adatok begépelésével ment el.:-(
Adott kb. 250 lista, 30-60 közti elemszámmal. Sorba kell rendezni őket aszerint, melyek között van a legnagyobb átfedés. Arra gondoltam, csinálok egy táblázatot és elemenként összegzem őket, de ezzel csak odáig jutottam, hogy tudom, hogy mely elemek milyen gyakran fordulnak elő. Nekem viszont ezt a vizsgálatot az összes kétező két lista összevetésével kellene elvégezni.
Bármilyen ötletnek örülnék, mert különben rámegy ez a hetem a papírmunkára.:-(
Ennek szívből örülök, ugyanis még csak másfél órát foglalkoztam a kéréseddel, és bizony nagyon bosszantott volna, ha három óra múlva derül ki, hogy csak az időmet pazaroltam.
Az első sor azt mondja meg a fordítónak, hogy futási hiba esetén a második soron folytatódjon a végrehajtás.
Így nem fordulhat elő, hogy az eseménykezelőket letiltjuk (EnableEvents=False), majd egy programhiba miatt a végrehajtás nem jut el az engedélyezésig (EnableEvents=True), mely utóbbi esetben az események tiltva maradnának. Ha az események tiltva maradnak, akkor a duplakattintást lekezelő kód a továbbiakban egyáltalán nem fog lefutni, amíg vissza nem kapcsolod.
Nagyon-nagyon-nagy ötletem van, de a kivitelezés picit gondot okoz :-)
A W28 cellába összefűzéssel megjelenik egy név: "197_1"
Azt szeretném, ha a V28-ba duplán kattintva létrehozna egy hiperhivatkozást. Mégpedig a számítógép (szerver) egy megadott mappájából a W28-ban lévő nevű .pdf fájlra hivatkozzon.
Tehát, ha jól működik, akkor a V28-ban lesz egy link, ami a 197_1.pdf fájlra hivatkozik. A kattintás előtt a V28 üres, tehát a link neve a fájl neve lesz egyben.
Ha a jó ember még nem rakta fel a szerverre a fájlt (a makró nem találja), akkor megjelenne egy msgbox, hogy nem találom a fájl.
Egy Balaton szeletet fizetek annak, aki ezt meg tudja oldani :-)
Még mindig nem jó. A változások csak akkor következhetnek be a duplaklikkre, ha az A oszlopban még nincs pipa.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ActiveSheet.Protect Password:="jelszo", UserInterfaceOnly:=True Application.EnableEvents = False Dim rng As Range
If Range(Target.Row, 1) <> "ü" Then If Not Intersect(Target, Me.Range("F28:F2530")) Is Nothing Then Set rng = Range(Intersect(Me.Rows(16), Target.EntireColumn), Target.Offset(-1)) If rng Is Nothing Then Exit Sub Target.Value = Application.WorksheetFunction.Max(rng) + 1 End If
If Target.Column = 1 Then Range(Target.Address) = "ü" With Selection.Font .Name = "Wingdings" .Bold = True .ColorIndex = 3 End With Range("A" & Target.Row & ":V" & Target.Row).Select With Selection .Font.ColorIndex = 3 .Locked = True End With End If
If Target.Column = 3 Or Target.Column = 4 _ Or Target.Column = 12 Then Range(Target.Address) = Date
If Target.Column = 18 Then Range(Target.Address) = "IGEN" End If
Cancel = True Application.EnableEvents = True End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ActiveSheet.Protect Password:="jelszo", UserInterfaceOnly:=True
On Error Goto Hiba_esetén Application.EnableEvents = False
Dim rng As Range If Not Intersect(Target, Me.Range("F28:F2530")) Is Nothing Then Set rng = Range(Intersect(Me.Rows(16), Target.EntireColumn), Target.Offset(-1)) If rng Is Nothing Then Exit Sub Target.Value = Application.WorksheetFunction.Max(rng) + 1 End If
If Target.Column = 1 Then ActiveCell = "ü" With Selection.Font .Name = "Wingdings" .Bold = True .ColorIndex = 3 End With Range("A" & Target.Row & ":V" & Target.Row).Select With Selection .Font.ColorIndex = 3 .Locked = True End With End If
If Target.Column = 3 Or Target.Column = 4 Or Target.Column = 12 Then _ Range(Target.Address) = Date
If Target.Column = 18 Then Range(Target.Address) = "IGEN"
Cancel = True
Hiba_esetén: Application.EnableEvents = True End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ActiveSheet.Protect Password:="jelszo", UserInterfaceOnly:=True Application.EnableEvents = False
Dim rng As Range If Not Intersect(Target, Me.Range("F28:F2530")) Is Nothing Then Set rng = Range(Intersect(Me.Rows(16), Target.EntireColumn), Target.Offset(-1)) If rng Is Nothing Then Exit Sub Target.Value = Application.WorksheetFunction.Max(rng) + 1 End If
If Target.Column = 1 Then ActiveCell = "ü" With Selection.Font .Name = "Wingdings" .Bold = True .ColorIndex = 3 End With Range("A" & Target.Row & ":V" & Target.Row).Select With Selection .Font.ColorIndex = 3 .Locked = True End With End If
If Target.Column = 3 Or Target.Column = 4 Or Target.Column = 12 Then _ Range(Target.Address) = Date
If Target.Column = 18 Then Range(Target.Address) = "IGEN"
Cancel = True Application.EnableEvents = True End Sub