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.
Egyelőre csak úgy tudom megoldani, hogy nyitok egy új, láthatatlan Excel alkalmazást, abban megnyitom a forrásfájlt, és a megfelelő adatokat átmásolom a Formon lévő Spreadsheet vezérlőre. Biztos van más lehetőség is, de tegnap egy óra alatt semmi használható leírást nem találtam a Spreadsheetről, és most nincs időm hosszadalmas kísérletezésekre. Talán később, egyszer. Addig is, a favágós megoldásom így néz ki:
Private Sub CommandButton1_Click() Dim ea As Application, wb As Workbook, ws As Worksheet, R As Range
Set ea = New Application On Error GoTo Hiba Set wb = ea.Workbooks.Open("D:teszt.xls") Set ws = wb.Worksheets("Munka1") Set R = ws.Range("A1:B20") R.Copy Me.Spreadsheet1.ActiveSheet.Paste Debug.Print "Finished." Hiba: ea.Quit End Sub
Köszi ez jó megoldás lenne úgy, hogy a spreadsheet-et rátenném egy userformra. Ebben az esetben viszont nem találtam meg a módját annak, hogy hogy lehetne a spreadsheetnek egy tartományértéket megadni egy másik munkafüzet adott tartományából. Ha még ebben tudnál segíteni, azt nagyon megköszönném.
"... azt szeretném megszámolni, hogy egy item code-hoz hány description tartozik".
Arra van szükség, hogy egy-egy A oszlopbeli értékhez hány féle B oszlopbeli érték tartozik. Ez kizárja a képletednek a (B:B=B2) részét, mert éppen a B-k különbözőségét kell megszámolni, ami ráadásul nem tartalmazhatja a B="" értéket.
Nagyon Köszönöm a segítséget! Sikereresen lefutott csak én voltam mindig türelmetlen. :) Működik is rendesen, örülök h szimpatikus volt a feladat, nekem ezzel nagyon sokat segítettél! Amúgy megszeretném kérdezni hogy milyen könyvet, weboldalt vagy tanfolyamot ajánlanál hogy fejlesszem magam makróból? Köszi!
egyszer láttam egy jó kis utility makrót, ami létrehoz egy új munkalapot és oda minden létező munkafül lapnal létrehoz egy linket.
de ha a bal alsó sarokban nyomsz egy jobbklikket a lapfül lapozónyilak felett, akkor felnyilik egy ablak, ahol tudsz kiválasztani a lapfülek közül (mondjuk a 210 lapnál ez sem nagy feeling)
Köszönöm a segítséget, a makrót amit írtál próbáltam lefuttatni de valahogy nem akar leállni. Amikor rámegyek az igenre elindul de aztán csak ismétli önmagát. Megjegyzem elég kezdő vagyok a makrós témában. :)
Ez makrós, a felhasználói felületen nem találsz erre funkciót:
Sub SheetShortB4InBook() Dim i As Integer Dim j As Integer Dim iValasz As VbMsgBoxResult
iValasz = MsgBox("Munkalapok rendezése növekvő sorrendben?" & Chr(10) _ & "Nemleges válasz esetén csökkenő sorrend", _ vbYesNoCancel + vbQuestion + vbDefaultButton1, "Munkalap sorbarendezése") For i = 1 To Sheets.Count For j = 1 To Sheets.Count - 1
If iValasz = vbYes Then
If UCase$(Sheets((Sheets(j).Name)).Range("B4")) > UCase$(Sheets((Sheets(j + 1).Name)).Range("B4")) Then Sheets(j).Move After:=Sheets(j + 1) End If
ElseIf iValasz = vbNo Then If UCase$(Sheets((Sheets(j).Name)).Range("B4")) < UCase$(Sheets((Sheets(j + 1).Name)).Range("B4")) Then Sheets(j).Move After:=Sheets(j + 1) End If End If Next j Next i End Sub
Segítségeteket szeretném kérni! Adott egy 210 munkalapos excel fájlom. Szeretném a munkalapokat abc sorrendbe rendezni a bennük lévő tartalom alapján. Konkrétan minden munkalapon a B4 sorban található személynevek alapján . Már mindennel próbálkoztam de nem tudok egyszerűen rájönni hogyan is kellene ezt megvalósítani. Köszönöm ha tudnátok ebben segíteni!
egész sok mindent megoldok Excel képletekkel, makrókkal, azonban egyéb programozási ismeretiemből fakadóan állandóan az az érzésem, hogy amit csinálok, az valójában gányolás.
Tudtok ajánlani valami irodalmat (lehet angol is nyugodtan), amiből megéri fejlődni? Arról, hogy hogyan kell ezt normálisan, mondhatnám profi szinten csinálni?