- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Nem várt platformon a OnePlus Nord 5
- iPhone topik
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Google Pixel topik
- Honor 400 Pro - gép a képben
- One mobilszolgáltatások
- Magisk
- Poco M3 - felújított állomás
- Honor Magic V2 - origami
-
Mobilarena
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
-
Mutt
senior tag
-
Mutt
senior tag
válasz
RAiN91 #51526 üzenetére
Szia,
Én nem jöttem rá a logikára.
3 lapon 1-1 kimutatás, az eszköztárra kiraktam az összes kimutatás frissítése gombot, az utolsón pedig egy összesítőtábla aminek az eredményét látod a lenti táblázatban. Függetlenül hogy melyik lapon volt az utolsó módosítás, vagy melyiken álltam éppen ez lett az eredmény (pl. második lapon módosítottam utoljára, de az utolsó lapon állva indítottam a frissítést a sorrend 3-as lap, majd 1 és végül 2 volt):
Ha fontos a sorrend, akkor érdemes egy subroutine-ban megadnod a sorrendet és ezt hozzárendelni az adott eseményhez.
Ha nem makróról lenne szó, hanem képletekről, akkor pedig ha belenézel egy ZIP kezelővel az OpenXML formátumú fájlba, akkor lesz egy calcChain.xml amiben látható a cella sorrend.
üdv
-
Delila_1
veterán
válasz
RAiN91 #50275 üzenetére
A Worksheet_Change eseményt javaslom.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim k As Long
Application.EnableEvents = False
If Target.Address = "$F$4" Then
If Target.Value <> Range("AH9").Value Then
k = Range("AH" & Rows.Count).End(xlUp).Row + 1
Range("AH" & k) = Range("K9").Value
End If
End If
Application.EnableEvents = True
End Sub -
Fferi50
Topikgazda
válasz
RAiN91 #47149 üzenetére
Szia!
Ha a feltételek számok, akkor használhatod a VÁLASZT függvényt.
Ha mások, akkor 2019-től már van "okos" HA függvény: HAELSŐIGAZ
Súgója itt
Üdv. -
Delila_1
veterán
válasz
RAiN91 #46351 üzenetére
Egy próbát megér.
1. Egy új füzetben helyezz el az A1 cellába egy hivatkozást a törölt tábla A1 cellájára. Ez valahogy így fog kinézni:Kód: ='C:\[Régifüzet.xlsx]Munka1'!A1
A pontos elérést puskázd ki valamelyik meglévő hivatkozásból. A lényeg, hogy a végén A1 legyen és ne $A$1! Amikor bekéri frissítés céljából az Excel a hivatkozott fájlt, nyomj mégsét.2. Autokitöltéssel húzd végig jobbra a frissen létrehozott cellát annyit oszloppal, amennyit a forrás tartalmazott. Ha túlhúzod, akkor sincs gond. (Autokitöltés = kijelölöd az A1-et, majd a cella jobb-alsó sarkában levő pöttyöt megfogva végighúzod jobbra a kijelölést.) A frissítéshez újra kéri az Excel a forrásfájlt, megint mégse.
3. A felső, immár helyreállt sor celláit jelöld végig ki, majd csinálj egy autokitöltést lefelé is. Innentől kezdve meg kell, hogy kapd a forrásfájl tartalmát.
4. Ezt az egészet jelöld ki, majd CTRL+C, majd szerkesztés->irányított beillesztés->csak értéket. Ekkor a hivatkozások felülíródnak a megjelenített értékekkel, ezzel végleg elválva a fantom forrástól. A helyreállt táblát már át tudod másolni másik Excel fájlba, stb.
Sajnos a formázásokat és a képleteket végleg elvesztetted, de ez legyen a legnagyobb baj, megvannak az adatok.
-
Fferi50
Topikgazda
válasz
RAiN91 #46061 üzenetére
Szia!
"Nem tudom, hogy működik, de makró nincs benne'"
Azért ez kicsit hihetetlen. Üres Excel "magától" nem csinál semmit.
Az eseménykezelésnek egyébként működnie kellene. A ciklus valóban lassú, pláne ha már sok adat van benne. De talán nem kellene mindig előlről kezdeni a vizsgálódást.
Tedd fel egy példával és megnézzük, mi lehet a gond.
(Vagy ha megvan a régiből egy példány és megosztható, az is jó lehet.)
Üdv. -
Delila_1
veterán
válasz
RAiN91 #46056 üzenetére
Fferi válaszához még annyit, hogy ha leállítod futás közben a makrót, nem jut el az
Application.EnableEvents = True
sorig, nem állítja vissza a makró futásának az engedélyezését. Ezért nem fut másodjára.
Ekkor a VBE-ben a Ctrl+g-re előjövő Inmediate ablakba bírhatod az engedélyező sort, Enterrel elfogadtatod, és újra indíthatod a makrót. -
Fferi50
Topikgazda
válasz
RAiN91 #46056 üzenetére
Szia!
Ha makró írja át az értékeket, akkor működnie kell az esemény vezérlésnek, kivéve, ha közben valahol máshol ki van kapcsolva esetleg.
A más munkalapról táplálkozó képlet miatti változás nem esemény a cél munkalapon.
A technikai kérdésedre:
Ha megállítod a makró futását, akkor az adott sor, ahol megáll, sárga színnel van jelölve. Innen lehet tovább folytatni a Run menü Continue (F5) pontjával. Ha nem látsz sárga sort, akkor nem folytatható a futás.
Amíg egy makró nem fut végig - tehát meg van szakítva a futása - , addig másik makró nem indítható. Lehetséges, hogy ezért nem indul el újra. Bár ekkor hibaüzenet szokott megjelenni.
Talán jó lenne a teljes programot látni, ha érzékeny adatok nélkül felteszed vagy priviben elküldöd, akkor nagyobb az esély rá, hogy tudunk segíteni.
Üdv. -
Fferi50
Topikgazda
válasz
RAiN91 #46052 üzenetére
Szia!
Mindenképpen eseménykezelés kell. Viszont a másodpercenként többszöri frissülés miatt elképzelhető, hogy egymásba fordul az eseménykezelés.
Amíg az esemény kezelése folyik, addig le kell tiltani az eseménykezelést az Application.EnableEvents = False
utasítással, a végén pedig engedélyezni.
Ezzel együtt izgalmas kérdés, hogy lefuthat-e a "csinálnjon valamit" programrész addigra, mire bekövetkezik az újabb esemény.
Üdv. -
lappy
őstag
válasz
RAiN91 #45802 üzenetére
Fogd meg és húzd oda a cellát
Képlet áthelyezése
Jelölje ki az áthelyezni kívánt képletet tartalmazó cellát.
A Kezdőlap lap vágólap csoportjában kattintson a kivágás gombra .
A képleteket úgy is áthelyezheti, hogy a kijelölt cella szegélyét áthúzza a beillesztési terület bal felső cellájába. Ez minden meglévő adatot lecserél.
Hajtsa végre a megfelelő műveletet:
A képlet és a formázás beillesztése: a Kezdőlap lap vágólap csoportjában kattintson a Beillesztésgombra.
Ha csak a képletet szeretné beilleszteni: a Kezdőlap lap vágólap csoportjában kattintson a Beillesztésgombra, majd az Irányított beillesztésparancsra, végül pedig a képletekelemre -
Fferi50
Topikgazda
válasz
RAiN91 #45727 üzenetére
Szia!
Azt gondolom, hogy valóban rossz helyen van a kódod. Illetve, attól függ mit csinál...
A Worksheet_Change-ben lenne talán a helye. Mivel eseménykezelésről van szó, mindkét esetben a rutin elején ki kell kapcsolni az eseménykezelést azApplication.EnableEvents=False
utasítással, vége/kilépés előtt pedig visszakapcsolniApplication.EnableEvents=True
utasítással.
Ez alapján feltételezem, hogy azért lassú a futása, mert nincs az eseménykezelés kikapcsolva és így minden számolás után újraindul a rutin futása.
Üdv. -
Fferi50
Topikgazda
válasz
RAiN91 #43824 üzenetére
Szia!
"egyszer lefut indulásnál, utána abba hagyja."
Ez mit jelent? A ciklusból egyet megcsinál és kilép hibával? Amikor megnyitod a munkafüzetet egyszer lefut és utána többet nem?
Ez egy eseménykezelő, ami akkor indul el, ha a munkalapot újraszámolják. Ha nincs újraszámolás, akkor nem fog lefutni.
Az ujraszámolást kiválthatod pl. a Sheets("Munka1").Calculate utasítással.
Üdv. -
válasz
RAiN91 #43035 üzenetére
Private Sub CommandButton1_Click()
Dim MySpecComputerName, MyComputerName As String
MySpecComputerName = "UBUL-PC"
MyComputerName = Environ("computername")
If UCase(MyComputerName) = UCase(MySpecComputerName) Then
MsgBox (MySpecComputerName & " gépén fut a makró")
'ide kerül a makró, amit futtatni szeretnél
Else
MsgBox (MyComputerName & " gépén NEM fut a makró")
End If
End SubFelhasználónevet is be lehet olvasni, ha esetleg kell:
UserName = Environ("username")
-
Fferi50
Topikgazda
válasz
RAiN91 #42751 üzenetére
Szia!
Feltételezhetően az eseménykezelés ismételt beindulása okozza stack "bedugulását", mivel minden egyes változásnál újra meghívódik.
Az elejébe tegyél egy
Application.EnableEvents=False utasítást, a végére pedig egy Application.EnableEvents=True utasítást, hogy futás közben az eseménykezelés legyen letiltva.Üdv.
-
Fferi50
Topikgazda
válasz
RAiN91 #42709 üzenetére
Szia!
Csak akkor működik a közvetlen érték átvétel, ha nyitva van a fájl.
Ha nincs nyitva, akkor képletként kell beírni. Makróban a Formula tulajdonságot kell használni és az Excel "3dimenziós" hivatkozását. A képlet így néz ki:=[asd.xlsx]Diagram!$A$1
Ezután bezárod a fájlt és megnézed, mi lett a képlet, ami az elérési utat is tartalmazza majd. Ezt kell reprodukálnod a makróban.
(Makrórögzítés a barátod. Csak kijelölöd a C1 cellát, F2 és enter. Utána megnézed, mit rögzített.)
ActiveCell.Formula = "='C:\Users\Balint\Desktop\[asd.xlsx]Diagram'!A1"
Üdv. -
Fferi50
Topikgazda
válasz
RAiN91 #42706 üzenetére
Szia!
Akkor ne Worksheet-ként hivatkozz rá, hanem Sheet-ként. Sheets("Diagram").
Illetve a fájlneved a Workbooks("asd.xlsx") legyen, amikor hivatkozol a munkalapra.
De még jobb, ha hozzárendeled a nyitáskor egy változóhoz:Set wb=Workbooks.open("C:\Users\Balint\Desktop\asd.xlsx")
Utána pedig wb.Sheets("Diagram") -ként hivatkozhatsz a munkalapra.
Üdv. -
sztanozs
veterán
válasz
RAiN91 #42699 üzenetére
Nézd meg debuggerrel, hogy melyik sorral/objektummal van gondja:
Set WB = Workbooks("C:\mappa\asd.xlsx")
Set WS = WB.Worksheets("Diagram")
Set R = Range("A45")
Range("C8") = RHa az utolsóval, akkor
Range("C8").Value2 = R.Value2
'vagy
Range("C8").Value2 = Workbooks("C:\mappa\asd.xlsx").Worksheets("Diagram").Range("A45").Value2
Hogy explicit legyen, hogy csak értéket adsz át -
Fferi50
Topikgazda
válasz
RAiN91 #41285 üzenetére
Szia!
Írtam, hogy ez egy eseménykezelés, akkor indul el, ha a cella értéke megváltozik.
A kérdés az, hogy milyen módon van rákötve az adatforrásra, mert ha az gátolja az eseménykezelést, akkor természetes, hogy eseménykezelés formájában nem tud futni.
Tehát jó lenne látni azt a makrót, amelyik az adatforrásból veszi az adatokat a cellába.
Az időzítést nem egészen értem, miért lenne jó.
"ha ugyan azt az értéket írom be neki, akkor is ő beírja a következő cellába"
Az eseménykezelés sajnos nem érzékeli, hogy ugyanaz maradt-e az érték a cellában, azt külön meg kellene vizsgálni.
De gondolom, a legfontosabb most az adatforrás beapplikálása lenne.Üdv.
-
Fferi50
Topikgazda
válasz
RAiN91 #41282 üzenetére
Szia!
Bocs, de miért is nem másolod le pontosan a makrót, amit küldtem?
Ne csodálkozz, hogy az Offsetet nem lépteti, mivel a k változódat nem definiáltad publikusnak, ezért valahányszor lefut az eseménykezelés, mindig 0 értéket fog tartalmazni.
Másrészt nem kapcsoltad ki az eseménykezelést, így aztán valahányszor beírja az eredményt újra és újra lefut feleslegesen (igaz, ezt nem látod, mert a cellavizsgálat alapján nem csinál semmit az eseménykezelés, csak kilép).
Továbbá, ha automatikusan íródik felül az A1 cella, akkor végtelen folyamat keletkezik, amit nem fogsz tudni leállítani. Ezért kell bele a DoEvents utasítás, mint írtam.Üdv.
-
Fferi50
Topikgazda
válasz
RAiN91 #41276 üzenetére
Szia!
Az alábbi makrót másold a munkalap kódlapjára. (Jobb egérgomb a fülön, majd kód megjelenítése.)
Option Explicit
Public hol As Byte
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$1" Then
Application.EnableEvents = False
Range("A1").Offset(0, hol).Value = Target.Value
If hol < 2 Then hol = hol + 1 Else hol = 0
Application.EnableEvents = True
End If
DoEvents
End Sub
A makró az F1 cellában bekövetkező változásokat követi le, az általad leírt módon az A1-B1-C1 cellában. A $F$1 helyére írd azt a címet ilyen formában, ahol a változások végbemennek, az A1 helyére írd azt az első cellát, ahova a változásokat szeretnéd beírni. A hol változó 0 és 2 között változik, értékétől függően kerül az A1-B1-C1 cellába az érték az Offset tulajdonság alapján.
Más cellákban bekövetkezett változásokra nem reagál.
Azt nem tudom, hogy az általad jelzett gyakoriságú változások miatt a "villódzásokon" kívül fogsz-e látni bármit is.
A DoEvents utasítás azért került bele, hogy a Ctrl+Break billentyűkkel le tud állítani a makró futását.Üdv.
-
Fferi50
Topikgazda
válasz
RAiN91 #41270 üzenetére
Szia!
Amíg a makró fut, addig nemigen tud változni egy cella értéke szerintem, hacsak te nem változtatod.
Szerintem eseménykezeléshez kellene kötnöd a makrót, például a munkalap Change eseményéhez, amiben megnézed, hogy a Cella(9,7) értéke változott-e, ha igen akkor lefut a makród az első i-értékkel. Az i változódat publikusnak vagy static-nak kell deklarálnod, hogy megmaradjon az értéke a makró lefutása után is.
Persze lehet, hogy rossz felé gondolkodok, mert nem ismerem a problémád teljeskörűen.Üdv.
-
Fferi50
Topikgazda
válasz
RAiN91 #41268 üzenetére
Szia!
Ha egy sorba írod a feltételt és a kívánt műveletet, akkor nem kell az End IfFor i = 44 To 47
If Cells(9, 7) <> Cells(9, i) Then Cells(9, i + 1) = Cells(9, 7)
Next
Ha mindenképpen ki szeretnéd írni, akkor az End If kerüljön a cikluson belülre:
For i = 44 To 47
If Cells(9, 7) <> Cells(9, i) Then
Cells(9, i + 1) = Cells(9, 7)
End If
Next
"csak akkor szeretném, ha i ugorjon egyet, ha a feltétel teljesül,"
Egyébként mit csináljon, ha a feltétel nem teljesül? Ácsorogjon és várja meg, hogy teljesüljön? - ami persze soha nem fog bekövetkezni.Üdv.
-
Fferi50
Topikgazda
válasz
RAiN91 #40743 üzenetére
Szia!
Elképzelhető, hogy olyan tartományokat határoz meg, amelyek nem egybefüggőek, ezért nem tudja törölni. Bár akkor hibával meg kellene állnia.
A Range("A1") az első cella a munkalapon.
A CurrentRegion az A1 cella körüli összefüggő tartomány, amelyet egy üres sor és egy üres oszlop határol.
A Columns(5) ennek a tartománynak az 5. oszlopa. Ebben keressük az üres cellákat és rendeljük hozzá az egész sort.Talán érdemes megpróbálni így:
Sub Sortorles2()
Dim ures As Range, terulet As Range
Set ures = Range("A1").CurrentRegion.Columns(5).SpecialCells(xlCellTypeBlanks).EntireRow
For Each terulet In ures.Areas
terulet.Delete
Next
End SubDe problémát okozhat még esetleg az összevont cellák létezése is.
Persze ha túl nagy a terület, amit használsz, akkor lassú lehet a törlés így is.
Üdv.
-
Fferi50
Topikgazda
válasz
RAiN91 #40735 üzenetére
Szia!
Az üres cellákat a Range.SpecialCells(xlCellTypeBlanks) metódussal kaphatod meg.
Pl.set ures=Range("A1").CurrentRegion.Columns(5).SpecialCells(xlCellTypeBlanks).EntireRow
A törlés pedigures.Delete
Persze az egész mehet egy lépésben is, a változó hozzárendelése nélkül.
Üdv.
-
-
Mutt
senior tag
válasz
RAiN91 #39101 üzenetére
Szia,
Ezt próbáld ki:
- a javított idő oszlopban van a percre kerekített érték, képlete:
=TÖBBSZ.KEREKÍT(A2;1/1440)
- a különbség oszlop A és B közötti eltérés, abszolút értékkel, képlete:=ABS(B2-A2)
- a legkisebb eltérés megnézi, hogy az adott időpontnál melyik a legkisebb eltérés, képlete:=MINHA(C:C;B:B;B2)
- a végső idő pedig ezek alapján próbálja kitalálni hogy az eredeti vagy a kerekített idő kell, képlete:=HA(C2=D2;B2;A2)
üdv
-
Mutt
senior tag
-
Prancz
csendes tag
válasz
RAiN91 #38391 üzenetére
Közben úgy néz ki kezdek rájönni egy lehetséges hibára. Az eredeti anyagban az összes hívószámnál hibaként jelzi, hogy "szövegként tárolt szám". Ez micsoda? (Ha az "általánosról" átállítom "szövegre" a formátumot, akkor sem tűnik el a hibajelzés.) Ha nem a saját begépelt adataimmal akarom a cserét elvégezni, hanem az ilyen hibajelzésű fájlokat másolgatom át a "kódszótárba" akkor működik a csere , tehát gondolom ez lehet az előbb jelzett hiba oka. Mit kellene tennem?
-
Fferi50
Topikgazda
válasz
RAiN91 #37649 üzenetére
Szia!
Rendszer beépített lehetőséget nem tudok rá. Viszont minden makró elejére beírhatod, hogy egy cellába beírjon egy szöveget, csak a makró végén ne felejtsd el kitörölni.
Vagy az állapotsort is felhasználhatod a futás jelzésére:Application.Statusbar=Szöveg ' hosszabb programok, ciklusok esetén itt szoktam kijelezni, hol tartunk éppen
Futás közben bármikor átírhatod különböző szövegekkel.
A futás végén pedig:Application.Statusbar=False ' ez visszadja a vezérlést a VBA-nak
Üdv.
-
Delila_1
veterán
válasz
RAiN91 #36971 üzenetére
Mivel sok statisztikai adatról van szó, el tudom képzelni, hogy a felső sorokban (amik már nem változnak) a képletek helyére beillesztheted a az értéküket.
Például a HOL.VAN függvény eredménye az említett példában 3, és ez év végén is annyi lesz. Kijelölöd ezeknek a képleteknek a tartományát, Ctrl+c-vel másolod. Marad a kijelölés, ahogy volt. Jobb klikk, Irányított beillesztés, Értéket.
Csak néhány utolsó sorban hagyd meg a képleteket, a többit írd felül az értékükkel. Jelentősen nő a sebesség, és csökken a fájl mérete. Az értékbeillesztést időről időre végrehajthatod az újabb képleteknél.
-
Delila_1
veterán
válasz
RAiN91 #36969 üzenetére
"Néhány függvény az utolsó celláig le van húzva, 1048576 sorig"
Ilyent még az öregapám sem hallott! Mi az
-nek másolod végig? Mikor lesz 10^6 sorod?!
Készíts az adataid felső 2 sorából táblázatot (Beszúrás menü), majd a jobb alsó sarokban megjelenő kis kék jelet húzd le addig, ameddig kitöltött sorod van. Az alatta lévő TELJES sorokat töröld.
Új adatsor bevitelekor automatikusan nő a táblázatod mérete, és az új sor örökli a fölötte lévő képletet (cellaformázást, érvényesítést).
A milliós nagyságrendű képlet kiszámításához idő kell. A képletek törlésével feltűnően felgyorsul a számolás.
-
Delila_1
veterán
válasz
RAiN91 #36851 üzenetére
Szia!
Másold be a makrót egy modulba (lásd Téma összefoglaló), és indítsd el.
Sub Sortorles()
Dim sor As Long, usor As Long, WF As WorksheetFunction
usor = Cells(Rows.Count, 1).End(xlUp).Row
Set WF = Application.WorksheetFunction
For sor = usor To 4 Step -1
If WF.CountA(Rows(sor)) = 0 And WF.CountA(Rows(sor - 1)) = 0 And _
WF.CountA(Rows(sor - 2)) = 0 And WF.CountA(Rows(sor - 3)) = 0 Then
Rows(sor).Delete Shift:=xlUp
End If
Next
End Sub -
Pakliman
tag
válasz
RAiN91 #36789 üzenetére
Sub TEST()
Dim c As Range, r As Range
Dim output As String
Dim fn As String
Dim bOk As Boolean
Dim i As Long
For Each r In Range("B69:D1870").Rows
For Each c In r.Cells
output = output & "," & c.Value
Next c
output = output & vbNewLine
Next r
fn = "text"
bOk = False
Do
If Dir("D:\" & fn & ".txt") <> "" Then
i = i + 1
fn = "text" & i
Else
bOk = True
End If
Loop Until bOk
Open "D:\" & fn & ".txt" For Output As #1
Print #1, output
Close
End Sub -
-
Fferi50
Topikgazda
válasz
RAiN91 #35730 üzenetére
Szia!
Nagyjából értem, hogy mit szeretnél. Nem tudom, mennyit és miért kellene várni a törléssel, de az
Application.Ontime metódust és a hozzá kapcsolódó helpeket, megoldásokat nézd meg légy szíves. Szerintem ez lesz neked jó megoldás.
Itt lehet időzíteni makró futásokat, közben pedig minden más Excel makró futhat. Arra viszont vigyázni kell, hogy ezt le kell állítani, mielőtt kilépsz a programból.Üdv.
-
Fferi50
Topikgazda
válasz
RAiN91 #35728 üzenetére
Szia!
Nem tudom, hogy mire gondolsz.
A VBA-ban az utasítások végrehajtása abban a sorrendben történik, amelyikben leírtad a makróban.
Feltételekkel szabályozhatod, hogy mikor hajtódjon végre egy sor, pl. a te If then szerkezeted azt írja elő, hogy az utána következő 2 sor csak akkor hajtódjon végre, ha a megjelölt cella tartalma OK. Ha nem ez a tartalma, akkor a két sor kimarad és az End If sor után folytatódik a makró végrehajtása.
Ezen kívül lehet még ciklusokat szervezni, ha valamit többször kell végrehajtani, továbbá vannak ugrási lehetőségek és meghívható másik makró vagy függvény - és ez még korántsem a teljes fegyvertár.Jó lenne, ha pontosabban megfogalmaznád a kérdésed.
Üdv.
-
lenkei83
tag
-
föccer
nagyúr
-
sztanozs
veterán
válasz
RAiN91 #35205 üzenetére
Amennyiben szigorúan (szám) 1,2,3, akkor:
=CHOOSE(A1,"X","Y","Z")Bocsánat
=CHOOSE(A1,"y","x","z")
Egyébként (pl szöveg - vagy akármi - "1", "2", "3" -> "y", "x", "z"):
=CHOOSE(MATCH(A1,{"1","2","3"},0),"y","x","z")
És az egészet be lehet tenni egy IFERROR-ba, hogy a lehetséges kivételeket lekezeljük:
=IFERROR(CHOOSE(MATCH(A1,{"1","2","3"},0),"y","x","z"),"Nem 1, 2 vagy 3")
-
poffsoft
veterán
válasz
RAiN91 #34393 üzenetére
mergearea tulajdonság.
[link]
gúgli 2. találat.A
B4:B11
range értékének lekérdezése:Range("B4").Value
Range("B4:B11").Cells(1).Value
Range("B4:B11").Cells(1,1).Valueszemély szerint én ezt preferálom:
Range("B4").MergeArea.Cells(1,1).Value
esetleg ez:Range("B4:B11").Item(1).Value
-
Fferi50
Topikgazda
válasz
RAiN91 #34103 üzenetére
Szia!
Itt is le kell állítani az eseménykezelést. Az első For elé be kell írni:
Application.EnableEvents=FalseAz End Sub elé pedig:
Application.EnableEvents=True
A második Next elé beírnám DoEvents. Ez arra szolgál, hogy le tudd állítani a programot a Ctrl+Break gombbal, ha már nagyon sokáig menne.
Üdv.
Új hozzászólás Aktív témák
Hirdetés
- sziku69: Szólánc.
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Milyen notebookot vegyek?
- SD-kártyát vennél? Ezért ne csak a GB-ot nézd! – Tech Percek #9
- Stellar Blade
- Kerékpárosok, bringások ide!
- Gyúrósok ide!
- Xbox tulajok OFF topicja
- További aktív témák...
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Új, bontatlan World of Warcraft gyűjtői kiadások
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most kedvező áron!
- Gyermek PC játékok
- Napi 700 ft tól elvihető RÉSZLETRE BANKMENTES HP 840 G11 Ultra 5
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- Konzol felvásárlás!! Xbox Series S, Xbox Serries X
- Csere-Beszámítás! Asus Rog Strix RTX 3070Ti 8GB GDDR6X Videokártya!
- Bontatlan SteelSeries QcK 3XL egérpad
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest