-
GAMEPOD.hu
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
m.zmrzlina
senior tag
Sub masol()
Dim eleje As Long
Dim vege As Long
eleje = 2
vege = 4
Worksheets("Munka1").Rows(eleje & ":" & vege).Copy Destination:=Worksheets("Munka2").Rows(eleje & ":" & vege)
Worksheets("Munka1").Rows(eleje & ":" & vege).Delete Shift:=xlUp
End SubA fenti pár sor áthelyezi a Munka1 2.-4. sorát a Munka2 2.-4. sorába. Pontosabb megfejtéshez tudni kellene, hogy hogyan szeretnél értéket adni az eleje és vége változóknak.
-
Delila_1
Topikgazda
Sub Athelyez()
Dim elso As Long, ucso As Long
elso = Munka1.Range("A1")
ucso = Munka1.Range("B1")
Rows(elso & ":" & ucso).Cut Munka2.Range("A1")
End SubItt az első és az utolsó sor számát tartalmazza az A1, ill. a B1 cella.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Wyll
őstag
Arra gondolj majd mindig, miközben a VBA-t tanulod, hogy kijelölni csak nekünk embereknek kell a cellákat, de az excel-nek nem. Az excelnek nem kell előbb kijelölni valamit, hogy azután tudja törölni a kijelölést; hanem egyből lehet neki azt mondani, hogy a valamit töröld.
Tehát pl.
Columns("G:L").Select
Selection.Delete Shift:=xlToLefthelyett:
Columns("G:L").Delete Shift:=xlToLeft
Ez igazából az excelnek meg a vba-nak az objektumorientáltságából következik, de nem akarok túl csúnyákat mondani. A lényeg, hogy ez a szemlélet az egész excel vba programozást átitatja.
Ja, és használd gombot hsz írásakor!
[ Szerkesztve ]
Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=Wyll
-
Delila_1
Topikgazda
Sub torles()
Dim db As Long
db = Range("J1") - 1
Rows("10:" & 10 + db).Delete shift:=xlUp
End SubItt a J1 cellában adod meg, hogy a 10-től hány sort töröljön a makró, beszámítva a 10. sort is.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
azopi74
addikt
Szia, mit szeretnél egész pontosan elérni? Mert attól tartok, ez nem nagyon derült ki ebből.
Legközelebb, ha választ szeretnél a kérdésedre, javaslom, töltsd fel valahova a fájlt, amivel dolgoznál (ha bizalmas adatok vanna benne, természetesen cseréld le az értéküket valamire), és azt is próbááld megfogalmazni, hogy pontosan mi a kimenet, amit el szeretnél érni, mert ezek nélkül elég nehéz értelmezni ezt. Mit akarsz SUMIFS-elni, mire kell a makró, mi a pontos feladat?
Csak intuitív módon próbálom kitalálni: cikkszámonként és nevenként akarsz összesíteni a különállő munkalapokról, amik valamiféle forgalmakat tartalmaznak nevenként?
B2-be írd be:
=SUMIFS(INDIRECT(B$1&"!"&"B:B"),INDIRECT(B$1&"!"&"A:A"),alap!$A2)
És húzd a képletet minden irányba.
Mivel nem ismerem az adataid pontos struktúráját/elhelyezkedését, ezért természetesen ezt annak megfelelően módosítsd majd . Bár azt még mindig nem értem, mi a szerepe a makrónak ebben az egészben[ Szerkesztve ]
-
azopi74
addikt
Tehát jól értem, hogy egy UDF-et akarsz létrehozni VBA-ban, aminek a paraméterei legyen "név", "sz", "az" és "ál", és adja vissza azoknak a mennyiségeknek (minden lap d oszlopa) az összegét, amik a "név" munkalapon vannak, és a "sz", "az" és "ál" oszlopokban szereplő érték egyezik a paraméterként átadott értékekkel? Jól értem?
[ Szerkesztve ]
-
Delila_1
Topikgazda
Igen, megoldható.
Rögzíts egy makrót, amin előállítod 1 lapon a kimutatást, majd ezt másold be ide a topikba.
Írd meg, hány lapon kell ezt megismételni, ezek a lapok egymás után vannak-e, vagy van közöttük olyan, ahol nem kell kimutatás.Az is számít, hogy az egyes lapokon azonos sorszámú-e az A:M tartomány, vagy le kell majd kérdezni az utolsó sort.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
Akkor ez most részemről sajnos nem jött össze. Hétfőtől 1,5 hétig nem leszek gép közelében.
Az egyes lapokon viszont tudod indítani a rögzítettet. A makróban a következő lapoknál futtatás előtt a Kimutatás1-et kell minden előfordulásánál átírnod a következő számra (Kimutatás2 ... Kimutatás_sok). Legjobb, ha a Replace funkcióval hajtod végre, hogy ne maradjon ki egy sem.
Az
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"24!R1C1:R1048576C13", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="24!R1C14", TableName:="Kimutatás1", DefaultVersion:= _
xlPivotTableVersion14
Sheets("24").Selectrészben a 24-et is át kell írnod a következő lapok nevére, 3× fordul itt elő.
Azt hiszem, mást nem kell módosítani, mivel a teljes oszlopokat jelölted ki a táblázatodban, nem szorosan az adatokat tartalmazó részt.Mikor létrehoztad a 2. kimutatást a fent írt változtatások bevitele után, megnézed, rendben van-e. Ha nem, mentés nélkül zárd be a füzetet. Ebben az esetben biztosan lesz, aki segít.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
-
Delila_1
Topikgazda
A lenti makróban meg kell adnod a keresendő dátumot, és a sor számát, ahol keresel.
Ellenőrzi a bevitt értéket. Két sort megjegyzésbe tettem, azokban megadhatod, hogy nem lehet a dátum éve kisebb, mint az idei, ill. nem lehet kisebb a mai dátumnál.
Sub DatumHelye()
Dim Kelt As String, oszlop, sor As Long
sor = Application.InputBox("Melyik sorban keressünk?", "Sorszám bekérése", , , , , , 1)
Kelt = Application.InputBox("Add meg a dátumot!", "Dátum bekérése", , , , , , 2)
'Ellenőrzés
If Len(Kelt) <> 10 Then GoTo Hiba
If Mid(Kelt, 5, 1) <> "." Then GoTo Hiba
If Mid(Kelt, 8, 1) <> "." Then GoTo Hiba
If Mid(Kelt, 6, 2) > "12" Then GoTo Hiba
If Right(Kelt, 2) > "31" Then GoTo Hiba
If Not IsNumeric(Left(Kelt, 4)) Then GoTo Hiba
If Not IsNumeric(Mid(Kelt, 6, 2)) Then GoTo Hiba
If Not IsNumeric(Right(Kelt, 2)) Then GoTo Hiba
'If Left(Kelt,4)*1 < Year(Date) Then Go To Hiba
'If CDate(Kelt) *1 < Date Then GoTo Hiba
Select Case Mid(Kelt, 6, 2)
Case "02"
If Left(Kelt, 4) / 4 <> Int(Left(Kelt, 4) / 4) And Right(Kelt, 2) > 28 Then GoTo Hiba
Case "04", "06", "09", "11"
If Right(Kelt, 2) > 30 Then GoTo Hiba
End Select
If Left(Kelt, 4) / 4 = Int(Left(Kelt, 4) / 4) And Mid(Kelt, 6, 2) = "02" _
And Right(Kelt, 2) > 29 Then GoTo Hiba
'Keresés
oszlop = Application.Match(CDate(Kelt) * 1, Rows(sor), 0)
If VarType(oszlop) = vbError Then
MsgBox "Nincs " & Kelt & " dátum a " & sor & ". sorban", vbOKOnly + vbInformation
Else
MsgBox "A " & Kelt & " dátum a(z) " & sor & ". sorban, a(z) " & oszlop & ". oszlopban található.", vbOKOnly + vbInformation
End If
Exit Sub
Hiba:
MsgBox "Hibás dátum!", vbOKOnly + vbCritical
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
BigBadPlaYeR
senior tag
Aktív munkalap = ActiveSheet ?
"Furcsa, hogy az ember milyen keveset ér el, ha nem is próbálkozik."
Új hozzászólás Aktív témák
- VPN topic
- Futás, futópályák
- plevips: Építkezünk 3. rész (2024)
- Telekom mobilszolgáltatások
- Honor Magic6 Pro - kör közepén számok
- bb0t: Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- Adóbevallás
- Skoda, VW, Audi, Seat topik
- Politika
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- További aktív témák...
- Steam, Windows, Origin kulcsok, előfizetések közvetlenül a kiadótól, a LEGJOBB ÁRON!
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- AKCIÓ! - STEAM kulcsok /Anuchard, Aragami, Children of Morta, stb. - 2024.04.17.
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen