- Honor Magic6 Pro - kör közepén számok
- Bemutatkozott a Moto G32 4G
- Apple Watch Sport - ez is csak egy okosóra
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Ezek a OnePlus 12 és 12R európai árai
- iPhone topik
- Fotók, videók mobillal
- Samsung Galaxy S21 FE 5G - utóirat
- Poco X3 Pro - hardverfrissítés
- MG4 menetpróba
Hirdetés
-
Ilyen lesz a SteamWorld Heist II
gp A folytatás a tervek szerint a nyár folyamán, pontosabban augusztus elején érkezik.
-
Letartóztatták a bitcoin-Jézust
it Amerikai adókerülés vádjával, Spanyolországban tartóztatták le a bitcoin-Jézusként ismert Roger Vert.
-
Toyota Corolla Touring Sport 2.0 teszt és az autóipar
lo Némi autóipari kitekintés után egy középkategóriás autót mutatok be, ami az észszerűség műhelyében készül.
-
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
-
Delila_1
Topikgazda
-
Fferi50
őstag
Szia!
Kipróbálhatnád, hogy a V oszlopba írod be ugyanígy a képletet. Ezután a képletet átalakítod értékké:
Range("V2:V" & sor).Value=Range("V2:V" & sor).Value
Ezután adnád hozzá a V oszlop érvényesítését!
Így minden kategória rendben lenne és a lista is meglenne szerintem.
Üdv. -
HREH
senior tag
válasz Delila_1 #44051 üzenetére
Összecseréltem a számozást, itt egy példa, hogy mire gondolok.
Tehát ha a G3/H3/I3 cellák mindegyike ki van töltve zölddel, akkor a D3 is legyen zölddel kitöltve, minden más esetben (tehát ha az egyik, vagy akár több cella is nem zölddel van kitöltve vagy egyáltalán nincs kitöltve, akkor pedig narancssárgával.)
Lényeg az lenne, hogy a D3-tól lefelé legyen érvényes a dolog, tehát a D4 akkor legyen zöld, ha a G4/H4/I4-re teljesül ugyanez, a D5 akkor, ha a G5/H5/I5 és így tovább, az egész munkalapon.
Adat csak a D oszlopban lévő cellákban lesz (egyszerű szöveg), a G/H/I oszlopokban nem.
Az első 2 sorra pedig ne vonatkozon (D1 ill. D2 cellák).[ Szerkesztve ]
"Fun isn't something one considers when balancing the universe. But this... does put a smile on my face."
-
Delila_1
Topikgazda
Na látod, erről írtam. Nekiestem megírni a makrót, aztán kiderül, hogy egészem másról van szó, kezdhetem az elejétől. Még várok egy ideig, míg véglegesíted a feladat leírását.
A D oszlopban változó mennyiségű adat van? Nincsenek az adatok között üres cellák?
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
Megírtam. A makrót modulba tedd, a füzetedben tegyél ki egy gombot, ahhoz rendeld a makrót.
Nem mindegy, hogy milyen zöld a G-H-I oszlop zöldje. A cellák színezésénél a További színeknél az Egyéni fülön legyen az R és B nulla, a G 255.Sub Zold_Narancs()
Dim sor As Long
sor = 3
Do While Cells(sor, "D") <> ""
If Cells(sor, "G").Interior.Color = vbGreen And Cells(sor, "H").Interior.Color = vbGreen _
And Cells(sor, "I").Interior.Color = vbGreen Then
Cells(sor, "D").Interior.Color = vbGreen
Else
Cells(sor, "D").Interior.Color = RGB(255, 198, 83)
End If
sor = sor + 1
Loop
End Sub[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
HREH
senior tag
válasz Delila_1 #44054 üzenetére
Köszönöm!
A D oszlopban D3-tól lefelé kezdve fixen mindig egy nyolcjegyű szám van. Üres cella csak addig van, ameddig én kézzel nem írom bele a nyolcjegyű számot.Laphoz lehet rendelni, mint az első példában, vagy csak modulhoz? (van 4-5 munkalap, de csak az egyikre kell ez)
"Fun isn't something one considers when balancing the universe. But this... does put a smile on my face."
-
Delila_1
Topikgazda
Mi a bevitel menete?
Beírod a számot a D oszlopba, majd színezed aG:I
oszlopokat?Legjobb lenne, ha a 3 cella színezését adnád meg először, majd beírnád a D oszlopba az értéket. Ebben az esetben a D oszlopba írást figyeltethetném. Amint beírod az értéket, arra a sorra lefutna a színezés.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sor As Long
If Target.Row > 2 And Target.Column = 4 Then
sor = Target.Row
If Cells(sor, 7).Interior.Color = vbGreen And Cells(sor, 8).Interior.Color = vbGreen And _
Cells(sor, 9).Interior.Color = vbGreen Then
Cells(sor, 4).Interior.Color = vbGreen
Else
Cells(sor, 4).Interior.Color = RGB(255, 198, 83)
End If
End If
End Sub[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
mulli86
tag
Sziasztok!
Sikerült segítséggel megírni azt a kereső makrót. Félig manuális, mert egy másik lapfület be kell másolni előtte, ami tartalmazza a keresendő adatokat. Az excelek amiken elindítom CSV fájlok. Illetve vannak olyan excelek, amik 1 millió sorosak, tehát teljesen fel vannak töltve. A makró problémái, amik között nem látok öszefüggést, random csinálja a következő hiábakat
- Indítás után kifagy
- elindul, de már a sorok megszámlálása is olyan mérhetetlenül lassú, hogy esélytelen, hogy a mai nap folyamán akár egy excel is lefusson. (5perc alatt még csak az ~5000 sorig juottt csak el)
- hibára fut, ahol a sorok számolása nem tetszik neki.Mik lehetnek a problémák, és hogyan tudnám kiküszöbölni ezeket?
Jobb félni, mint áldozatául esni egy hirtelen Ninja támadásnak!
-
mulli86
tag
Hogy szoktátok feltölteni? Csak feldobjátok valahova?
Egyébként most átírtam, hogy csak 100 sorig vizsgálja. Átmásolt 97 sort a 100-ból, pedig nem is szerepelnek benne olyan értékek, amikre keresek.
Jobb félni, mint áldozatául esni egy hirtelen Ninja támadásnak!
-
Fferi50
őstag
válasz mulli86 #44060 üzenetére
Szia!
Fel kell tenni valahova - pl. googlemaps, Data.hu, stb. -, ide pedig a linket.
Az biztos, hogy a lastsor deklarációd nem jó. Az integer típus az csak 32767-ig terjedhet.
Helyette a Long adattípust kell használni.
"Átmásolt 97 sort a 100-ból, pedig nem is szerepelnek benne olyan értékek, amikre keresek."
Nyilván nem egészen korrekt a feltételek ellenőrzése. Vagy a makró szerkezete. Nem egészséges ugrásokat használni.
Üdv.[ Szerkesztve ]
-
Mutt
aktív tag
válasz mulli86 #44058 üzenetére
Szia,
1. lastsor típusa Long legyen, mert az integer csak 32 ezer sorral fog bírni.
2. A hibaname és oszlopnumber a két for cikluson belül van inicilaziálva ami nem jó, hozd ki őket a for-ok elé.
3. Variant a hibaname típusa, de közben a cella értékét ellenőrzöd. Jobb lenne egy specifikus típust használnod pl. Double ha számok érdekelnek, vagy String ha szöveg.
4. Ha sokat dolgozol egy lapon akkor érdemes With ... End With-et használnod.
pl.With Worksheets(1)
lastsor = .Range("A5").End(xlDown).Row
For x ...
For y ...
hibaname = .Cells(5, y)
For p ...
If hibaname = Sheets(3).Cells(1,p) then
....
End If
Next p
Next y
Next x
End With5. A GoTo rész biztos hogy kell? Miért nem teszed az IF-be az ottani dolgokat?
6. Sokat gyorsít a "villódzás" kikapcsolása.
Application.ScreenUpdating = False a for ciklusok elé, majd = True a legvégén.üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
mulli86
tag
Bocsi az idöhuzásért, de elég macerás feltölteni ezen a hálozaton.
[link]Jobb félni, mint áldozatául esni egy hirtelen Ninja támadásnak!
-
Mutt
aktív tag
Szia,
Delila válasza mellett itt egy UDF, amit feltételes formázásban használhatsz.
Function CellaSzinek(rng As Range, Optional szinkod As String, Optional mutasd As Boolean)
'cella színének változása nem eredményezi a képletek újra kiértekélését
Application.Volatile
Dim cella As Range
Dim szin As Long
If mutasd Then
CellaSzinek = CStr(rng.Range("A1").Interior.Color)
Else
CellaSzinek = True 'megelőlegezzük hogy a tartomány színe azonos
'ha nincs meg adva a viszonyításhoz színkód, akkor használjuk a tartomány elsõ cellájának színét
If szinkod = "" Then
szin = rng.Range("A1").Interior.Color
Else
szin = CLng(szinkod)
End If
For Each cella In rng
If cella.Interior.Color <> szin Then 'ha eltérés van akkor kilépünk a ciklusból
CellaSzinek = False
Exit For
End If
Next cella
End If
End FunctionTúlzásba vittem, mert 3 módon lehet használni.
- Ha csak 1 paramétert (a vizsgálandó tartományt) adsz meg, akkor a tartomány első cellájánák színéhez hasonlítja a többit. Ha azonosak, akkor IGAZ eredményt ad vissza.
- Ha 2 paramétert adsz meg, ahol a második az adott színkód macskakörmök között amelyet keresel, akkor pedig IGAZ lesz az eredmény, ha a tartományban a cellák színe azonos a megadottal.
- Ha a harmadik paraméter IGAZ, akkor pedig a kijelölt tartomány első cellájának színkódját kapod meg.üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
mulli86
tag
Szia,
1- ok
2- ok
3- amint látod a mintát a hibakódok számot és szöveget is tartalmaznak azért a variant.
4-5 ha látod a teljeses progit, láthatod hogy kell-e szerintünk oda kell rakni, de hát logikai felfogás kérdés ki hogy írja meg a programot asszem
6. Úgy rémlett hogy tettünk bele ilyet, de úgy látom mégse, csak akartunk.Egyébb észrevétel így hogy átlátjátok?
Egyébként nem találtam infót róla, mi az a karakter, amivel inaktívvá lehet tenni a két karakter közé zárt szövegrészt. C++-ban ez a {} volt. Itt micsoda?
Jobb félni, mint áldozatául esni egy hirtelen Ninja támadásnak!
-
-
mulli86
tag
válasz Fferi50 #44068 üzenetére
Van ilyen excelből több darab. A makrót és a hiba-kod fület manuálisan hozzáadom.
Azt szeretném ettől, hogy a eredeti excelben vizsgálja át úgy a sorokat oszlop szerint, hogy kritériumként a hibakód lapfülön található adatokat használja.
Ha az első adatállományban az adott oszlopban talál olyan hibakódot vagy értéket, amit a hiba-kód lapfülön adott szolopban szerepel, akkor azt a komplett sort máslja ki és tegye egy hiba lapfülre, amit a makro hoz létre és kimásolja a fejlécet is a második sorba.
Ez egy teszt adatbázis, amiben hibakódokat keresek, de oszloponként lehet eltérés a hibakódok között. Itt is van legalább 5 különböző hibakód. illetve lehet bizonyos oszlopokban olyan teljesen jó érték, ami egyébként más oszlopban hibát jelent. Pld a 0,1 es hibakód.
A problémát az fokozza, hogy az excelekben valmiért az szlopok nem ugyanolyan sorrendben jönnek, ezért a makrónak elöször azonosítania kell hogy melyik oszlopban keres, aztán a hiba-kod lapfülön meg kell néznie hogy hol van ez az oszlop és a hozzá tartozó értékek alapján kéne átnézni az első lapfülön hogy van-e benn olyan érték vagy nincs.
Temélem érthető voltam[ Szerkesztve ]
Jobb félni, mint áldozatául esni egy hirtelen Ninja támadásnak!
-
Fferi50
őstag
válasz mulli86 #44067 üzenetére
Szia!
"Temélem érthető voltam"
Majdnem...
Tehát
1. A hiba-kód munkalapon levő hibakódokat kell keresni a hibalistában (adatállományban)
2. Az hiba-kód munkalapon a hibakód oszlopában kell megkeresni az adatállományban az adott hibakódhoz tartozó értéket - ha benn van, akkor át kell tenni a hibalistára, ha nincs, akkor nem.
3. A hiba-kód munkalapon nem megtalálható hibakódokkal nem kell foglalkozni.
Pl.
ECP_block_Error
0b00
0b01
0b11
Ha az adatállomány x. sorában az ECP_block_Error cellában a fenti 3 érték valamelyike van, akkor megy a hibalistába, egyébként nem.
Jól gondolom?
Üdv.[ Szerkesztve ]
-
Véreshurka
senior tag
Sziasztok!
Lenne arra valamilyen mód, hogy több különböző képletet tartalmazó cellához ugyanazt a függvényt felvegyem? Most jöttem rá, hogy még egy HAHIBA függvényt jó lenne beírnom minden képlethez, hogy ne a hibákat kelljen nézni.
Előre is köszönöm!
El Psy Kongroo
-
Fferi50
őstag
válasz Véreshurka #44071 üzenetére
Szia!
Képletfajtánként egyet-egyet átírsz, azután másolod a képletet.
Másképp nem megy sajnos.
Üdv. -
mulli86
tag
válasz Fferi50 #44070 üzenetére
"Temélem" Bocs
Igen, jól érted. Annyi hogy ami megkavarja a dolgokat, az az, hogy a többi excelben az oszlopok nem olyan sorrendben vannak, mint a hiba-kod lapfülön, ezért muszáj kerestetni vele.
Befrissítettem a makrót Mutt 1-2-6-os pontjával, így most nagyobb file is lefutott. De amit észrevettem, hogy a 0-1 hibakódokkal nem azt csinálja amit szeretnék, mert azokat a sorokat is kidobja, amikben szerepel 0 vagy egy, pedig ez az érték csak az ECP_Electric_Error és ECP_2_Electric_Error oszlopban szerepelnek. Ezért szeretnénk, hogy pld ezt a két hibakódot, csak ebben a két oszlopban keresse a többibe ne, mert fals sorokat fog kigyűjteni, ahogy most is teszi. A másik 3 tipusú hibakod-nál ilyen gond nincs, mert az nem lehet jó érték.Jobb félni, mint áldozatául esni egy hirtelen Ninja támadásnak!
-
Fferi50
őstag
válasz Véreshurka #44075 üzenetére
Szia!
A makró:For Each cl In Range("A1:A8").Cells
cl.formula="=IFERROR(" & mid(cl.Formula,2) & ","""")"
Next
A vessző és a zárójel közé 4 idézőjel kell. Így üres marad a cella hiba esetén.
Ha szöveget is szeretnél kiíratni, akkor két - két idézőjel közé írd be a szöveget.
Üdv. -
HREH
senior tag
válasz Delila_1 #44057 üzenetére
D-re emlékeztem, de a B a helyes, gondolom elég csak a makróban a 4-eseket 2-esekre cserélni.
A B-be egy szám kerül (a feladat azonosítója), a G-H-I oszlop pedig 3 részfeladatot ír le, a megfelelő cellát színezem/üresen hagyom, annak függvényében, hogy elkezdtem-e az adott részfeladatot csinálni/kész vagyok-e az adott részfeladattal. (üres - nem kezdtem el, narancs - elkezdtem, de még nincs kész, zöld - teljesen kész).
Eddig a számot írtam be először , de ha Neked úgy könnyebb, akkor írhatom a színeket is először.
Itt a példa, hogy hogy néz ki az xls - a nem nyilvános részek kitakarva, de a lényeg látszik.@(#44064) Mutt: köszi, megnézem ezt a megoldást is ezt hogyan kell használni (nem láttam még ilyen megoldást)?
[ Szerkesztve ]
"Fun isn't something one considers when balancing the universe. But this... does put a smile on my face."
-
Delila_1
Topikgazda
Semmi gond, 1-2 hét alatt sikerül összehoznod a kérdést.
Igen, minden 4-est írj át 2-re.
Nem nekem könnyebb – bár ez is lehet(ne) szempont –, hanem jóval terjedelmesebb lenne a makró, és a futása is hosszabb időt venne igénybe, ha nem a számot tartalmazó oszlopot töltenéd ki először.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
mulli86
tag
válasz Fferi50 #44081 üzenetére
Szia!
Én is alakítottam kicsit a hiba-kod lapfület így most csak a specifikus hibakódokra keres rá a makró. Abban az excelben amit küldtem én se találtam a makróval semmit. És amit manuálisan beleírtam, azt viszont kiszedte. Mutt modosításaival nemrég lepörgettem az egyik 200 megás excelt ami 1 millió sor*38 oszlop és kb egy órán keresztül minden microsoftos dolog meg volt makkanva a gépen, de miután végzett, szépen megcsinált mindent. Egyedül a 0-1 problémával nem tudok most mit kezdeni, de majd holnap a srácokkal összedugjuk a fejünket, meg bedobunk egy progress bart is, hogy nézni lehessen hogy megfagyott-e meló közben a gép.
[ Szerkesztve ]
Jobb félni, mint áldozatául esni egy hirtelen Ninja támadásnak!
-
HREH
senior tag
válasz Delila_1 #44082 üzenetére
Milyen 1-2 hétről beszélsz? Tegnap reggel írtam ki a kérdést, az nálam nagyon nem 1-2 hét, de semmi gond.
Ebben a topikban mindig mindenki örömmel segített (köztük te is), nem értem mi a gondod... Elnézést, hogy pontosítottam a kérdésem.
Mindegy, akkor beszínezem manuálisan."Fun isn't something one considers when balancing the universe. But this... does put a smile on my face."
-
Véreshurka
senior tag
válasz Fferi50 #44077 üzenetére
Próbálom is!
& (#44078) Delila_1: ezt is megnézem!
Köszönöm mindkettőtöknek!
szerk:
@Fferi: ez működik is. valószínű másnak egyértelmű, de először nem akart futni, makrófelvétellel lelestem egy létrehozott makrót és annak alapján ha még ezeket beírtam a makró elé akkor már szépen lefutott:
Sub hahiba()
'
' hahiba Makró
'
' Billentyűparancs: Ctrl+s
'
[ Szerkesztve ]
El Psy Kongroo
-
tomi_x
tag
Sziasztok !
Megint lenne kérdésem.
Adott egy táblázat, amelyet többen használunk. Szeretném a kitöltött cellákat zárolni, hogy csak jelszóval lehessen törölni vagy modosítani.
Csak makróval lehetséges ?Előre is köszi
-
Fferi50
őstag
válasz Véreshurka #44086 üzenetére
Szia!
Hát persze, ez csak a makró "teste" volt.
Sub - End Sub közé kell tenni.
Üdv.[ Szerkesztve ]
-
Véreshurka
senior tag
válasz tomi_x #44087 üzenetére
Saját parasztos megoldásom (biztos van elegánsabb is):
Ha kijelölöd a cellákat amiket védeni szeretnél, akkor jobb klikk --> cellaformázás --> védelem --> zárolt, majd véleményezés menüpont és ott a lapvédelemmel tudod jelszóval védeni.
(#44088) Fferi50: alapvetően amikor létrehoztam a makrót már Sub - End Sub közé illesztettem mert már ott volt. De nagyon nem értem még a makrózást, csak a makrórögzítést szoktam használni... Lényeg, hogy megy. Sokszor elfelejtem képletek elől a HAHIBA-t és csak a végén jut az eszembe, ezután már nem lesz gond Köszi még egyszer!
[ Szerkesztve ]
El Psy Kongroo
-
Mutt
aktív tag
válasz mulli86 #44069 üzenetére
Szia,
A feltett fájlt megnézve makró mentesen Power Query-vel simán megoldható.
Importálni kell a hibakódokat és a CSV fájlt, majd annyiszor kell lekérdezések összefűzését használni ahány oszlopban akarod a hibakódot keresni. Kibontás és utána egy egyéni oszlopban megnézni, hogy hány esetben lett az eredmény üres (null). Ahol csak null volt azok hibamentes sorok vagyis dobhatók és a maradékot lehet betölteni egy új munkalapra.
Kb. 30 perc alatt megvan a Power Query aki jártas már benne és utána újrahasznosítható más fájlokkal.
Természetesen a Power Query-t tanulni kell, ami idő, de Youtube-on van jó sok segítség.4 oszlop csekkolása kb. így néz ki.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
tomi_x
tag
válasz Véreshurka #44089 üzenetére
Így megy nekem is.
De úgy kellene megoldanom, hogy amint egy cellába valaki beír adatot az zárolt legyen, vagy esetleg egy vezérlő gombbal megoldani, hogy "adatbevitel lezárása". -
Fferi50
őstag
válasz tomi_x #44091 üzenetére
Szia!
"amint egy cellába valaki beír adatot az zárolt legyen'"
Aztán, ha javítani szeretne az adaton, mert elírta, akkor mi lesz?
Ezt egyébként csak makróval lehet megcsinálni és védetté kell tenni a munkalapot hozzá.
Azt írtad, közösen használjátok. Ez mit jelent? Közös használatúvá van téve a munkafüzet vagy egyszerre csak egy user használhatja egy időben, de többen is beleírhatnak?
Egyébként nézd meg a munkalap védelmet. Ott lehet tartományokat rendelni userekhez, amiket csak meghatározott felhasználók módosíthatnak. Nem elég ez neked?
Üdv. -
Ivy.4.Ever
őstag
Sziasztok!
Próbáltatok már weblapot csinálni excellel? Mik a lehetőségek fizetős bővítmények nélkül?
Egy adatbázisból tud frissülni folyamatosan tárhelyen? Illetve ha űrlapot is lehetne kitölteni http-n keresztül az nagyon frankó lenne. Ezeket azért kérdezem, hogy ne kutassak hiába megoldás után, mert VBA-val is még csak mostanában kezdek. Alap php megy.[ Szerkesztve ]
-
mulli86
tag
válasz Fferi50 #44084 üzenetére
Szia! Tegnapi makrót feltettem, ahogy írtam is csak annyit változtattam rajta, amit mutt javasolt 1-2-6. ( #44074 HSZ-ben írtam). Plusz a hibakódoknál most nem keresek 0-1-et csak a 0b00, 0b01, 0b11-re keresek rá.
Tehát átváltottam Longra. Bár ezt többen is írtátok. For ciklus elé kitettem a két változót, meg beszúrtam a screenfalsh prancsokat az elejére és végére.Dim lastsor As Long
lastsor = Worksheets(1).Range("A5").End(xlDown).Row
Dim hibaname As Variant
Dim oszlopnumber As Integer
Application.ScreenUpdating = False
For x = 6 To lastsor
For y = 3 To 38
.....
Next y
jumppoint1:
Next x
Application.ScreenUpdating = True
közötte minden más maradt.Jobb félni, mint áldozatául esni egy hirtelen Ninja támadásnak!
-
Fferi50
őstag
válasz mulli86 #44095 üzenetére
Szia!
Próbáld ki ezt a makrót légy szíves:Sub rendezo()
Dim sh1 As Worksheet, sh2 As Worksheet, cl As Range, cl2 As Range, xo As Byte, xu As Long, sh3 As Worksheet, x As Integer, oszlop, drb As Long, ido As Date
Application.ScreenUpdating = False
Set sh1 = Sheets("hiba_kod")
Set sh2 = Munka2 'Most ez az adatok munkalapja Névvel is hivatkozhatsz rá, nekem túl hosszú volt.
Set sh3 = Worksheets.Add(after:=Sheets(1))
sh3.Name = "hiba"
sh3.Cells(1, 1).Value = "Teszt"
xu = 3: xo = sh2.UsedRange.Rows(5).Columns.Count
sh2.UsedRange.Rows(5).Copy Destination:=sh3.Cells(2, 1)
ido = Time()
For Each cl In sh1.UsedRange.Rows(1).Cells ' a hiba-kódok listája
Application.StatusBar = cl.Value
oszlop = Application.Match(cl.Value, sh2.Rows(5), 0)'melyik oszlopban van?
If Not IsError(oszlop) Then
x = 1 'végig megyünk a hibakódok értékein
Do
drb = Application.CountIf(sh2.Columns(oszlop), cl.Offset(x, 0)) 'hány hibás tétel van
Set cl2 = sh2.Cells(1, oszlop)
Do While drb > 0
Set cl2 = sh2.UsedRange.Columns(oszlop).Find(what:=cl.Offset(x, 0).Value, LookIn:=xlValues, Lookat:=xlWhole, after:=cl2)
If Not cl2 Is Nothing Then
If sh2.Cells(cl2.Row, xo + 2).Value <> "x" Then 'ha még nincs másolva
sh2.UsedRange.Rows(cl2.Row).Copy Destination:=sh3.Range("A" & xu) 'másoljuk
sh2.Cells(cl2.Row, xo + 2).Value = "x" 'és jelöljük a másolást
xu = xu + 1
End If
drb = drb - 1
End If
Loop
x = x + 1
Loop While cl.Offset(x, 0) <> ""
End If
DoEvents
Next
Application.ScreenUpdating = True
Application.StatusBar = False
MsgBox "Futási idő indulás: " & Format(ido, "hh:mm:ss") & " vége:" & Format(Time(), "hh:mm:ss")
End Sub
Mit csinál?
A hiba-kod munkalapon levő kódokon megy végig. Megszámolja, hogy az adatok között az adott oszlopban hány hibás tétel fordul elő. Ezeket átmásolja. Mivel egy sorban több hiba is lehet, a duplázás elkerülése érdekében az átmásolt sor végére tesz egy x-et.
A végén pedig kiírja, mikor indult és mikor fejezte be.
Ha túl hosszúra nyúlna az idő akkor Ctrl+Break megállítja (ezért van benne a DoEvents sor. Ekkor az éppen aktuális sornál megáll. Meg lehet nézni az eredményt és leállítani vagy folytatni, ahogyan éppen szeretnéd.
Remélem, nem lesz túl lassú.
Ha ismételten tesztelsz, ne felejtsd el az x-es oszlopot törölni!
Üdv. -
amdk7
aktív tag
Sziasztok,
Adott több változó hosszúságú oszlopom, amit táblázatkezelés kapcsán egymás alá szeretnék rendezni.
Ez megoldható képlettel?
Arra gondolok, hogy vizsgálja pl.: az A oszlopot és ha nincs ott érték, akkor kezdje a B oszlop cellatartalmát beírni. ha ott is üres cellatartalmat talál, akkor folytassa a C oszloppal (C1-től amíg üres cellát nem talál).Remélem érthetően írtam le, de itt egy kép:
- a G oszlopban lévő eredményt szeretném látni.
KöszönömAdataimat többé kevésbé az adatlapomon, illetve a személyigazolványomban találod meg. :)
Új hozzászólás Aktív témák
- Óra topik
- Formula-1
- Milyen routert?
- Google Chromecast topic
- RC modell földön, vízen, levegőben
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Ford topik
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Xbox tulajok OFF topicja
- A pápa egyre jobban tart a romlott AI veszélyeitől
- További aktív témák...
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen