- Gaming notebook topik
- ZIDOO médialejátszók
- AMD Navi Radeon™ RX 9xxx sorozat
- Probléma DVD/CD íróval
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- A Windows 11 nem akarja ránk erőltetni az AI applikációkat – vagy mégis?
- Épített vízhűtés (nem kompakt) topic
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- HiFi műszaki szemmel - sztereó hangrendszerek
- Milyen TV-t vegyek?
-
PROHARDVER!
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
-
A hivatalos Excel (XML) szabványban benne van a rendes sor/oszlop alapú formázás, de plusz számítási igény miatt sajna ezt nem használja az excel (illeve, ha van valami módosítás, akkor a cella alapú formázás a fallback)... Azért hasznos is tud lenni a feltételes formázás.
Most is épp egy többszörös szűrés alapú kiválasztásos workseet-et kellett összedobnom, ahol named range alapú (erősen számolós) feltételes formázás van. Enélkül egyszerűen nem lehet rendesen kitölteni a munkalapot. -
Louro
őstag
válasz
sztanozs
#29798
üzenetére
Sokan sorokat és oszlopokat formáznak. Duuuurva.
Feltételes formázás esetén is általában sort vagy oszlopot jelölnek meg.Ezek olyan durván hazavágják, hogy rossz nézni. 20-30 megás fájlt megnyitva majd értékként átmásolva az adatokat és lementve sokszor nem felére, fél megákra le tudom csökkenteni a fájlméreteket. Színezésnek van előnye, de sajnos hátránya is és elég sokan úgy használnak Excel-t, hogy igazából szájhagyomány útján tanulták. Egy-egy gyorstalpalós tanfolyam sokat segítene az irodistákon. Néha hányni is tudnék a színkavalkádokon.
-
válasz
baderoli
#29795
üzenetére
Ezek mind okozhatnak jelentős fájlméret növekedést:
- formázás (főleg az új excelben, nagyon sok sor és oszlop van)
- sok pivot tábla (minden pivot tábla számára az excelben van egy kis "mini adatbázis")
- named range (gyakorlatilag a range értékeinak másolata még egyszer a táblűban)
- rejtett mezők/munkalapok (bármi lehet bennük/rajtuk)
- beillesztett képek vagy objektumok (ezek lehetnek akármekkorák) -
Louro
őstag
válasz
zulu_mester
#29796
üzenetére
Az igazat megvallva én nem értem. Ha az kell, hogy miképp lehet azt megmondani, hogy melyik szám mennyiszer került kihúzásra, akkor COUNTIF/DARABTELI függvénnyel könnyen előállítható.
Csinálsz egy 1-90-ig egy listát az M oszlopba. N oszlopba pedig, az 1-es mellé: =DARABTELI(itt jelöld ki az 5 oszlopot, amiben a húzott számok vannak;kattints az 1-es értéket tartalmazó cellára) Majd másold lefelé a függvényt és meglesz.
-
zulu_mester
tag
Sziasztok!
Abban szeretném a segítségeteket kérni, hogy egy adott adathalmazból (1957-2012 közti heti lottószámok) hogyan lehet tól-ig intervallumokat meghatározni? Milyen függvény/képlet van rá excellben?
Előre is köszönöm! -
baderoli
tag
Sziasztok! Sajnos nem találtam megoldást a fileméret duplázódására a neten. Esetleg valakinek ötlete?
-
Chase
tag
válasz
m.zmrzlina
#29782
üzenetére
THX

-
bsh
addikt
válasz
Sátán44
#29781
üzenetére
valami ilyesmi?
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Column > 2) And (Target.Column < 25) And (Target.Row > 2) And (Target.Row < 28) Then
If (XCount(Me.Range(Cells(Target.Row, 3), Cells(Target.Row, 25))) > 2) Or (XCount(Me.Range(Cells(2, Target.Column), Cells(28, Target.Column))) > 2) Then
Target.Value = ""
MsgBox ("Már van két X az adott sorban vagy oszlopban!")
End If
End If
End Sub
Private Function XCount(XRange As Range) As Long
XCount = 0
For Each Cell In XRange
If Cell.Value <> "" Then XCount = XCount + 1
Next
End Function -
m.zmrzlina
senior tag
Rossz hírem van, a 2013-as Office-ból kivették ezt az opciót.

-
Delila_1
veterán
válasz
Szicskeee
#29778
üzenetére
A másik lapon (Munka2) lévő gomb click eseményébe írd be azt, amit az elsőn lévő gomb eseményébe írnál.

Private Sub CommandButton2_Click()
Sheets("Munka1").Range("A1") = "asdf"
End SubAz első lap gombjának az eseménye is tartalmazhatja ugyanezt, csak ott a lapra történő hivatkozást felesleges megadni.
-
Delila_1
veterán
válasz
Szicskeee
#29773
üzenetére
Private Sub CommandButton14_Click()
Dim iRet As Integer
Dim strPrompt As String
Dim strTitle As String
strPrompt = "Ki szeretnéd nyomtatni xyz prémium adatlapját??"
strTitle = "Prémium"
iRet = MsgBox(strPrompt, vbYesNo, strTitle)
If iRet = vbNo Then
MsgBox "Vége!"
Else
Worksheets("Prem1").Range("$A$1:$O$39").PrintOut Copies:=1, Collate:=True
End If
End SubSzerk: elkéstem.
-
bsh
addikt
-
Szicskeee
tag
Private Sub CommandButton14_Click()
Dim iRet As Integer
Dim strPrompt As String
Dim strTitle As String
strPrompt = "Ki szeretnéd nyomtatni xyz prémium adatlapját??"
strTitle = "Prémium"
iRet = MsgBox(strPrompt, vbYesNo, strTitle)
If iRet = vbNo Then
MsgBox "Vége!"
Else
Worksheets("Prem1").Activate
Range("A1:O39").Select
Selection.PrintOut Copies:=1, Collate:=True
End If
End SubValai meg tudja mondani miert kapok hibat Range("A1: O39").Select -nel?
Annyi a lenyeg, hogy 1 masik sheet-rol akarom kinyomtatni A1: O39 ig a cellakat.
Probalkoztam mar azzal is, hogy a masik sheeten (Prem1) csinaltam egy nyomtati gombot. es itt az else be ezzel a parancsal : Call Prem1.CommandButton1_Click meghivtam de az is hibat adott. -
bteebi
veterán
válasz
sztanozs
#29768
üzenetére
Vagy csak simán Ctrl+F3-at nyom. Vagy kijelöli a tartományt, és a név mezőbe (bal oldalon, ahol a te screenshotodon az "A1" kiírás látszik) beírja a kívánt nevet, és entert nyom. Ha ugyanitt később rákattint a nyílra, akkor megnézheti az összes elnevezett tartományt.
-
bteebi
veterán
válasz
Delila_1
#29754
üzenetére
Nem kell azonosnak lennie. Nyilván időt veszít azzal, hogy minden sorban a UsedRange széléig megy, de még mindig sokkal jobb, mintha a teljes sort (256 vagy 16384 cella) végignézné. De akár azt is megtehetné, hogy minden sornak megnézi a jobb szélét, és csak addig menne a makró:
oszlopig = Cells(sor, Columns.Count).End(xlToLeft).Column
Persze ha teljesen fix a táblázat, akkor jó (gyorsabb), ha csak a fix tartományok vannak megadva.
-
Chase
tag
válasz
m.zmrzlina
#29763
üzenetére
-
Szicskeee
tag
Sziasztok !
Van 1 gombom ami 1 case-bol all. ennek a vegere szeretnek egy olyat hogy felugordjon 1 ablak es megkerdezze,hogy ki szeretnem nyomtatni a KIJELOLT cellakat vagy nem. Ha pedig igent nyomok akkor nyomtassa ki.
Segitsegetek elore is koszonom.

-
Chase
tag
Újabb fajta Excel-ben (2013) meg lehet azt oldani valahogyan, hogy több file-t egy Excel-ben nyisson meg, mint ahogy a régebbi verziókban (pl: 2007)?
Egylőre ott tartok, hogy ha Open-nel megnyitok egy második file-t, akkor nyit neki teljesen új Excel-t, ahány file kinyitva, mindhez külön menü-sor, külön menü-szalag, stb...
A régi verziókban meg a már futó Excel-en belül nyitott minden file-nak egy új ablakot, és maradt egy menü-sor, egy menü-szalag, stb... -
tzetko
csendes tag
Szia delila
Segítséget szeretnék tőled kérni.
A fügvényvarázslóban hogyan kell leíró szöveget készíteni -
válasz
Sátán44
#29757
üzenetére
T
ök jó hogy megkaptad a makróst isja az nem neked ment
Data validation nekem most egyszerűbb lett - némi megkötéssel:
- Minden óra elé kell a nap
- Kell egy mező amiben az 'x' van és mellette egy ami üres (sárgával alul, a sor eltüntethető)C2-t ki kell jelölni és a következő Named Range-et kézzel létre hozni:
SelectX =IF(COUNTIFS(Sheet1!C$2:C$28,"x",Sheet1!$A$2:$A$28,Sheet1!$A31)<2,Sheet1!$C$31,Sheet1!$D$31)Utána kijelölni az adatmezőket -> Data Validation -> List
=SelectXIgnore blank pipa kivevendő:

-
Delila_1
veterán
válasz
Zimmy88
#29753
üzenetére
Most gyorsabb lesz. Folytatnod kell az elso = 8: ucso = 9: GoSub Atir típusú sorokat.
Az oszlopok törlése részbe a saját törlendő oszlopaidat írd be.Sub mm()
Dim lap As Integer, nev As String, utvonal As String
Dim elso As Long, ucso As Long
utvonal = "D:\kiment\"
For lap = 1 To Worksheets.Count
If Sheets(lap).Range("B1") = "ez kell" Then
Sheets(lap).Select
elso = 8: ucso = 9: GoSub Atir
elso = 12: ucso = 14: GoSub Atir
elso = 16: ucso = 17: GoSub Atir
elso = 20: ucso = 22: GoSub Atir
'*** stb ***
'oszlopok törlése
Range("B:D,F:F").Delete Shift:=xlToLeft
nev = ActiveSheet.Name
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=utvonal & nev & ".xlsx"
ActiveWindow.Close
End If
Next
Exit Sub
Atir:
Range("E" & elso & ":W" & ucso).Copy
Range("E" & elso).PasteSpecial xlPasteValues
Return
End Sub -
Zimmy88
tag
válasz
Delila_1
#29751
üzenetére
Szia!
Köszi a tippet! Kipróbáltam, és lefuttattam a következő makrót. Viszont két dolog kellene még bele:
az egyik, hogy először kijelölje azokat a munkalapokat, amin végre kell hajtani a műveletet (B1 cella ha adott szöveget (pl "ezkell") tartalmaz, csak akkor kell rögzíteni az értékeket és különmenteni a fájlt),
a másik, pedig hogy értékrögzítés után, kimentés előtt ki kellene törölni pár felesleges oszlopot az E és a W közül (oszlop sorszámát tudom megadni).
Más: elég lassan futott a makró, 18-20 másodpercig tartott, mire "kidobott" egy kész munkalapot külön fájlba. Mivel lehetne gyorsítani esetleg? 30-40 munkalapnál ez elég hosszú idő...Sub mm()
Dim lap As Integer, r As Range, nev As String, utvonal As String
Dim terulet As Range
utvonal = "D:\kiment\"
For lap = 1 To Worksheets.Count
Sheets(lap).Select
Set terulet = Range("E8:W9,E12:W14,E16:W17,E20:W22,E25:W30,E33:W35,E37:W39,E41:W43,E45:W46,E49:W50,E52:W59,E62:W67,E69:W72,E75:W76,E81:W82,E85:W90,E93:W95,E98:W100,E102:W103,E105:W105,E107:W109,E112:W117,E120:W120,E123:W124,E129:W130,E132:W132")
For Each r In terulet
Range(r.Address) = r.Value
Next
nev = ActiveSheet.Name
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=utvonal & nev & ".xlsx"
ActiveWindow.Close
Next
End Sub -
Delila_1
veterán
válasz
Zimmy88
#29749
üzenetére
Nem érdemes a teljes sorokat megadni, mert egy halom üres cellán is végig kellene mennie a ciklusnak. Ehelyett területet adj meg.
Sub mm()
Dim lap As Integer, r As Range, nev As String, utvonal As String
Dim terulet As Range
utvonal = "C:\Temp\"
For lap = 1 To Worksheets.Count
Sheets(lap).Select
Set terulet = Range("A4:J4,A9:J11,A16:J16")
For Each r In terulet
Range(r.Address) = r.Value
Next
nev = ActiveSheet.Name
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=utvonal & nev & ".xlsx"
ActiveWindow.Close
Next
End Sub -
Delila_1
veterán
válasz
MCGaiwer
#29748
üzenetére
Az AK3 képlete legyen
=HA(DARABTELI(F3:AJ3;"x")>0;DARABTELI(F3:AJ3;"x");"")
az AL3-é pedig
=HA(DARABTELI(F3:AJ3;"<>x")-DARABTELI(F3:AJ3;"")>0;DARABTELI(F3:AJ3;"<>x")-DARABTELI(F3:AJ3;"");"")
Az AK3-ban próbáltam az egyszerűbbnek tetsző HAHIBA függvénnyel megoldani, de ledolgozott napok esetén az üres string helyett 0 értéket ad.
Figyelj, hogy a többi hónapban a megfelelő területet add meg a képletekben.
-
Zimmy88
tag
Sziasztok!
Egy két lépésből álló feladat gyorsítására szeretnék makrót, de még nem volt időm jobban elmélyedni a témában.
A feladat a következő:
Adott egy excel fájl, sok (30+) munkalappal. Első körben ezek egy részének (a B1 cellában található szöveg alapján szűrhető) megadott sorszámú soraiban a képletet értékre kellene cserélni (tehát nem az egész munkalapon).
A második lépés pedig ezeknek a (részben rögzített értékes) munkalapoknak a kimentése külön excel fájlba, az adott munkalap nevén.Eddigi ismereteim szerint az alábbi részletet raktam össze (nem biztos hogy jó):
Sub SumIfFormulaToValue()
Rows("8:9,12:14,16:17,20:22,25:30,33:35,37:39,41:43,45:46,49:50,52:59,62:67,69:72,75:76,81:82,85:90,93:95,98:100,102:103,105:105,107:109,112:117,120:120,123:124,129:130,132:132").Select
For Each r In Selection.Areas
r.Select
Selection.Formula = Selection.Value
NextEnd Sub
Előre is köszi a segítséget!
-
Delila_1
veterán
válasz
m.zmrzlina
#29746
üzenetére
Jogos! Én is emlékeztem rá, de lusta voltam kikeresni.

-
m.zmrzlina
senior tag
válasz
coldfirexx
#29740
üzenetére
Bocs, de te olvsod is ezt a fórumot, vagy csak írod?

Erre a kérdésedre itt már egyszer megkaptad ugyanezt a választ.

-
bsh
addikt
válasz
bteebi
#29743
üzenetére
sehol nem írta, hogy "időnként működik". ha névütközések vannak, akkor ez sosem fog működni, mivel le sem fordul úgy a program. ha nincs ütközés, akkor lefordítja és akkor mindig működni is fog.
ebből következően ha más fájlban működik ugyanez a kód, akkor ott abban a fájlban a modul neve nem "valasz". -
Delila_1
veterán
válasz
MCGaiwer
#29739
üzenetére
Közben összeállítottam egy egyszerűbbet, egész évre.
Vigyázz, a 2. sorban 2013-as dátumok szerepeltek. Fontos, hogy az aktuálisak legyenek ott a feltételes formázás miatt, ami a hétvégék, ünnepnapok, és áthelyezett munkanapok hátterét adja.
Jövőre a Munka1 lapon át kell írnod a dátumokat, vagy csak folytatnod a listákat a 2016-osakkal.
-
-
bsh
addikt
válasz
coldfirexx
#29736
üzenetére
a modul neve ugyanaz (valasz) mint a változóé.
-
bteebi
veterán
válasz
coldfirexx
#29736
üzenetére
Érdekes. Szemre jónak tűnt, ki is próbáltam, és nekem működött. Mondjuk neked is volt, ahol jó volt...
-
Sziasztok!
Egy VBA kérdésem lenne.
Van egy kódom ami message box segítségével eldönti hogy automatikus vagy manuális lesz a folyamat:
Sub AUTOMANUAL()
valasz = MsgBox("Automatikusan futtatja a riportot?", vbYesNo)
If valasz = vbNo Then
Sheets("ZUTERT").Visible = TrueElse
Sheets("ZUTERT").Visible = False
End If
End SubA probléma hogy a msg boxnal kiakad és a következő hibát dobja:

Másik fájlban ugyanez működik!
Mi lehet a baj?
-
bteebi
veterán
válasz
m.zmrzlina
#29731
üzenetére
Megvan a hiba, bocs. Természetesen user error, méghozzá a hülyébb fajtából B. A 3. sortól kellett volna kezdeni
. A 2. sor üres volt, nem csoda, hogy nem működött. Most már viszont jó
. Ahogy keresgéltem közben a megoldást, legalább annyi kiderült, hogy egy On Error Resume Next nem árt a makróba
. -
poffsoft
veterán
válasz
bteebi
#29730
üzenetére
Option Explicit
Sub kivalaszt()
Dim ar As String, lastrow As Double, lr As Double, sor As Double
lastrow = Sheets("forras").UsedRange.Rows.Count
lr = Sheets("adat").UsedRange.Rows.Count
On Error Resume Next
For sor = 2 To lr
ar = Application.WorksheetFunction.VLookup(Sheets("adat").Cells(sor, 1), Sheets("forras").Range("A1:B" & lastrow), 2, False)
If Err.Number <> 0 Then ar = "'#HIÁNYZIK"
Sheets("adat").Cells(sor, 2) = ar
Next
End Subvalójában nem találja a keresett adatot a vlookup...
-
bteebi
veterán
válasz
m.zmrzlina
#29731
üzenetére
Úgy működik. Lehet, hogy megpróbálom kerülőúton úgy megcsinálni, hogy a képletet írja a cellába (és az majd visszaadja a helyes értéket), de jobb lenne, ha eleve csak az érték kerülne bele.
-
bteebi
veterán
válasz
m.zmrzlina
#29729
üzenetére
Sajnos így is ugyanaz a hiba. Mindenesetre akkor - látszólag - szintaktikailag rendben van, amit írtam. Végiggondolom még egyszer, hogy mi lehet a hiba oka, de egyelőre elég tanácstalan vagyok, mert látszólag szerintem rendben van a kód.
-
m.zmrzlina
senior tag
válasz
bteebi
#29728
üzenetére
Lehet, hogy az adat lapodon lévő néhány cellában van egy-két nem kinyomtatható karakter (pl:szóköz vagy aposztróf). Próbáld ki, hogy lefut-e így:
Sub kivalaszt()
Dim ar As String, lastrow As Double, lr As Double, sor As Double
Dim tiszta As String
lastrow = Sheets("forras").UsedRange.Rows.Count
lr = Sheets("adat").UsedRange.Rows.Count
For sor = 2 To lr
tiszta = Application.WorksheetFunction.Trim(Sheets("adat").Cells(sor, 1))
ar = WorksheetFunction.VLookup(tiszta, Sheets("forras").Range("A1:B" & lastrow), 2, False)
Sheets("adat").Cells(sor, 2) = ar
Next
End Sub -
bteebi
veterán
Sziasztok!
Van egy Excel file két munkalappal ("adat" és "forras"), az "adat" munkalapra szeretnék másolni a "forras" lapról úgy, hogy az "adat" 1. oszlopában lévő érték alapján bemásolok a 2. oszlopba egy értéket a "forras" lap 2. oszlopából, amihez az FKERES-t használnám. Mindkét munkalapon változó nagyságú tartomány van, viszont az "adat" 1. oszlopában szereplő érték a "forras" 1. oszlopában biztos, hogy megtalálható (és csak egyszer).
Sub kivalaszt()
Dim ar As String, lastrow As Integer, lr As Integer, sor As Integer
lastrow = Sheets("forras").UsedRange.Rows.Count
lr = Sheets("adat").UsedRange.Rows.Count
For sor = 2 To lr
ar = WorksheetFunction.VLookup(Sheets("adat").Cells(sor, 1), Sheets("forras").Range("A1:B" & lastrow), 2, False)
Sheets("adat").Cells(sor, 2) = arErre run-time errort kapok (1004): "WorksheetFunction osztály VLookup tulajdonsága nem érhető el." Vajon mi lehet a hiba? Előre is köszönöm a segítségeteket!

-
Fferi50
Topikgazda
válasz
MCGaiwer
#29723
üzenetére
Szia!
"Egy olyan kimutatást kellene csinálnom, ami gombnyomásra összesíti az adott ember egész éves munkanapjait, és mutatja, hogy bizonyos hónapokban mennyit volt távol."
Próbálkoztál már a kimutatással? Nagyon sokféle lehetőséget rejt magában. Excel verzió függő a varázsló, de mindegyikben van (legalábbis 2010-ig).
Oldal mezőnek (vagy szűrőnek) felvenném a dolgozók nevét tartalmazó oszlopot.
Oszlopcimke az év, a hónap és a nap.
Lehet, hogy előtte a "fejléc" sorokat 3 szintűvé kellene tenni az előzőek szerint.De ha felteszel valahova egy pár soros kitalált neveket tartalmazó táblát, biztosan lesz, aki gyakorlati példát is csinál számodra.
Üdv.
-
Maximusz
aktív tag
Sziasztok!
egy elég alap dolog okoz fennakadást számomra, és az a dühítő, hogy nem tudom mi lehet a gond.
A feladat:
A1-es cellában egy időpont: 09:33:33.912
A2-es cellában egy másik időpont: 09:33:34.877a kettő közötti különbségre lenne szükségem másodpercben, de a "=A2-A1*86400" nem működik - szerintetek mivel tudnám ezt megoldani?
köszi
-
Mi ez a kígyó kód? Hibák:
1) használj kód beillesztést
2) miért nem FOR cilkust használsz
3) miért kell hátul tesztelni (igazából nem is hátul, hanem ciklusban, ha elöl is tesztelsz
4) mindent letesztelsz mindennel. Vsz az a probléma, hogy az utolsó tesztelés nem ad vissza semmit, mivel a j. (jé-edik) mezőbe rakod a megjegyzést, nem az i.(í-edik) mezőbe.
5) Dim i, j As Integer - ez csak a j változót deklarálja Integerre, i az Variant lesz.Sub Makró_hasonlító()
Dim i, j
For i = 2 To 833
Do
For j = 2 To 833
If (Cells(i, 1).Value = Cells(j, 6).Value) And (Cells(i, 2).Value = Cells(j, 7).Value) Then
Range("I" & i).Value = "Van egyezés"
Exit Do
End If
Next
Loop While False
Range("I" & i).Value = "Nincs egyezés"
Next
End Sub -
cs_dy
tag
Sziasztok!
Adott egy makró és adatbázis. Az adatbázis:
1. és a 3. oszlopban: pl nevek szerepelnek: De eltérnek.
a 2 és a 4-es oszlopban számok szerepelnek: pl. a nevekhez tartozó nyereményA különbséget akarom megtalálni. Ez a kód lefut de egyenlőre nem csinál semmit. A Cells-ek helyett a Range-el mindenhova "Nincs egyezést" tett.
Mi lehet a megoldása?
Köszönöm előre is a segítséget.
Sub Makró_hasonlító()
Dim i, j As Integer
i = 2
j = 2
Do Until j >= 883
Do Until i >= 883
If (Cells(i, 1).Value = Cells(j, 6).Value) And (Cells(i, 2).Value = Cells(j, 7).Value) Then
Range("I" & j).Value = "Van egyezés"
Else: Range("I" & j).Value = "Nincs egyezés"
End If
j = j + 1
If j >= 883 Then
Exit Do
End If
Loop
j = 2
i = i + 1
If i = 883 Then
Exit Do
End If
Loop
End Sub -
Delila_1
veterán
válasz
lizakattila
#29714
üzenetére
Az
If Target.Column <> 2 Then Exit Sub
sorban a 2 helyett írj 15-öt, és a
Target.Offset(0, -1).Value = Now()
sorban a -1 helyett -14-et.
-
lizakattila
senior tag
Sziasztok!
Kicsit visszakeresve megtaláltam a számomra megfelelő megoldást (egy makró formájában, aminek a lényee, hogy, ha egy adott oszlop adott sorában lévő cellát kitöltök, akkor az A oszlop ugyanazon sorába írja be a most függvényt, és azt ne frissítse):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
If Target.Value <> "" Then
Application.EnableEvents = False
Target.Offset(0, -1).Value = Now()
Application.EnableEvents = True
End If
End SubA kérdésem az lenne, hogy ebben mit kell módosítanom, ha azt akarom, hogy az "A" oszlopba akkor írja be a most függvényt, ha az "O" oszlopban lévő cellába írok be értéket?
-
Makróval a legegyszerűbb:
Sub Feltolt()
Dim s As Worksheet
Dim r(), ix
ReDim r(1 To ActiveWorkbook.Worksheets.Count, 1 To 2)
ix = 1
For Each s In ActiveWorkbook.Worksheets
If s.Type = xlWorksheet Then
r(ix, 1) = s.Name
r(ix, 2) = s.Cells(1, 1).Value2
ix = ix + 1
End If
Next
Set s = ActiveWorkbook.Worksheets.Add(Before:=ActiveWorkbook.Worksheets(1))
s.Range(s.Cells(1, 1), s.Cells(ActiveWorkbook.Worksheets.Count - 1, 2)).Value2 = r
End Sub -
Miv
tag
Sziasztok!
Adott egy kb. 100 munkalapot tartalmazó fájl. A feladatom az lenne, hogy egy új munkalapra kilistázzam a munkalapok nevét, és mindegyik mellé odaírjam pl. az adott munkalap A1-es cellájának az értékét.
Ez így elég ködös, de magyarázom: a munkalapok a dolgozók nevei, rajtuk a jelenléti ívük. Szeretnék egy listát, amin rajta lenne a dolgozók neve (=a munkalap neve), mellette pedig a jelenléti ívén lévő óraszám szumma cellájának (pl. A1 cella) értéke.
Megoldható valahogy? Nem igazán tudom, merre induljak el, amikor nem csak egy konkrét munkalappal akarok dolgozni, hanem sorba kellene venni az összeset, aminek nem tudom a nevét...Minden segítséget köszönök!
miv -
csongi
veterán
válasz
m.zmrzlina
#29705
üzenetére

sztanozs
-
válasz
m.zmrzlina
#29706
üzenetére
Adj hozzá egy E oszlopot (E1):
=(C1>"")*4+(D1>"")*2
és rakd az alábbi sorrendbe
E - csökkenő számsorrend
C - A -> Z
D - A -> Z -
m.zmrzlina
senior tag
Az alábbi tartományt szeretném rendezni a következőképpen. Legfelülre azok a sorok melyeknél C és D oszlopban is van adat, alá ahol csak a C oszlopban van adat, legalulra ahol csak a D oszlopban van adat.
Hogy lehet ezt legegyszerűbben megoldani?

-
csongi
veterán
Sziasztok!
Az alábbit szeretném megoldani.B1 cellába számoltatni
Ha h22= 2.csoport akkor g18*f7, ha h22= 4.csoport akkor g18*f8, ha h22= 6.csoport akkor g18*f9Köszönöm!
-
Delila_1
veterán
válasz
Batistuta7
#29702
üzenetére
Ha jól értem, az első lapra írod be az AC oszlopba a napi állásidőt az egyes gépekhez. Ezeket kell összesíteni a második lapon, ahol az A oszlop tartalmazza a gépek nevét, az első sor pedig a hét napját.
Fontos, hogy a 2 lapon megegyezzen a gépek neve, tehát ha az első lapon P1 a név, a másodikon is az legyen, nem 1.
Az első laphoz rendeltem egy eseményvezérelt makrót. Mikor beírod egy géphez az állásidőt, a második lapon a megfelelő géphez, és az aktuális naphoz beírja az értéket.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WSO As Worksheet, sor, oszlop As Integer
Set WSO = Sheets("Összesítés")
If Target.Column = 29 And Target > "" Then
sor = Application.Match(Cells(Target.Row, 1), WSO.Columns(1), 0)
If VarType(sor) = vbError Then
sor = Application.Match(Cells(Target.Row - 1, 1), WSO.Columns(1), 0)
End If
oszlop = Application.Weekday(Date, 2) + 1
WSO.Cells(sor, oszlop) = WSO.Cells(sor, oszlop) + Target
End If
End SubA második lap J oszlopába betettem egy összesítést.
Nézd meg a csatolt füzetben a cellaformázást az első lap AC; valamint a második lap B:H és J oszlopában. -
Batistuta7
tag
Sziasztok
Kis segítséget szeretnék kérni.
Egy üzembe csináltam egy folyamatnaplót. Az utolsó oszlopban szeretném felvinni mindig az aktuális műszakban a gépek állásidejét. Olyan megoldásra gondoltam hogy ha az állásidő celléjára rákattintok és amit oda beírok az megjelenik ott plusz a kettes munkalapon megjelenik nap szerint egy másik táblázatban is, amiből rögtön egy diagramot is tudnék csinálni.Minden meg tudok csinálni , csak azt nem hogy hogy kell egy olyat cellát létrehoznom amibe ha beírok egy értéket akkor azt a másik munkalapra átírja a megfelelő nap megfelelő sorába.
linkelem a képeket ,úgy érthetőbb mit szeretnék.
előre is köszönöm a segítséget.
1
2 -
m.zmrzlina
senior tag
válasz
coldfirexx
#29700
üzenetére
Szerintem a modulodnak amiben a kódod van az a neve, hogy "valasz". A kódban pedig van egy változó ugyanilyen néven.
Valamelyiket nevezd át!
Új hozzászólás Aktív témák
- Bestbuy játékok
- Gaming notebook topik
- Külföldi prepaid SIM-ek itthon
- ZIDOO médialejátszók
- Ubiquiti hálózati eszközök
- AMD Navi Radeon™ RX 9xxx sorozat
- Probléma DVD/CD íróval
- Vigneau interaktív lokálblogja
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- A Windows 11 nem akarja ránk erőltetni az AI applikációkat – vagy mégis?
- További aktív témák...
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- MS SQL Server 2016, 2017, 2019
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most Ünnepi áron! :)
- Vírusirtó, Antivirus, VPN kulcsok GARANCIÁVAL!
- BESZÁMÍTÁS! MSI B650 WIFI R7 7800X3D 32GB DDR5 1TB SSD RX 9070 XT 16GB Zalman Z1 PLUS GIGABYTE 750W
- iPhone 16 128 GB Plus White - Bontatlan !! www.stylebolt.hu - Apple eszközök és tartozékok !!
- AKCIÓ! Törött Apple iMac 19.2 i5-8500 Radeon Pro 560X 4GB 16GB 256GB SSD 21.5" 4K Retina
- Keresünk Galaxy S24/24+/S24 Ultra/S24 FE
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest











. A 2. sor üres volt, nem csoda, hogy nem működött. Most már viszont jó
. Ahogy keresgéltem közben a megoldást, legalább annyi kiderült, hogy egy



