Első ránézésre totál elégedett voltam ezzel a funkcióval.
Manuálisan kattintgatva tényleg műxik.
Csakhogy.....
Amikor megpróbáltam "magnóra venni" egy ilyen műveletsort, akkor utólag megnézve a macro képét kiderül, hogy a felvétel azt az oszlophosszot őrzi meg (és alkalmazza a jövőben), ami a felvétel készítésekor a teszt táblában volt.
Az alábbiakban látható, hogy :
- elindítottam a "Rögzítés 16" nevű macrot
- megkértem,hogy
- lépjen a H1 cellába
- emelje meg 5%-kkal az előtte lévő cella értékét
- ezután duplán kattintottam a képlet jobb alsó sarkára.....valóban csak a tábla végéig rajzolta tele az oszlopot képlettel.....azonban , mivel ez a teszt, amiben a macro készült, csak 27 sorból állt, a macro örökre rögzítette magában, hogy a 27.sorig
kell csak dolgoznia.
Egy másik lapon ,ami nem annyi sor volt, természetesen nem láta el a feladatát, ott is csak a 27. sorig dolgozott.
********************************************************
Sub Rögzítés16()
'
' Rögzítés16 Makro
' Rögzítette: .
'
'
Range("H1").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*1.05"
Range("H1").Select
Selection.AutoFill Destination:=Range("H1:H27")
Range("H1:H27").Select
End Sub
*********************************************************
Számomra fontos, hogy macroba építhessem az egyes oszlopok kitöltését, mert sok oszlopnál kell eljátszani, sok táblában, sokszor...
Van vajon olyan ÁLTALÁNOS parancs, amit így a macro-szerkesztőben beírva a gép mindig az ÉPP AKTÍV oszlop előtti oszlop hosszát figyelve dolgozik ?
Kb. úgy ,mint ezek a parancsok, amelyek mindig az épp AKTÍV cuccra figyelnek :
ActiveSheet.Copy
ActiveWorkbook.Save
ActiveCells.Select
*****************************
Aprop= >
Kéne nékem egy olyan parancs a macro szerkesztőbe, ami mindig az ÉPP AKTÍV cellához/sorhoz/oszlophoz viszonyítva hajt végre egy bizonyos parancsot, azaz egy keresővel megtalált cellától
JOBBRA
vagy
BALRA
vagy
ALÁ
vagy
FÖLÉ
vagy
kettővel JOBBRA tőle
vagy
23-mal BALRA tőle
stb....
stb....
beírna valamit, vagy csinálna valamit...
***************
Amikor ugyanis felveszek egy ilyesmi műveletsort, visszanézve a felvételt mindig az derül ki, hogy a "magnószalagon"
KONKRÉT cellák/szolopok/sorok vannak megnevezve.
Példa :
Szeretném, ha az alma árát sárgával kiemelné a gép :
| GYÜMÖLCS |
Ár |
| alma |
100 |
| körte |
200 |
| barack |
300 |
Elindítom a felvételt....
Adok egy parancsot, miszerint :
- Szerkesztés >>> Keresés >>> Mit keres : "alma"
- nyomok egy JOBBRA nyilat, és ezt,azaz az "alma"-tól jobbra lévő cella árát sárgára színeztetem...
Visszanézve a felvételt, látható ,hogy a macro sajnos azt jegyezte meg, hogy neki a "B2" cellát kell majd sárgára színeznie a jövőben :
************************************************
Sub Rögzítés18()
'
' Rögzítés18 Makro
' Rögzítette: '
'
Columns("A:A").Select
Selection.Find(What:="alma", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range("B2").Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End Sub
*********************************************
..csakhogy az "alma" szó nem lesz mindig pont a B2 cellában, ill. több helyen lesz, vagy épp sehol sem.