- Fórumok
- OS, alkalmazások
- Microsoft Excel topic
- (kiemelt téma)
- Megújult mobilos felület, fórumos ráncfelvarrás a PROHARDVER! lapcsaládon
- Eladhatatlannak ítélt CPU-k eladásával javult az Intel node-ok kihozatala
- Az AI átformálja a Peugeot modelljeit is
- Ráműthető a Linux PlayStation 5-re, de csak egy boot erejéig
- Mindenféle környezeti behatásnak ellenállnak az ASUS új TUF tápjai
-
29500 - 29401
54978 - 54001 54000 - 52001 52000 - 50001 50000 - 48001 48000 - 46001 46000 - 44001 44000 - 42001 42000 - 40001 40000 - 38001 38000 - 36001 36000 - 34001 34000 - 32001 32000 - 31901 31900 - 31801 31800 - 31701 31700 - 31601 31600 - 31501 31500 - 31401 31400 - 31301 31300 - 31201 31200 - 31101 31100 - 31001 31000 - 30901 30900 - 30801 30800 - 30701 30700 - 30601 30600 - 30501 30500 - 30401 30400 - 30301 30300 - 30201 30200 - 30101 30100 - 30001 30000 - 29901 29900 - 29801 29800 - 29701 29700 - 29601 29600 - 29501 29500 - 29401 29400 - 29301 29300 - 29201 29200 - 29101 29100 - 29001 29000 - 28901 28900 - 28801 28800 - 28701 28700 - 28601 28600 - 28501 28500 - 28401 28400 - 28301 28300 - 28201 28200 - 28101 28100 - 28001 28000 - 26001 26000 - 24001 24000 - 22001 22000 - 20001 20000 - 18001 18000 - 16001 16000 - 14001 14000 - 12001 12000 - 10001 10000 - 8001 8000 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2023-11-13 08:31 Téma összefoglaló
Új hozzászólás Aktív témák
-
mukibuci
nagyúr
Van egy ilyen nem túl elegáns képletem:
=HA(HIBÁS(FKERES(D20;adattabla!$L$2:$M$10;2))=1;0;FKERES(D20;adattabla!$L$2:$M$10;2))
itt a D20 cellában egy legördülő listában kell kiválasztani az értéket. Alapból nem szerepel semmi a cellában.
kamulibre office-ban simán 0 volt a kapott érték, azonban ms office #hiányzik-ot dob, mert "hiba, nincs elérhető érték". hogyan lehet ezt megoldani? -
poffsoft
veterán
-
poffsoft
veterán
-
twingos
tag
-
lenkei83
tag
Sziasztok!
Van esetleg valakinek valami infója arról, hogy az XLSB file formátumnak van e valami hátránya XLSX vagy XLSM-hez képest?
Köszi
P. -
lenkei83
tag
-
sebi91
csendes tag
2007-et használok
Olyan problémám lenne hogy az excelbe importált adatoknál az egyik oszlopban a költségeket amik nagyobbak mint 999 azokat ilyen formátumban rakja be a cella bal oldalához igazítva 1 000,00 ( gondolom szövegként kezeli). A problémám az hogy a CSERE függvénnyel mindig csak egy intervallumon belül tudok cserélni. A 10 000,00 nél vagy a nagyobb értékeknél már nem tudok az általam létrehozott képlettel cserélni. =HA(Y2>-1;Y2;CSERE(J2;2;1;""))Ebben a képletben a Y2 oszlop adatait HAHIBA fügvénnyel adtam meg úgy hogy ha hibát talál a kerekítés adataiban ami az X oszlopban vannak akkor -5 öt írjon be helyette. Így a szóközös értékeknél -5-ötír ki. Így az egyik intervallumon ki tudom cseréltetni a CSERE függvénnyel. A kérdésem hogy minden intervallumon ami a milliónál vagy a százezreknél jelentkezik azt hogyan tudnám megoldani vagy van-e egyszerűbb megoldás is erre?
(próbáltam *1,számformátummá alakítani,)Előre is köszönöm a segítséget.
-
Delila_1
veterán
-
bara17
tag
Sziasztok!
Kimutatásban, hogyan tudom beállítani azt, hogy a hónapok nevei ne ábc sorrendben jelenjenek meg?
Köszönöm előre is.
-
sedyke
tag
Sziasztok!
Van egy alabbi makrom, amihez meg anno itt kaptam segitseget.
Lenyegeben a kulonbozo munkalapokon levo koltsegszamitasaimbol kereski ki a termekkodokat es sorakoztatja fel egy oszlopban a munkaful nevevel, hogy kesobb egy osszesito tablaban csak a termekkodok kelljen beirnom es fuggvenyekkel kikeresi az adatokat.
Amikor ezt a makrot valaki megirta nekem, akkor mukodott is. Ma ujrafuttattam, hogy az uj termekek is bekeruljenek a listaba, amiket az elmult honapokban csinaltam, viszont nem adja oket hozza a listahoz.
Vajon mi lehet az oka? Elore is koszi a segitseget.Sub termeklistas()
Dim sh As Worksheet, ws As Worksheet, xx As Integer, yy As Integer
Set ws = Sheets("Sheet1")
yy = 1
For Each sh In Worksheets
xx = 1
If sh.Name <> ws.Name Then
Do While True
If sh.Cells(xx, "B").Value = "" Then Exit Do
ws.Cells(yy, "N").Value = sh.Cells(xx, "B").Value
ws.Cells(yy, "O").Value = sh.Name & "!"
ws.Cells(yy, "P").Value = xx - 1
xx = xx + 51
yy = yy + 1
Loop
End If
Next
End Sub -
Belnir
csendes tag
-
twingos
tag
Szia,
Köszönöm a választ.
Szerintem sikerült ismét nem jól fogalmaznom.
Tehát az A oszlop a fix. Ha ott megtalálja az ABC kezdetű szót akkor B oszlopba írja ,hogy ALMA.
Tehát a B oszlop üres, és oda kellene beírnia , hogy ALMA.Bízok benne ,hogy így érthetőbb.
Ismét nagyon köszönöm a fáradozásodat!üdv
-
m.zmrzlina
senior tag
vagy a tartományt e nélkül definiálod
Ez ezt a hibát generálná amit /számomra/ bonyolultabb lenne eliminálni mint megkerülni a problémát.Helyette....
Mi lenne, ha a keresésnél kihagynád az első oszlop celláit Illetve minden oszlop első celláját.
Ez lett a megoldás.
Köszi. -
Delila_1
veterán
-
szatocs1981
aktív tag
Fejléccel:
Sub Makro1()
Worksheets(1).Select
Sheets.Add
Worksheets(1).Name = "Végeredmény"
WS_Count = ActiveWorkbook.Worksheets.Count
Call TiliToli("A", "E", 2, 0)
Call TiliToli("C", "F", WS_Count, 40)
End Sub
Sub TiliToli(Spalte1, Spalte2, ettol, eddig)
For i = 2 To ettol
utolso = Worksheets(1).Cells(Rows.Count, "A").End(xlUp).Row
For szorzo = 0 To eddig Step 8
For sor = 1 To 8
ujsor = sor + szorzo
Worksheets(1).Cells(utolso + 1, sor) = Worksheets(i).Cells(ujsor, Spalte1).Value
If sor <> 1 Then
Worksheets(1).Cells(utolso + 1, sor + 7) = Worksheets(i).Cells(ujsor, Spalte2).Value
End If
Next sor
utolso = utolso + 1
Next szorzo
Next i
End Sub -
twingos
tag
Sziasztok,
Segítséget szeretnék ismét.
Mellékelek egy képet is mellé.
A oszlóban lévő adatok első 3 karakterét figyelve, írja B oszlopba az általam definiált értéket értéket. (Ahol találat van abc-re A oszlopban ott írja B oszlopba,hogy alma)
Próbáltam érthetően fogalmazni.
Megoldható ez függvénnyel?
Köszönöm a segítséget
üdv
-
Fferi50
Topikgazda
Szia!
Mi lenne, ha a keresésnél kihagynád az első oszlop celláit. (Ez megoldható vba-ban offset metódus használatával, vagy a tartományt e nélkül definiálod - a tartomány előtt levő cellára is lehet hivatkozni (!) így pl. tartomány(xsor,0) a tartomány x-edik sorában a tartomány előtt levő cellát adja meg.)
Üdv.
-
poffsoft
veterán
Option Explicit
Public aktualis
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lastrow As Long
Dim akt_lap As String: akt_lap = ActiveSheet.Name
Dim fso As Object
Dim logfile As Object
' If Target.Count <> 1 Then Exit Sub
' If aktualis = Target.Value Then Exit Sub
Application.ScreenUpdating = False
Set fso = CreateObject("Scripting.FileSystemObject")
Set logfile = fso.OpenTextFile("\eleresi_ut\log.txt", 8, True)
logfile.WriteLine ("VÁLTOZTAT" & " - " & Format(Now, "YYYY.MM.DD hh:mm:ss") & " - " & Environ$("username") & " - " & Application.UserName & " - " & Environ$("computername") & " - " & Target.Parent.Name & " - " & Target.Address & " - " & aktualis & " - " & Target(1, 1).Value & " -+")
logfile.Close
Set logfile = Nothing
Set fso = Nothing
Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
aktualis = ActiveCell.Value
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
aktualis = ActiveCell.Value
End Sub -
szatocs1981
aktív tag
Fejléc és hibakezelés még nincs benne, próbáld ki:
Töröld a "Végeredmény" nevü fület, mielött futtatod a makrót!A makró létrehoz az elsö helyen egy "Végeredmény" nevü lapot, majd oda bemásolja az összes többi létezö lapról az adatokat, a megadot szabály szerint!
Sub Makro1()
Worksheets(1).Select
Sheets.Add
Worksheets(1).Name = "Végeredmény"
WS_Count = ActiveWorkbook.Worksheets.Count
For i = 2 To WS_Count
utolso = Worksheets(1).Cells(Rows.Count, "A").End(xlUp).Row
For szorzo = 0 To 40 Step 8
For sor = 1 To 8
ujsor = sor + szorzo
Worksheets(1).Cells(utolso + 1, sor) = Worksheets(i).Cells(ujsor, "C").Value
If sor <> 1 Then
Worksheets(1).Cells(utolso + 1, sor + 7) = Worksheets(i).Cells(ujsor, "F").Value
End If
Next sor
utolso = utolso + 1
Next szorzo
Next i
End Sub -
szatocs1981
aktív tag
-
Roxy27
tag
Na arra közben rájöttem, hogy mit kell megváltoztatni, hogy végignézze a teljes lapot:
For szorzo = 0 To 40 Step 8
Már csak a fejléc hiányzik, meg hogy gombnyomásra az összes sheet kigyüjtődjön automatikusan.
-
Roxy27
tag
Ja már értem miért...
ugye írtam, hogy összesen 48 sor van egy lapon (de én úgy csináltam printscreen-t, hogy 24 látszódik, hogy még olvasható legyen... nem fér egy oldalra és nem akartam kicsinyíteni)
Így igazad van, a 45db-ot kigyűjti... csak 90 kellene
Pont mégegyszer ennyi azaz összesen 6 component és az adatai vannak 1 lapon.
Nem sürgős azért... ha este vagy holnap van időd/kedved, úgy is bőven jó. Csak tényleg úgy lenne értelme, hogy egy makró az összeset egybe összegyűjti automatikusan.
Köszi
-
szatocs1981
aktív tag
-
Roxy27
tag
-
Roxy27
tag
Na most már dolgozik, de még nem okés...
minden sheet-ről csak az első 3 componest gyűjti...
nagy kérés lenne, ha egyszerre összeszedné az összes lapról automatikusan?
(ja és az első lapról mondjuk betenné a felső sorba a megnevezéseket...)Ez a későbbiekben napi feladat lenne, és jó lenne, ha gombnyomásra működne... remélem nem vagyok pofátlan

Előre is nagyon köszi a segítséged!!!! -
szatocs1981
aktív tag
Közben átírtam, mert nem volt jó:
Sub Makro1()
utolso = Sheets("Végeredmény").Cells(Rows.Count, "A").End(xlUp).Row
For szorzo = 0 To 16 Step 8
For sor = 1 To 8
ujsor = sor + szorzo
Sheets("Végeredmény").Cells(utolso + 1, sor) = ActiveSheet.Cells(ujsor, "C").Value
ActiveSheet.Cells(ujsor, "C").Select
If sor <> 1 Then
Sheets("Végeredmény").Cells(utolso + 1, sor + 7) = ActiveSheet.Cells(ujsor, "F").Value
ActiveSheet.Cells(ujsor, "F").Select
End If
Next sor
utolso = utolso + 1
Next szorzo
End SubPage1- lapra "rámész" és futtatod a makrót!
-
Roxy27
tag
Köszi,
beállítottam a Makrót... elindítom, látszik, hogy dolgozik, de nem kerül semmi a "Végeredmény" sheet-re.
Ja, és mit is jelent, hogy egyesével aktiváljam?
Sajnos nem igazán értek hozzá...
Köszi -
szatocs1981
aktív tag
Ezt lefuttatod 36x ( a lapokat egyesével aktiváld):
Idömböl most ennyi futotta erre.Sub Makro1()
utolso = Sheets("Végeredmény").Cells(Rows.Count, "A").End(xlUp).Row
For szorzo = 1 To 3
For sor = 1 To 8
Sheets("Végeredmény").Cells(utolso + 1, sor) = ActiveSheet.Cells(sor, "C").Value
If sor <> 1 Then
Sheets("Végeredmény").Cells(utolso + 1, sor + 7) = ActiveSheet.Cells(sor, "F").Value
End If
Next sor
utolso = utolso + 1
Next szorzo
End Sub -
Roxy27
tag
Sziasztok,
kellene egy kis segítség a következő témában:
van egy termelőgépi program, ahonnan mindenféle statisztikai adatokat szeretnénk feldolgozni. A baj az, hogy ebből a részéből nem lehet exportálni. Viszont pdf creatorba tudjuk nyomtatni, onnan pedig egy excel-be konvertálni. Így viszont cseppet szétkapja a formátumot. Vissza kellene rendezni, de "gyorsan"
Az excel úgy néz ki, hogy laponként rendez:
Minden fülön 6 componet és a látható módon a hozzá tartozó adatok. Ez összesen laponként 48 sor.
Nekünk viszont egy lapra kellene szedetni, ebben a formában:
Tudna erre valaki gyors megoldást?(összesen jelenleg 36db fül van... (esetleg ezt a későbbiekben állítani kellene, vagy tudnia kellene, hogy hány lap van összesen mert ez változó...)
Előre is köszi!!!!

-
m.zmrzlina
senior tag
Azt sikerült megállapítani, hogy a kb 50 tartományból aminek a
Set rng_Akioszt = ws_Kabelo.range(str_Akioszt & "1:" & str_Akioszt & int_usor)
sor a program futása során egy ciklus értéket ad két olyan esetben akad ki, ahol az rng_Akioszt(1,1) értéke egy 256 karakternél hosszabb karaktersorozat. Valamint bármikor reprodukálni tudom a hibát, ha bármely tartomány (1,1)-es cellájában előállítom a fenti feltételt. Gondolom itt a fv valamilyen korlátjába ütközik a feldolgozás.
Az lenne a feladat, hogy ezekben a tartományokban határozzuk meg a legkisebb és a legnagyobb értékeket amik aztán egy számlálós ciklus -tól -ig határai lesznek. Nem feltétlen ragaszkodom munkalapfüggvényes megoldáshoz, megelégszem a legegyszerűbbel is.

-
Belnir
csendes tag
Az if aktualis vizsgálat nem kell, csak fogalmam sincs, hogy mire vonatkozik...

Gyakorlatilag próbálkozom, az általatok adott kódokat fabrikáltam össze, ez működött, de nem 100%-osan. Szóval fogalmam sincs, mi a fölös sor és mi hiányzik.
plusz ha valaki több cellát módosít, töröl egyszerre, arról sincs logod sajnos igen, ez így van.
if target.count
helyett az értéket csak az 1. cellában nézd:
target(1,1).value
?
a writeline végére még beszúrnék egy lezáró "-" -t, hogy látsszon az üres érték is (ami a törlés).
Megtennéd, hogy kipucolod a szemetet és pótlod ami szükséges?
Csak még nagyobb katyvaszt csinálnék 
Köszi!

-
poffsoft
veterán
az if aktualis=
vizsgàlat miért kell?
ha a ws_change eventben vagy, tuti, hogy szerkesztettek, logold.
plusz ha valaki több cellát módosít, töröl egyszerre, arról sincs logod.
esetleg az
if target.count
helyett az értéket csak az 1. cellában nézd:
target(1,1).value
?
a writeline végére még beszúrnék egy lezáró "-" -t, hogy látsszon az üres érték is (ami a törlés). -
4ron
senior tag
-
4ron
senior tag
-
Delila_1
veterán
-
4ron
senior tag
Sziasztok!
Meg van adva 188 darab évszám, X-től Y-ig. A feladat az, hogy a megadott intervallumokon belül megszámoljuk, hány darab évszám felel meg a feltételeknek (minél egyszerűbb módszerrel). A lényeg az, hogy a Darabteli függvénnyel kell megoldani. Mutatnék egy képet róla, mire is gondolok:

Valaki tudna segíteni?
-
PETEE78
senior tag
A dir megoldotta a kérdést

Köszi mindenkinek!
mystring = Format(Now(), "yyyymmdd")
sdateform = Mid(mystring, 3)filename = Dir("X:\Kimeno\221_ALMA_20" & sdateform & "*.*")
oldPath = "X:\Kimeno\"
newPath = "C:\probakonyvtar\" & sdateform
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFile oldPath & "\" & filename, newPath & "\" & filename
Set fs = Nothing -
PETEE78
senior tag
köszi mindenkinek akkor próbálgatom...

-
m.zmrzlina
senior tag
-
Fferi50
Topikgazda
Szia!
A csillag karakterrel keresésben operálhatsz.
Próbáld meg a dir() függvénnyel megnézni, hogy milyen fájlok vannak a keresett helyen:
filename= dir("221_ALMA_20" & sdateform & "*.csv")
Ide beírhatod hozzá az elérési utat is, ha szükséges.
Ha filename="" akkor nem talált olyan fájlt, ami megfelelt a keresési feltételeknek - vagy nem abban a könyvtárban kerestél, amiben a fájl van, vagy egyáltalán nincs ilyen fájl.Utána a filename értékét - ha szükséges, kiegészítve az elérési úttal - már használhatod a megnyitáshoz, mert ott már nem lesznek benne csillag karakterek, hanem konkrét fájlnevet fog tartalmazni.
Üdv.
-
szatocs1981
aktív tag
-
Polllen
félisten
-
PETEE78
senior tag
-
Belnir
csendes tag
-
PETEE78
senior tag
Sziasztok!
Hogy lehet megadni egy fájl nevét, ha csak az elejét ismerem?
Mondjuk addig, hogy: 221_ALMA_20151111........ .csv
A pontozott részen lévő karaktereket nem tudom, csak a kiterjesztést
A 151111 része napi dátum révén változik.mystring = Format(Now(), "yyyymmdd")
sdateform = Mid(mystring, 3)filename = "221_ALMA_20" & sdateform &".csv"
oldPath = "X:\BLABLA\221_A"
newPath = "C:\probakonyvtar\151111"
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFile oldPath & "\" & filename, newPath & "\" & filename
Set fs = Nothing -
Belnir
csendes tag
Felmerült egy probléma. Azt vettem észre, hogy a változást csak akkor logolja, ha semmiről-valamire vagy valamiről-valamire változott az érték. Ha galád módon valaki valamiről-semmire változtat egy cellaértéket, arról nem jön létre a log-sor (magyarán szemétségből valaki töröl egy cellatartalmat, és bemószerolja a másikat).
A kód ilyen:Public aktualis
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lastrow As Long
Dim akt_lap As String: akt_lap = ActiveSheet.Name
If Target.Count <> 1 Then Exit Sub
If aktualis = Target.Value Then Exit Sub
Application.ScreenUpdating = False
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Logfile = FSO.OpenTextFile("\eleresi_utvonal\log.txt", 8, True)
Logfile.WriteLine ("VÁLTOZTAT" & " - " & Format(Now, "YYYY.MM.DD hh:mm:ss") & " - " & Environ$("username") & " - " & Application.UserName & " - " & Environ$("computername") & " - " & Target.Parent.Name & " - " & Target.Address & " - " & aktualis & " - " & Target.Value)
Logfile.Close
Set Logfile = Nothing
Set FSO = Nothing
xit:
Worksheets(akt_lap).Activate
Selection.Activate
Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
aktualis = ActiveCell.Value
End SubMit írjunk még bele, hogy azt is logolja?
-
m.zmrzlina
senior tag
-
csferke
senior tag
Szia!
Kicsit "mélyebben" átnéztem a linket amit küldtél [link] és a következőt találtamPrivate Sub Worksheet_Change(ByVal Target As Range)
''''''''''''''''''''''''''''''''''''''''''''
' Forces text to UPPER case for the range
''''''''''''''''''''''''''''''''''''''''''''
If Target.Cells.Count > 1 Or Target.HasFormula Then Exit Sub
If Not Intersect(Target, Range("C14:J14")) Is Nothing Then
Application.EnableEvents = False
Target = UCase(Target)
Application.EnableEvents = True
End If
End SubEzzel nem kell vizsgálni a bevitt adatokat. A munkafüzetet pedig különben is xlsm-ként kell mentenem.
-
m.zmrzlina
senior tag
Automatikus megoldás:/munkalaphoz rendelve a makrót/
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Target = UCase(Target)
Application.EnableEvents = True
End SubElőnye, hogy a begépelt szöveget <Enter>-re a kívánt formátumra állítja hátránya, hogy .xlsm-ként kell menteni a munkafüzetet.
Feltételes formázásos megoldás:


Itt a usert erőlteted hogy az általad kívánt formátumban vigye be az adatot.
Nem magamtól vagyok ilyen okos innen loptam.

-
Polllen
félisten
-
csferke
senior tag
Sziasztok!
Egy Custom formázás kellene Excel 2007-ben. Azt szeretném, hogy a cellába írt betű, kicsi/nagy mindig nagybetűként jelenjen meg (I/N, Y/N, D/N ...).köszi
-
Bobrooney
senior tag
-
teve27
csendes tag
-
Bobrooney
senior tag
-
teve27
csendes tag
Sziasztok!
Szakértői segítségeteket szeretném kérni az alábbi ügyben:
B oszlopban az szerepel, hogy milyen rendszámú teherautó vett fel árut a C oszlopban szereplő vevő megbízásából. Amit én szeretnék, az megtudni, hogy adott vevőhöz hány darab autó rakodott. Jelen példában a Zsigulihoz két teherautó (AAA-111 és BBB-222) rakodott.
Addig már próbálkozásaim során eljutottam, hogy meg tudom az excellel számoltatni, hogy hány rendszám van az adott oszlopban, de nem sikerült sehogy sem megoldanom, hogy csak az adott vevőhöz tartozó teherautókat számolja meg.
Nagyon köszönöm a segítséget!
-
lenkei83
tag
-
Polllen
félisten
Sziasztok!
Kellene egy kis segítség.
Van egy ~16.000 soros táblázat, amiből ki kellene törölnöm azokat a sorokat, ahol a 4. oszlopban "#N/A" szerepel. A cellák tartalma különböző.
Kipróbáltam ezt, de borzasztóan lassú:
Range("A1").Select
Selection.End(xlDown).Select
lRow = ActiveCell.Row
Do While lRow >= 1
If Cells(lRow, 4).Text = "#N/A" Then Rows(lRow).EntireRow.Delete
lRow = lRow - 1
LoopNem tudtok valami gyorsabb módszert?
B tervnek az jutott eszembe, miközben ezt leírtam, hogy úgy rendezem a táblázatot, hogy az összes "#N/A" sor kerüljön előre, ezután kap egy filter-t és úgy kitörlöm az eredményt.
Mit gondoltok?
-
Fferi50
Topikgazda
Szia!
"Csak akkor miért működik n+1-szer úgy is, hogy nincs kizárva a szöveges cella?" Ezt a kérdést szerintem itt nem fogjuk tudni megválaszolni. Én max arra tudok gondolni, hogy maga a keresési tartomány esetleg valamilyen ok miatt egy cellából áll és abban nem szám van."Először a int_Mincsom, int_Maxcsom változó tipusát állítottam Variantra de nem jutottam közelebb. A leálláskor is szám (1 és 9 ami reális) volt az értéke nem pedig hiba."
Csak az a kérdés, hogy a leállás melyik sorban volt, esetleg az előző értékeket láttad még az adott változókban. Nyilván ezt mostmár nehezen fogod tudni ismételten produkálni....Üdv.
-
m.zmrzlina
senior tag
Köszi a választ. Az az érzésem, hogy hosszas hibakeresésnek nézek elébe.
Először a int_Mincsom, int_Maxcsom változó tipusát állítottam Variantra de nem jutottam közelebb. A leálláskor is szám (1 és 9 ami reális) volt az értéke nem pedig hiba.
Aztán egyszer csak elkezdett működni úgy hogy semmit nem módosítottam a kódon és most is lefut akárhányszor indítom.

Az rng_Akioszt -szerintem- létrejön. Locals ablakban látom, sőt a FormulaR1C1 tulajdonságnál látom az elemek értékeit is. Ha erre gondolsz.
Még egy adalék:
Az rng_Akioszt(1,1) értéke szöveg az összes többi szám. Ha ezt a cellát kizárom a tartományból akkor úgy tűnik lefut a makró hiba nélkül ami logikus is. Csak akkor miért működik n+1-szer úgy is, hogy nincs kizárva a szöveges cella? -
Fferi50
Topikgazda
Szia!
Az "Application.WorksheetFunction.Large((rng_Akioszt), 1)" eredménye hiba akkor, ha nem tudja az adott tartományon végrehajtani a műveletet. Mivel az int_Maxcsom tipusa integer, a hiba értékét nem kapja meg, ezért fut hibára.
Oka: lehetséges, hogy az rng_Akioszt tartomány nem kapott értéket, azaz Nothing az értéke,vagy nincsenek benne adatok. Tehát azt meg kellene nézni, mielőtt a műveleteket elindítod. Vagy
Másik megoldás, hogy a Maxcsom, Mincsom változódat Variant -nak deklarálod és a művelet után megnézed, hogy hiba-e az értéke.Üdv.
-
m.zmrzlina
senior tag
Set rng_Akioszt = ws_Kabelo.range(str_Akioszt & "1:" & str_Akioszt & int_usor)
int_Maxcsom = Application.WorksheetFunction.Large((rng_Akioszt), 1)
int_Mincsom = Application.WorksheetFunction.Small((rng_Akioszt), 1)A fenti értékadást esetenként valami kiakasztja és az int_Maxcsom = stb...stb... sornál Runtime error '13': Type mismatch hibával megáll. A str_Akioszt egy sztring változó és a hiba jelentkezésekor az értéke: "k"
Most vettem csak észre, hogy a ws_Kabelo.range- ben kisbetűs a Range, mintha az excel nem értné, hogy mit akarok.

-
hengelhof
senior tag
-
Belnir
csendes tag
-
Chrisluke
csendes tag
Sziasztok, Excelbe szeretnék fotót beszúrni és azt szeretném ha a szöveg ami a képhez tartozik az a fotó előtt helyezkedne el. Word-ben ez megoldható Excelben azonban nem találom sehol vagy csak nem látom. Előre is köszi.
-
Belnir
csendes tag
-
Vladek83
tag
Sziasztok!
Nyomtatási címek-nél "csak" a felső ismétlődő sorokat lehet megadni, alsót nem? Előre is elnézést a buta kérdésért...

üdv,
-
Márkó20
csendes tag
-
m.zmrzlina
senior tag
-
m.zmrzlina
senior tag
Közben rájöttem (és megint tanultam valamit) hogy a rng_Dkioszt és rng_Akioszt objektumváltozó deklarálásával volt gond. Én azt gondoltam (helytelenül) ha én pl deklarálom - hogy a példáddal éljek -
Set rng_Dkioszt = Range("E2:E15")
tartományt akkor ott pl az E2 cellának a .Row tulajdonsága 1 lesz hiszen abban a tartományban az az 1. sor. Na hát ez nagyon nem így van.
Köszi a választ!
-
Fferi50
Topikgazda
Szia!
A probléma igazából nem probléma (vs: az excelnek mindig igaza van
), szerintem abból adódik, hogy az rng_Tempcell.Row a cellának a munkalapon elfoglalt helyét adja vissza és nem az rng_Dkioszt tartományban elfoglalt helyét -> a két szám csak akkor ugyanaz, ha az rng_Dkioszt tartomány az első sortól kezdődik. Egyébként le kell vonni belőle a tartomány induló sorának számát.Ezen kívül van egy ilyen sorod:
If rng_Tempcell.Value = int_Csomag Then
Ami után jön a következő:
If rng_Tempcell.Value <> "" And rng_Akioszt.Cells(rng_Tempcell.Row, 1).Value = "" ThenSzerintem itt az első feltétel felesleges, hiszen az előző vizsgálatban már megállapítottad, hogy nem üres az rng_Tempcell.
Üdv.
-
Delila_1
veterán
Nálad elég sok változó van, amiknek az eredete nem látható az ábrán.
A lenti makró üzenetet küld, ha a Dkioszt aktuális cellája nem üres, és nem azonos a tőle 2 oszloppal balra lévő tartomány azonos sorával.
Sub mm()
Dim rng_Dkioszt As Range, CV As Range
Set rng_Dkioszt = Range("E2:E15")
For Each CV In rng_Dkioszt
If CV.Value > "" And CV.Value <> Range(CV.Address).Offset(, -2) Then
MsgBox "Eltérés a(z) " & CV.Row & ".sorban"
End If
Next
End Sub -
m.zmrzlina
senior tag
For Each rng_Tempcell In rng_Dkioszt
If rng_Tempcell.Value = int_Csomag Then
If rng_Tempcell.Value <> "" And rng_Akioszt.Cells(rng_Tempcell.Row, 1).Value = "" Then
If Application.WorksheetFunction.CountIf(rng_Csatkimarad, ws_Kabelo.Cells(rng_Tempcell.Row, 1).Value) = 0 Then '
str_kodsor_csatlist = str_kodsor_csatlist & Trim(ws_Kabelo.Cells(rng_Tempcell.Row, 1).Value) & " + "
End If
End If
End If
Next
A fenti programrészlettől a következőket várnám:
-menjen végig az rng_Dkioszt nevű tartomány összes celláján
-ha az rng_Akioszt tartományban a vizsgált cellával azonos sorban különbözőséget talál akkor történjen valamiA probléma, hogy a
If rng_Tempcell.Value <> "" And rng_Akioszt.Cells(rng_Tempcell.Row, 1).Value = "" Then
feltételnél amikor a rng_Tempcell.Value még csak az x-dik sor értékét tartalmazza akkor a rng_Tempcell.Row már az X+1-dik sor számát tartalmazza. Másképpen ha a rng_Tempcell.Value=1 a rng_Tempcell.Row=4. Vagyis nem annak az elemnek az értékét adja vissza amit vizsgál hanem az egyel korábbit.
Mitől lehet ez?
-
bsh
addikt
azért az jelentősen más, nem csak amolyan "átírjuk oszt' jóvan"

itt egy ilyen faék megoldás. az egyszerűség kedvéért a log fájlt először külön hozd létre (egy üres excel fájl) és a megfelelő elérési utat írd bele.
Private Sub Workbook_Open()
Call WriteToLog(Application.UserName, "Megnyitás")
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Call WriteToLog(Application.UserName, "Bezárás")
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Call WriteToLog(Application.UserName, Sh.Name & " változtatás")
End Sub
Private Sub WriteToLog(ByVal Who As String, ByVal What As String)
Dim NewXL As New Excel.Application
NewXL.Visible = False
Dim Log As New Excel.Workbook
Set Log = NewXL.Workbooks.Open("Z:\logfájl\elérési\útja\log.xlsx") 'A fájlt először kézzel hozd létre!
Dim LastRow As Long
LastRow = Log.ActiveSheet.Cells(Log.ActiveSheet.Rows.Count, 1).End(xlUp).Row
Log.ActiveSheet.Cells(LastRow + 1, 1) = Format(Now, "YYYY.MM.DD hh:mm:ss")
Log.ActiveSheet.Cells(LastRow + 1, 2) = Who
Log.ActiveSheet.Cells(LastRow + 1, 3) = What
Log.Save
Log.Close
Set Log = Nothing
Set NewXL = Nothing
End Sub -
m.zmrzlina
senior tag
-
lenkei83
tag
-
sedyke
tag
Sziasztok!
Tudnátok segíteni, a tegnapi képletem egy másik verziójában?
A422:050: HORSEHAIR LARGE BLACK BRUSH (A422) Style: COL: VARIOUS / SZACC: 05.0 /
F245GW11:065: TASSEL LOAFER (F245GW11) Style: COL: BLACK CALF / SZMUK: 06.5 /Ilyen cellatartalmakból szeretném kinyerni a colourt, ami az első esetében various, a másodiknál black calf. Tehát a COL: utáni rész egészen a / jelig.
Köszönöm!!!
-
Belnir
csendes tag
-
m.zmrzlina
senior tag

A kérdés tárgytalan. Probléma megoldva. Főleg, hogy a kérdésben benne van a válasz is.
-
m.zmrzlina
senior tag
Tartományt szeretnék definiálni objektumváltozóként.
Ez működik:
Set ws_Csatorna = wb_SPSS_scb.Worksheets("csatorna")
Set rng_Csatkimarad = ws_Csatorna.Range("A1:A101")Ez nem:
rng_Akioszt = ws_Kabelo.Range(str_Akioszt & "2:" & str_Akioszt & int_usor)
rng_Dkioszt = ws_Kabelo.Range(str_Dkioszt & "2:" & str_Dkioszt & int_usor)Ez szintén működik:
rng_Akioszt = ws_Kabelo.Range(str_Akioszt & "2:" & str_Akioszt & int_usor).Select
rng_Dkioszt = ws_Kabelo.Range(str_Dkioszt & "2:" & str_Dkioszt & int_usor).SelectMi lehet a baj?
-
Delila_1
veterán
A Summary lap C2 képletét írom le, a többi ugyanarra a kaptafára készült.
Az INDEX függvénnyel keressük ki a megfelelő értéket. Ennek a szintaktikája
=INDEX(tartomány;sor;oszlop)A tartomány, amiben keresünk, az Outbound lap I:K oszlopa, ahol az I tartalmazza a keresett hetet, a J és K a két hozzá tartozó értéket. Másik lapon lévő tartományra úgy hivatkozunk, hogy megadjuk a lap nevét, majd felkiáltójel után a tartományt.
A sort a HOL.VAN függvénnyel keressük meg.
=HOL.VAN(keresési_érték;hol_keressük;egyezés_típusa)
Az Outbound lapon TOTAL OUTBOUND wk1 módon szerepel a hét, a Summary lapon csak 1-es számmal. Ezért a keresési_érték "TOTAL OUTBOUND wk"&$A2, vagyis a szöveghez hozzáfűzzük a hét számát tartalmazó A2 cella értékét. A hol_keressük az Outbound lap I oszlopa. Az egyezés_típus értéke itt nulla, ennek a jelentését megtalálod a súgóban.Most már tudjuk, hogy az első hét adatait az Outbound lap 17. sorában találjuk. Már csak az oszlopot kell megadni az értékek kikereséséhez.
A Summary lap C oszlopába a tartományunk (I:K) 2. oszlopának az adata kell, a D-be pedig a 3. oszlopé.Az egészet egy HAHIBA függvénybe ágyaztam be, másképp azokban a sorokban, ahol nem talál az INDEX megfelelő értéket – nincs még megadva a heti érték az Outbound lapon –, #HIÁNYZIK hibaérték jelenne meg, és ez csúnya.
=HAHIBA(érték;hiba_esetén). Itt az érték az INDEX függvény eredménye, hiba esetén nulla értéket ír be, mert azt adtuk meg. -
lenkei83
tag
-
Bobrooney
senior tag
-
lenkei83
tag
Szia!
Csatolva találsz egy mintatáblát. Annyival kiegészítettem, hogy beraktam egy kbség oszlopot, amire egyszerűen lehet feltételt megadni.
Nagy májer én sem vagyok benne, keresztkérdéseket nem ér feltenni.

Üdv.:
P. -
Márkó20
csendes tag
-
Bobrooney
senior tag
-
Delila_1
veterán
-
Delila_1
veterán
-
Bobrooney
senior tag
-
bsh
addikt
-
Delila_1
veterán
-
bsh
addikt
miért van annyi képlet? ezt kérdezd attól, aki a táblázatot csinálta
gondolom fogott egy képletet és autofillel lerántotta a végtelenbe és tovább, hogy "biztosamibiztos" 
de a ctrl+end az működik ezeken a táblázatokon rendesen, az utolsó értéket tartalmazó sorra (és oszlopra) ugrik, képlettől függetlenül. ezt kéne valahogy kihasználnom vba-ból.a "táblázattá alakítás" az egy teljesen másik projekt, semmi köze nincs a lastrow-os dologhoz, sőt az excelhez sincs egyáltalán semmi köze. és kimaradt egy lényeges sor a kódból, mert figyelmetlenül másoltam be:
For Y = 1 To RefDocs.Count
Call CreateRow(Y)
FrmTáblázat.Frame1.ScrollHeight = FrmTáblázat.Frame1.ScrollHeight + RowHeight
Next Y
és a rowheight az egy konstans.
de a lényeg, hogy szerintem meg van adva a userform mérete is, na.
az event kezelés csak arra kellene (de végülis nem életbevágó), hogy csak azokat az értékeket kelljen visszaírni a megfelelő ojjektumokba, amiket megváltoztat a user (vagy a makró, lehet teszek bele ilyen autocorrect funkciót). nekem annyi elég lenne, hogy ha egy (közös, many-to-one) combobox_change event lenne, ami tudná a változott "cella" nevét (amiből én tudom, hogy azt hová kell majd visszaírni) és mondjuk az adott *box .tag-jét beállítom "changed"-re, onnan már sima ügy. -
Delila_1
veterán
-
bsh
addikt
nem, azzal azzal megtalálja az utolsó értéket tartalmazó cellát a megadott oszlopban. csak ugye nem tudok egy konkrét oszlopot megadni, mert nem biztos, hogy ténylegesen mindig az az oszlop lesz a "leghosszabb".
de mondjuk az is lehet, hogy pont abban a két oszlopban amivel próbáltam, abban nem volt húszmillió képlet
-
Delila_1
veterán
-
bsh
addikt
ez nem jó, mert ha pl. képletek vannak a cellákban (de értékek nélkül), akkor azt így is beleveszi az usedrange-be.
így van a form generálva:
Load FrmTáblázat
FrmTáblázat.Frame1.Caption = "blahblahblah"
FrmTáblázat.Frame1.Left = 3
FrmTáblázat.Frame1.Top = 2
FrmTáblázat.Frame1.Width = 1100
FrmTáblázat.Frame1.Height = 20 + 20 * RowHeight
FrmTáblázat.Frame1.ScrollHeight = 7
FrmTáblázat.Height = FrmTáblázat.Frame1.Height + 70
FrmTáblázat.Width = FrmTáblázat.Frame1.Width + 10
For Y = 1 To RefDocs.Count
Call CreateRow(Y)
'itt az adatok kitöltése
Next Y
If Y < 20 Then
FrmTáblázat.Frame1.ScrollBars = fmScrollBarsNone
Else
FrmTáblázat.Frame1.ScrollBars = fmScrollBarsVertical
End If
FrmTáblázat.Show
End Subés minden sor minden egyes textboxa pedig így: (combobox tökugyanez, csak ott még a választható értékek feltöltése is benne van, +3 sor)
Private Sub CreateTextBox(ByVal Y As Integer, ByVal Name As String, ByVal L As Long, ByVal W As Long)
Set newTB = FrmTáblázat.Frame1.Controls.Add("Forms.TextBox.1", CStr(Y) & Name, False)
newTB.Width = W
newTB.Height = RowHeight
newTB.Top = (Y - 1) * RowHeight + 6
newTB.Left = L
newTB.SelectionMargin = False
newTB.AutoSize = False
newTB.Font.Name = FntName
newTB.Font.Size = FntSize
newTB.SpecialEffect = fmButtonEffectFlat
newTB.BorderStyle = fmBorderStyleSingle
newTB.Visible = True
Set newTB = Nothing
End Sub -
Delila_1
veterán
-
sedyke
tag
Lenne még valami...
Igazából az én táblázatom sokkal hosszabb mindegyik munkafüzeten, csak az egyszerűség és átláthatóság kedvéért nem küldtem el az egészet.
Van még jó pár hasonló csoportom az összesítő részen, és a 2015-ös, 2016-os lapok is sokkal hosszabbak.
Látom makroval oldottad meg a dolgot, így nem igazán tudom, hogy mit kellene tennem, ha beillesztem mindegyik alá a maradékot.
Új hozzászólás Aktív témák
-
29500 - 29401
54978 - 54001 54000 - 52001 52000 - 50001 50000 - 48001 48000 - 46001 46000 - 44001 44000 - 42001 42000 - 40001 40000 - 38001 38000 - 36001 36000 - 34001 34000 - 32001 32000 - 31901 31900 - 31801 31800 - 31701 31700 - 31601 31600 - 31501 31500 - 31401 31400 - 31301 31300 - 31201 31200 - 31101 31100 - 31001 31000 - 30901 30900 - 30801 30800 - 30701 30700 - 30601 30600 - 30501 30500 - 30401 30400 - 30301 30300 - 30201 30200 - 30101 30100 - 30001 30000 - 29901 29900 - 29801 29800 - 29701 29700 - 29601 29600 - 29501 29500 - 29401 29400 - 29301 29300 - 29201 29200 - 29101 29100 - 29001 29000 - 28901 28900 - 28801 28800 - 28701 28700 - 28601 28600 - 28501 28500 - 28401 28400 - 28301 28300 - 28201 28200 - 28101 28100 - 28001 28000 - 26001 26000 - 24001 24000 - 22001 22000 - 20001 20000 - 18001 18000 - 16001 16000 - 14001 14000 - 12001 12000 - 10001 10000 - 8001 8000 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Hirdetés
- Hp ProDesk/ EliteDesk SFF/MT G4/ G5/ G6 / i5 8-9-10.gen /Win11- Számla, garancia
- BESZÁMÍTÁS! Asus Z390 i7 9700 32GB DDR4 512GB SSD RTX 2070 Super 8GB Phanteks Eclipse P360A 650W
- Bomba ár! Lenovo ThinkPad X230 - i5-3GEN I 4GB I 320GB I 12,5" HD I Cam I Garancia!
- Samsung Galaxy S21 FE 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- MSI Thin 15 B12UC - 15,6"FHD IPS 144Hz - i5-12450H - 16GB - 512GB -Win11 - RTX 3050 - 1+ év garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest





Pont mégegyszer ennyi azaz összesen 6 component és az adatai vannak 1 lapon.











