-
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
-
Declare
őstag
válasz
Fferi50 #40423 üzenetére
juhuuuu
köszi szepen! Müködik.
Viszont van egy anomalia, amire nem tudok rájönni
Ez a kód:
(lenyege röviden: a "Tab1" munkafüzet C oszlopaban a "Tab2" munkafüzet nevenek (mindig egy datum, pl 15.03.19) megfelelö datumokat kikeresi. Ha talalal egy egyezöt, akkor kimasolgatja a "Tab1" munkafüzetben a datum soraban talalhato adatokat a "Tab2" munkafüzet megfelelö cellaiba.A teszt közben, akarmilyen 2019 es datummal teszteltem, lefut szuperül. 2018 as datumok közül viszont a többseggel nem müködik. Van amivel lefut jol, viszont a legtöbb tesztelt datummal egyszerüen nem fut le, mintha nem lenne a keresett datum a cél munkafüzet C oszlopaban. Pedig ott van es ugyan ugy van formazva. Az egesz C oszlop datumkent van formazva.
Egy pl: munkafüzet neve 15.03.19 => lefut es szuper.
10.12.18=> nem fut le (mintha nem talalna, de van)
09.10.18=> lefut es szuperNa erre mondjatok nekem valami magyarazatot es megoldast legyszi, mert total passz a kerdes. Ha viszont a makro hol müködik hol nem, ugy nem sok ertelme volt az egesz eddigi munkamnak vele
Sub Aktualisieren_Tagebuch()
Dim c As Range
Dim OK As Variant
Dim iZähler As Integer
Dim Tab1 As String
Dim Tab2 As String
Tab1 = "Bautagebuch"
Tab2 = ActiveSheet.Name
OK = Tab2
Application.ScreenUpdating = False
iZähler = 15
With Worksheets(Tab1).Range("C1:C500")
Set c = .Find(DateValue(OK), LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Sheets(Tab1).Select
Range("B" + Trim(Str$(c.Row))).Select
Selection.Copy
Sheets(Tab2).Select
Range("A" + Trim(Str$(iZähler))).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets(Tab1).Select
Range("A" + Trim(Str$(c.Row))).Select
Selection.Copy
Sheets(Tab2).Select
Range("B" + Trim(Str$(iZähler))).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets(Tab1).Select
Range("I" + Trim(Str$(c.Row))).Select
Selection.Copy
Sheets(Tab2).Select
Range("D" + Trim(Str$(iZähler))).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets(Tab1).Select
Range("E" + Trim(Str$(c.Row))).Select
Selection.Copy
Sheets(Tab2).Select
Range("E" + Trim(Str$(iZähler))).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
iZähler = iZähler + 1
Sheets(Tab1).Select
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
Sheets(Tab2).Select
Application.ScreenUpdating = True
End Sub -
EmberXY
veterán
válasz
Fferi50 #40422 üzenetére
Szia!
Köszönöm szépen, ez tökéletesen működik.Viszont olyan kérdésem lenne, hogy ezt a formázást lehet-e valahogy másolni? A cellák, amiket formázni kellene, egy oszlopban vannak, és mindegyiket szeretném az adott sor adatainak megfelelően formázni, ez megoldható valahogy, vagy csak egyenként?
-
Declare
őstag
válasz
Fferi50 #40413 üzenetére
Meglett a hiba
(kettö gomb volt es az egyiknel atirtam az "After"-os valtozatra, a masiknal nem. AMikor probalgattam a gombokat a masodik gombnal nem müködött, csak ez nem tünt fel, hogy csak az egyikkel van a baj.)
A kereses es kigyüjtesre majdnem megvan a megoldas:
Dim c As Range
Dim OK As Variant
Dim iZähler As Integer
Const Tab1 = "Bautagebuch"
Const Tab2 = "13.03.19"
Sub suchen()
iZähler = 5
With Worksheets(Tab1).Range("C1:C500")
OK = Application.InputBox("Wonach soll gesucht werden? ")
Set c = .Find(OK, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Range("A" + Trim(Str$(c.Row)) + ":G" + Trim(Str$(c.Row))).Select
Selection.Copy
Sheets(Tab2).Select
Range("A" + Trim(Str$(iZähler))).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
iZähler = iZähler + 1
Sheets(Tab1).Select
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End SubA baj, hogy en datumot szeretnek keresni, de ha datumot beirom az inputboxba, nem törtenik semmi
. Ha mas oszlopban keresek (nem a C ben, hanem mondjuk A ban) es ott beirok egy nevet, azzal tökeletesen müködik. Valami itt a datum formatum dologgal lesz szerintem, de nem tudom, hogy mi
Ötlet valakinek?
-
-
ityam
őstag
válasz
Fferi50 #40334 üzenetére
Az a táblázatom már nincs meg amiből a fotót csináltam ide, mert azt csak azért csináltam hogy leellenőrizzem hogy ha én külön kézzel beírom azokat a számokat, amik a táblázatomban vannak akkor is rosszul jön e ki.
Alapból egy pivot táblában jelennek meg ezek a hosszú tizedesek és csak 2 tizedesig jelenítem meg abban, de az érték a checkbox kipipálása után is hosszú.A pivot táblából fkeressel keresek ki értékeket egy másik táblázatba és az fkeres által adott eredmények is sok tizedesjegyűek lesznek.Azokat az értékeket meg 0 tizedesjeggyel formázom így a kerekítéses után már végülis mind1. Nem tragikus csak nem szeretem ha nem értem mi miért van.
Csak fura volt nekem hogy nem tud helyesen összeadni az excel ezért gondoltam rákérdezek. -
Ronyman
aktív tag
válasz
Fferi50 #40185 üzenetére
Szia!
Köszönöm a választ, de ezzel az a baj, hogy az adatbázisban jóval több név szerepel! Mondjuk esetleg le lehet szűrni ez igaz.... Egyébként ha a nehezebb megoldást választanám, akkor tudsz ebben segíteni?
Szeretek mindent tudni
A másik dolog, hogy nem csak a szerződő fél adatait kellene kiszedni, hanem egy másik táblázatból azt is, hogy ki az ügyintéző és annak az adatai stb. Tehát ha ezt így meg akarnám csinálni egy külön szerződés táblába, akkor másolgatni kellene több táblából egy táblába... és ezt napi rendszerességgel többször.... -
BullZeye
veterán
-
dellfanboy
őstag
válasz
Fferi50 #39948 üzenetére
excel-ben kb minden honapra levetitve 150-300k sor. ezt akarnam 1 excelbe bemasolni, viszont ha igy csinalom, a file amit krealok eleg nagy lesz (tobb szaz mb) es megnyitni is eltart jo par percig. erre keresek egy gyorsabb szebb megoldast, viszont az end userek meg csak excel-hez ertenek, szoval hiaba raknam access-be be kene tanitani oket.
a power pivot-ot neztem, hogy keszitek a havi excel imputokbol csv-t es azt beolvasom power pivottal mint adatbazis, csak mivel meg nem csinaltam ilyet nem tudom van-e jobb /gyorsabb/elegansabb modja, ill meg tudnam-e sporolni a csv gyartast?
sorry most nezem ceges gepen a power query nem tamogatott...
-
friccccc
tag
válasz
Fferi50 #39923 üzenetére
Szia
eseménykezelést hogy/hol kapcsolom ki/be ?
hol tudom megnézni h ki van e kapcsolva?
a kiíratás így történik:
Private Sub Worksheet_Calculate()
Dim i As Integer
Application.EnableEvents = False
For i = 1 To 100 Step 2
If Cells(i, 90) <> Cells(i + 1, 20) And Cells(i + 1, 20) <> "" Then
Cells(i, 90) = Cells(i + 1, 20)
End If
Next
Application.EnableEvents = True
End Sub -
válasz
Fferi50 #39168 üzenetére
Kösz , jó lett , de ez az fkeres nekem olyan zavaros kicsit.
A kérdésem az lenne hogy lehet korlátozni egy adott oszlopban vagy pár cellában a beírható ertek mennyiségét?
Konkrét példával gondolok itt arra hogy azt akarom h pl. a B3-B8 oszlop tartományba csak 1 db érték szerepelhessen , azaz ha pl a B5-ben van 23 , akkor a többi 5 cellába tiltsa meg az excel hogy adatot lehessen beírni. -
friccccc
tag
válasz
Fferi50 #39266 üzenetére
Szia
igen én is így terveztem elméletben , de ezt h tudom megvalósítani? excelben melyik fv-t használnád (és h)?
vba ban elvileg megy( h ha ok a cella akkor +1), bár ugye amíg ok ott van addig folyamat hozzáad? így belegondolva azt is segíthetnél, h h oldanád meg .
Nagyon köszi! -
fogtunder
nagyúr
válasz
Fferi50 #39253 üzenetére
ezeken az optimalizációkon már túl vagyok, mert ezek a régebbi verziónak is be tudták tenni a kaput, nincsen sok erős terhelést adó függvény, a hálózat gigabit LAN, de amúgy lokális file-okkal, amiben csak pár kilobyte adat van, képletek nélkül ugyanez történik.
számomra egyértelműen a UI a ludas.
-
friccccc
tag
válasz
Fferi50 #39187 üzenetére
Igen köszi nagyjából meg is van. Talán a hiba az, hogy : - ?Range("CS10").Value
- Error 2007
CS10 es cellában egy átlag képlet van( =ÁTLAG(CR10R68)), amibe csak bizonyos idő elteltével kerül érték automatikusan. Talán nem a .Value a megfelelő VBA-ban ?
Köszi a segítséget! -
-
kezdosql
tag
válasz
Fferi50 #38963 üzenetére
Pocsek lett, mert a szokozoket torolte a forum.
Megprobalom igy betenni, hatha...:
Csakazertse akarja, akkor a tabulatorok helyett " jeleket teszek:indulo (csak egy oszloppal):
datum A
01.01
01.02 A-11: a
01.03
01.04 A-12: c
01.05 A-13: b
01.06 A-11: b
01.07 A-11: c
01.08(Azaz a cellaban akkor van szoveg, ha tortent valami, az elso 4 karakter a teljes kod, utana csak a,b,c betukkel jeleztem, hogy rovid szoveg jon.)
vegeredmeny (3 oszloppal, az elozo oszlop cellai elejen levo 4 karakter uj oszlopokba kerul):
datum A-11"" A-12"" A-13
01.02 a
01.06 b
01.07 c
01.04 """""""""c
01.05 """"""""""""""""b -
friccccc
tag
válasz
Fferi50 #38930 üzenetére
3 munkalapom van Excelben.
VBA-n mindegyiken az előbb küldött formában vannak a makrók. Ha elindítom az exelemet, nem kell semmit csinálni, fut magától, de mindig csak azon, amelyik munkalap épp aktív (amit látok). A 2.-on, 3.-on nem megy semmi ilyenkor. Azt szeretném, hogy menjen ilyenkor a 2-3-on is.
(nem én írtam az excelt sajnos)
Itt egy kép, Munka1, Munka2, Munka3, mindegyiken ugyan azok a kódok vannak, ami a képen. (Worksheet Calculate és Worksheet SelectionChange-re gondolok)
-
friccccc
tag
-
ny.janos
tag
válasz
Fferi50 #38924 üzenetére
Szia!
Olvastam amit írtál.
Fogalmam nem volt, hogy ez lehet a hiba. Hozzáteszem, hogy látom kollégáimnál is, hogy egyesek a képleteket rendszerint + jellel kezdik = jel helyett, de mivel én sosem használtam így, nekem nem is volt logikus, hogy itt keressem a hibát. (Persze érthető a + jel használata, hisz az "egykezes" a magyar billentyűzeten.)
-
dm1970
aktív tag
-
GreenIT
tag
válasz
Fferi50 #38853 üzenetére
Itt egy pelda, csak gyorsan, mert most fennforgas van:
Ezek vannak:
K munkalap:
K A1 A2 A3
1 45 8 9
2 23 3 4
3 56 4 3
4 7 2 3
5 8 6 2P munkalap:
P A1 A2 A3
1 2 1 1
2 4 2 2
3 5 4 1
4 6 5 1
5 9 3 1S munkalap:
S A1 A2 A3
1 1 7 9
2 1 3 7
3 1 4 7
4 2 4 5
5 2 3 6Ezt kell produkalni M munkalapra:
M A1 A1 A1 A2 A2 A2 A3 A3 A3
- K P S K P S K P S
1 45 2 1 8 1 7 9 1 9
2 23 4 1 3 2 3 4 2 7
3 56 5 1 4 4 4 3 1 7
4 7 6 2 2 5 4 3 1 5
5 8 9 2 6 3 3 2 1 6 -
molnarbalazs
csendes tag
válasz
Fferi50 #38796 üzenetére
szia.
tehat a kriterium az, hogy
- adott munkaadónál
- adott ember
- ha Alkalmisakkor egymást követő 5 napon (naptári nap) túl nem lehet.
Azaz nekem ezt kell figyelni a tablazatban, hogy ha egy alkalmival bejelentett munkavallalo 1 munkaadonal mar 5 napot dolgozott folyamatosan (naptari nap, lehet szombat vasarnap barmi, csak egymast koveto legyen, tehat +1gyel vizsgalhato), akkor a 6. napra mar masik munkaadohoz kell bejelentenem.
azaz az 5. napon jelezze a tabla.
ha megszakitva az 5 naptari napot (pl: augusztus 4-en, 5-en 6-an dolgozik, 7-en nem, akkor 8adikat ujraindul az 5 nap vizsgalata).
(illetve van meg1 egyszerusitett foglalkoztatasi kriterium, hogy adott honapban 15 ledolgozott napnal tobb szinten nem lehet egy munkaadonal, de ezt mar megoldottam, vizsgalom)
-
South Velen
addikt
válasz
Fferi50 #38754 üzenetére
Köszönöm szépen!
Működik, ha rámegyek a fx gombra, a megfelelő eredményt jeleníti meg.
Viszont a cellában #VALUE hibát dob, ha pedig elhúzom, akkor a többi cellában 0-t. Ez teljesen érthetetlen számomra.
Pedig ha rámegyek a fx-re, (akár a value hibás, akár a 0-s cellákban) ott van a jó megoldás az fx ablakban. Mi az istenért nem írja ki akkor a cellába?
-
p5quser
tag
válasz
Fferi50 #38729 üzenetére
Üdv!
Köszönöm rágódásod a témán, ez egyszerűbbnek tűnik a youtuber megoldásánál, amit Mutt linkelt.
Az a baj ezekkel az exceles mókákkal, hogy nagyon könnyúek. Egyszerűen kipottyannak a fejemből...
Ha elakadok, visszatérek.
Mégegyszer köszönöm mindkettőtöknek a segítséget! -
MCMLXXXII
tag
válasz
Fferi50 #38679 üzenetére
If Target.Column > 4 And Target.Row Mod 2 = 0 Then
Application.EnableEvents = False
If Target = "" Then
Target.Offset(1) = ""
Else
If IsNumeric(Target) And Target.Count = 1 Then
Target.Offset(1) = Format(Now, "yyyy.mm.dd h:m")
Target.Offset(1).Locked = True
Columns(Target.Column).EntireColumn.AutoFit
End If
End If
Application.EnableEvents = True
End If -
ny.janos
tag
válasz
Fferi50 #38636 üzenetére
Szia!
Az olvasás és szövegértésem úgy tűnik nulla. A képlet működését már kitapasztaltam, csak kissé félreértelmeztem a mondatodat. Azt hittem, hogy jelen állapotában is korlátozottan működik, de most már látom, hogy az "ezt is kiszűri" résszel pont azt írtad, hogy így jó, ahogy van.
Legközelebb megpróbálom értelmesen (hátha sikerül
) elolvasni az írtakat, mielőtt feleslegesen kérdezek.
-
FSR-27
csendes újonc
válasz
Fferi50 #38629 üzenetére
Szia,
Köszi szépen!
Az lenne a kérdésem, hogy egy tömb csak egymást követő cellákból állhat vagy különböző helyeken is lehetnek. Annyit tudok, hogy vízszintesen ponttal függőben pedig pontosvesszővel jelöljük. Van ennek az általatok ismert nyelvnek olyan formátuma amivel külön cellákat tudok tömbnek jelölni?Tibi
Új hozzászólás Aktív témák
Hirdetés
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - NYÁRI AKCIÓ!
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most kedvező áron!
- Azonnali kézbesítés az év bármely pillanatában
- BESZÁMÍTÁS! MSI Z390 i5 9400F 16GB DDR4 512GB SSD RTX 2060Super 8GB Corsair Carbide Series 200R 600W
- Billentyűzet magyarosítás magyarítás lézerrel is! 10-15ezer közötti áron! Óriási betűkészeletünk van
- Csere-Beszámítás! Intel Core I9 14900KS 24Mag-32Szál processzor!
- Csere-Beszámítás! Asus Tuf RX 9070 XT 16GB Videokrátya! Bemutató darab!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest