-
Fototrend
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
válasz zsotesz81 #10058 üzenetére
Nem értem, miért ragaszkodsz a makróhoz, mikor egyszerű képlettel meg lehet oldani.
Tulajdonképpen az érdekel, hogy a Sheet1 lapon szerepel-e mindenkinek a neve, akinek a címe megvan a Sheet2-n.Az F1-be tedd be ezt a képletet:
=HA(HIBÁS(FKERES(Sheet2!B1&"*";E:E;1;0));"Nincs a Sheet1 lapon";"X") ,majd a cella jobb alsó sarkában lévő kis fekete négyzetre duplaklikk, és már le is másolta addig, ameddig az E oszlopban talál adatot.
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
válasz MIFtIli #10054 üzenetére
A helyére nem, de mellé az FKERES függvénnyel beírhatod a leírást.
Kicsit összetettebb a feladat, ha egy cellában pl. acd szerepel, és ahhoz 3 leírás tartozik.
Add meg pontosan, hol szerepelnek a betűk, és hol van a hozzájuk tartozó leírás.Valaki biztosan segít, én kikapcsolok, dörög, villámlik, és nincs villámvédelmem.
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
válasz m.zmrzlina #10065 üzenetére
Le a kalappal!
Van egy baj: a lehetséges betűk száma 14, HA függvényből viszont csak hetet lehet egymásba ágyazni. Ez az az eset, mikor makrót kell írni.
Sub Leiras()
Dim sor%, oszlop%, betu%, nev$
Range("K57:K75,M57:M75,P57:P75").ClearContents
For sor% = 57 To 75
oszlop% = 10: GoSub Beir
oszlop% = 12: GoSub Beir
oszlop% = 15: GoSub Beir
Next
Exit Sub
Beir:
nev$ = Cells(sor%, oszlop%)
For betu% = 1 To Len(nev$)
Cells(sor%, oszlop% + 1) = Cells(sor%, oszlop% + 1) & Application.VLookup(Mid(nev, betu%, 1), Range("R57:S70"), 2, 0) & " "
Next
Cells(sor%, oszlop% + 1) = Left(Cells(sor%, oszlop% + 1), Len(Cells(sor%, oszlop% + 1)) - 1)
Return
End SubProgramozó: 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
válasz Delila_1 #10067 üzenetére
Egy kicsit átláthatóbban az előbbi makró:
Sub Leiras()
Dim sor%, oszlop%, betu%, nev$, cnev As Range
Range("K57:K75,M57:M75,P57:P75").ClearContents
For sor% = 57 To 75
oszlop% = 10: GoSub Beir
oszlop% = 12: GoSub Beir
oszlop% = 15: GoSub Beir
Next
Exit Sub
Beir:
nev$ = Cells(sor%, oszlop%)
Set cnev = Cells(sor%, oszlop% + 1)
For betu% = 1 To Len(nev$)
cnev = cnev & Application.VLookup(Mid(nev, betu%, 1), Range("R57:S70"), 2, 0) & " "
Next
cnev = Left(cnev, Len(cnev) - 1)
Return
End SubProgramozó: 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
válasz m.zmrzlina #10070 üzenetére
Ezt a max. 4 karaktert nem vettem észre, igazad van.
A hosszú képletedhez csak annyit, hogy az ÖSSZEFŰZ függvényt egyszerűsíteni lehet.
Az =ÖSSZEFŰZ(A1;B1;C1) egyszerűbben =A1&B1&C1.
Persze a lényegen ez nem változtat.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
válasz m.zmrzlina #10070 üzenetére
Azért az nem megy a fejembe, hogy ha a 10061-es hsz szerint a leírások az R57:S70 területen vannak, és minden betű egyszer szerepel, hogy jön ki összesen 4 karakterre? Hiszen ez 14 cella!
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
válasz zsotesz81 #10077 üzenetére
Kétféle megoldás is van (és biztosan több is).
1. Kijelölöd a neveket tartalmazó területet. Adatok - Szövegből oszlopok. Követed a varázslót, Határoló jelnek az Egyéb kategóriában a / jelet adod meg. Ez a módszer 3 cellába szedi szét az adataidat.
2. Kétfelé szedéshez 2 új oszlopba viszed be az alábbi képleteket:
=BAL(E1;SZÖVEG.KERES("/";E1)-1)
=JOBB(E1;HOSSZ(E1)-SZÖVEG.KERES("/";E1))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
Nem tudok scann-elni, egy valamennyire olvasható fotót teszek ide Kovalcsik Géza könyvéből.
A YouTube-on keress rá az Excel solver címszóra, rengeteg bemutatót találsz, de a böngésződben is sok találat jön fel erre a keresésre.
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
válasz artiny #10095 üzenetére
Kijelölöd a dátumokat tartalmazó területet.
A Kezdőlap - Stílusok közül a Feltételes formázást választod. Új szabály - A formázandó cellák kijelölése képlettel.
Az 'Értékek formázása, ha ez a képlet igaz' mezőbe ezt írod:
=MA()-A1>80
(ez arra az esetre vonatkozik, ha a dátumot tartalmazó adataid az A1 cellában kezdődnek, és azokat a cellákat akarod színezni, ahol a dátum több, mint 80 nappal előbbi, mint az aktuális dátum)A 'Formátum...' menüben kiválasztasz egy szimpatikus formátumot.
[ 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.
-
Delila_1
Topikgazda
válasz Vizes Tomi #10097 üzenetére
Feltételezve (mivel nem írtad meg), hogy a "Hálózaton belüli hívások" szöveg az A oszlopban szerepel, és a hozzá tartozó egységár az E oszlopban van a kép szerint, itt a makró, ami beírja a J1 cellában általad megadott percdíjat a sárga hátterű cellákba:
Sub PercDij()
Dim Szoveg$, cseresor%, PercDij!
Szoveg$ = "Hálózaton belüli hívások"
PercDij = Cells(1, 10) 'ide fixen is beírhatod az összeget
cseresor% = Range("A:A").Find(Szoveg$).Row + 1
Do While Cells(cseresor%, 1) = ""
Cells(cseresor%, 5) = PercDij!
cseresor% = cseresor% + 1
Loop
End SubHa az adatok a "Hálózaton belüli hívások" címmel azonos sorban kezdődnek, akkor a
cseresor% = Range("A:A").Find(Szoveg$).Row + 1 sor végéről töröld a +1 -et.[ 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.
-
Delila_1
Topikgazda
válasz artiny #10099 üzenetére
Konkrét dátumnál a feltételes formázás képlete
=A1<DÁTUMÉRTÉK("2011.04.12")A MA() függvény ebben a formában adja a mai dátumot, nem szabad a zárójelek közé semmit írni. Zárójelek nélkül egyszerű szöveg lesz, nem függvény.
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
válasz Vizes Tomi #10102 üzenetére
A Cells(1,10) helyére írd be a makróban. PercDij=16
Akkor a J1 cellába nem kell beírnod.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
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
válasz peeter81 #10109 üzenetére
Function AverageColor(Mintacella As Range, Tartomany As Range)
Dim rngCell As Range
nColor = Mintacella.Font.Color
nDb = 0: nSum = 0
For Each rngCell In Tartomany
If rngCell.Font.Color = nColor Then
nDb = nDb + 1
nSum = nSum + rngCell
End If
Next rngCell
AverageColor = nSum / nDb
End FunctionVidd be ezt a makrót a füzeted VB szerkesztőjébe. Ugyanúgy használhatod majd, mint bármelyik másik függvényt.
Pl. az A1:B20 tartomány azon részének az átlagát szeretnéd megkapni, ahol a karakter kék színű. A Mintacella paraméternél add meg (rákattintással) egy olyan cella címét, ahol kék a karakter. Legyen ez pl. a B6, a függvényed a területen kívül egy cellában:
=AverageColor(B6;A1:B20)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
válasz Vizes Tomi #10108 üzenetére
Cells(cseresor%, 5) = PercDij! helyett Cells(cseresor%, 6) = PercDij! legyen, mert a hatodik (F) oszlopba kell beírni a jelenlegi percdíjat.
A keresendő szöveg is más. A Szoveg$ = "Hálózaton belüli hívások" sorban írd át arra a szövegre, amit a számlán találsz.
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
válasz Vizes Tomi #10113 üzenetére
Küldd el a fájlt, így nehéz követni.
A J1 megfelelője a cells(1,10). Itt előbb a sort, majd az oszlop sorszámát kell megadni.
[ 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.
-
Delila_1
Topikgazda
válasz Vizes Tomi #10136 üzenetére
A SZUM függvény simán összeadja a két időpontot, csak az összegző cella is olyan formátumú legyen, mint az összeadandók (ó:pp:mm).
A felszorzás, ha a 14,30 a H1 cellában van, az idő pedig az E1-ben:
=ÓRA(E1)*60*H1+PERC(E1)*H1+MPERC(E1)*H1/60 , ez 2620 Ft.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
válasz basaharc502 #10131 üzenetére
Csinálsz a 2 adatsorból oszlopdiagramot. Kijelölöd azt az oszlopsort, amelyiket vonallá akarod alakítani. Jobb klikk, Minták, itt kiválasztod a vonalat.
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
válasz Fire/SOUL/CD #10141 üzenetére
Igaz, remélem nem beszélnek ennyit .
Vizes Tomi
Szívesen.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
válasz DopeBob #10146 üzenetére
Szerintem egyszerűbb egy darabteli függvénnyel megszámoltatni a 2. lapon, hogy az első lapon az egyes tételek hányszor fordulnak elő.
Munka2-n =DARABTELI(Munka1!A:A;A1)
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
válasz DopeBob #10150 üzenetére
A makrót a ThisWorkbook-hoz, a Workbook_BeforeClose eseményhez rendeld.
Egy For - Next, vagy For Each - Next ciklussal kiválasztod, kiíratod a 0 értékűeket egy lapra.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
válasz Geryson #10159 üzenetére
A különböző tartományoknak nevet adsz.
Az A1:A2 nálam a Kategórianévre hallgat.
Fontos, hogy az allisták azt a nevet kapják, amelyik főlista-beli kategóriába tartoznak. Az E1:E13 tartomány neve Kategória_1, az F1:F11-é Kategória_2.
Az első érvényesítés az A13 cellában van, a lista forrása: =Kategória
A B13-as érvényesítésnél a forrás: =INDIREKT(A13)Szerk.:
A Kategória egyes elemeinek a nevében nem lehet szóköz, és nem szerepelhet önállóan számjegy.[ 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.
-
Delila_1
Topikgazda
válasz m.zmrzlina #10161 üzenetére
A B2 cella érvényesítésébe kellene beírni a HA függvényt a Forrás-hoz.
=HA(A1="fizetések";G1:G4;H1:H4)
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
válasz m.zmrzlina #10164 üzenetére
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
válasz Zomb€€ #10170 üzenetére
Nem egészen világos nekem a kérdés (a kulcsokból is lehet 30-40 db), de lehet, hogy a kimutatás lesz a barátod.
Tegyél ki képet arról, amit össze szeretnél hozni.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
Látom, értékeket illesztettél be a table lapra. Ha ez nem fontos, fel lehet gyorsítani azzal, hogy kihagyjuk a Select-eket.
Sub Masol()
Dim sor%, sor_1%
Sheets("make").Select
sor_1% = 1
For sor% = 1 To 111
If Cells(sor%, 1) > "" Then
Sheets("table").Cells(sor_1%, 1).EntireRow.Insert
Range("A" & sor% & ":I" & sor%).Copy Sheets("table").Cells(sor_1%, 1)
sor_1% = sor_1% + 1
End If
Next
End SubHa mégis az értékek beillesztése kell, holnap megírom.
Szerk.: ez az A1-től másol, az A11-től való másolásnál a For-Next ciklust 11-től kell indítani.
A makródban nem látom a sorok beszúrását (EntireRow.Insert).[ 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.
-
Delila_1
Topikgazda
válasz Zomb€€ #10180 üzenetére
Kértem, hogy tegyél be képet. Mivel nem tettél, a saját elképzelésem szerint írtam meg a makrót, majd átalakítod kedved (és az adataid) szerint.
Az egyik lap neve Oktatás, ahol az A oszlop tartalmazza a szak kódját, a B oszlop a szakra jelentkező nevét.
A másik lap Jelentkezők névre hallgat, ahol az A oszlopban van a név, a B:F oszlopokban a hozzájuk tartozó többi adat.
A harmadik lap az Összesítés, itt az A oszlopban lesz a kód, B-ben a jelentkező neve, a C:G tartományban a jelentkező többi adata.
Szerencsére azt tudom, hogy a 2007-es verziót használod. Nem mindegy, mert egészen más a rendezés a különböző verziókban.
Sub Adategyesítés()
Dim sorA%, usorA%, sorV%, usorV%, sorO%
Dim kód$, név$, adatSor%
Dim WSJ As Object, WSO As Object
Sheets("Oktatás").Select
usorA% = Range("A60000").End(xlUp).Row
'"A" oszlop rendezése
usorA% = Range("A60000").End(xlUp).Row
ActiveWorkbook.Worksheets("Oktatás").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Oktatás").Sort.SortFields.Add Key:=Range("A2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Oktatás").Sort
.SetRange Range("A2:B" & usorA%)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Egyedi rekordok szűrése a V oszlopba
Range("A1:A" & usorA%).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"V1"), Unique:=True
Set WSJ = Sheets("Jelentkezők")
Set WSO = Sheets("Összesítés")
usorV% = Range("V60000").End(xlUp).Row
sorO% = 2
For sorV% = 2 To usorV%
kód$ = Cells(sorV%, 22)
For sorA% = 2 To usorA%
If Cells(sorA%, 1) = kód$ Then
név$ = Cells(sorA%, 2)
WSO.Cells(sorO%, 1) = kód$
adatSor% = WSJ.Range("A:A").Find(név$).Row
WSO.Cells(sorO%, 2) = WSJ.Cells(adatSor%, 1)
WSO.Cells(sorO%, 3) = WSJ.Cells(adatSor%, 2)
WSO.Cells(sorO%, 4) = WSJ.Cells(adatSor%, 3)
WSO.Cells(sorO%, 5) = WSJ.Cells(adatSor%, 4)
WSO.Cells(sorO%, 6) = WSJ.Cells(adatSor%, 5)
WSO.Cells(sorO%, 7) = WSJ.Cells(adatSor%, 6)
sorO% = sorO% + 1
End If
Next
Next sorV%
End SubProgramozó: 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
válasz ql0qxo #10185 üzenetére
Fel kell venned néhány oszlopot a csatolt kép szerint.
Az F2 képlete látszik a szerkesztősorban.
G2:
=HA(DARABTELI($E$2:$E2;$E2)=2;DÁTUM("20"& BAL($C2;2);KÖZÉP($C2;3;2);JOBB($C2;2));"")
H2:
=HA(DARABTELI($E$2:$E2;$E2)=1;IDŐ(BAL($D2;2);JOBB($D2;2);0);"")
I2:
=HA(DARABTELI($E$2:$E2;$E2)=2;IDŐ(BAL($D2;2);JOBB($D2;2);0);"")
J2:
=HA(G3=F2;I3-H2;24-H2+I3)
Az F:J oszlopok formátuma idő, óó:pp. A J oszlopnál csak a 2. sorba írd be a képletet, és az J3 (üres) cellával együtt kijelölve húzd (másold) az adataid mellé, mert itt csak minden második sorba kell képlet. A többinél minden sorba kell.
Az utolsó ember adatát átírtam, hogy kipróbáljam az éjszakás műszakot.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
válasz ql0qxo #10191 üzenetére
Meg lehet adni cellaformázással, hogy csak az órákat mutassa, de az megrövidíti a dolgozót, az 59 percet is elsumákolja. Nem javaslom, így is kiszolgáltatott az, aki melózik.
Csúsztatás: van, ahol 10 órát dolgozik, ezt egyenlíti ki egy másik napon 6 órai melóval. A havi összes óraszám mutatja a valós bent töltött időt.
Egyébként a csúsztatással is veszít, mert a túlórára plusz pénz járna, és nem valószínű, hogy több órát csúsztathat, mint amennyit ledolgozott, 1 óra pluszért nem szoktak 1:15 időt, vagy 1,5 órát adni.
A havi összesítéshez ilyen formátumot javaslok: [ó]:pp.
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
válasz ql0qxo #10193 üzenetére
Akkor átírjuk a képleteket.
F2:
=HA(INT(DARABTELI($E$2:$E2;$E2)/2)<>DARABTELI($E$2:$E2;$E2)/2;DÁTUM("20"& BAL($C2;2);KÖZÉP($C2;3;2);JOBB($C2;2));"")
G2:
=HA(INT(DARABTELI($E$2:$E2;$E2)/2)=DARABTELI($E$2:$E2;$E2)/2;DÁTUM("20"& BAL($C2;2);KÖZÉP($C2;3;2);JOBB($C2;2));"")
H2:
=HA(INT(DARABTELI($E$2:$E2;$E2)/2)<>DARABTELI($E$2:$E2;$E2)/2;IDŐ(BAL($D2;2);JOBB($D2;2);0);"")
I2:
=HA(INT(DARABTELI($E$2:$E2;$E2)/2)=DARABTELI($E$2:$E2;$E2)/2;IDŐ(BAL($D2;2);JOBB($D2;2);0);"")A J2 marad, ahogy volt, és a J3 üres, szintén, ahogy volt.
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
válasz m.zmrzlina #10210 üzenetére
Jó ötlet!
Ennyit egyszerűsítenék rajta a feltételnél:
If IsNumeric(Mid(szoveg, i, 1)) Thenés a végén a biztonság kedvéért:
CSAKSZAM = szam*1Programozó: 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
válasz fi:zi'k #10213 üzenetére
=HA(ÉS(E19<>"";SZÁM(E19));INT(E19*D19*0,9);"-")
vagy
=HA(ÉS(E19<>"";SZÁM(E19));KEREKÍTÉS(E19*D19*0,9;0);"-")Nincs szükség a szorzásnál a zárójelekre, anélkül is ugyanaz az eredmény.
[ 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.
-
Delila_1
Topikgazda
A B3 cellába: {=SZUM((E$3:E$17=A3)*(D$3:D$17>1))}
Ezt úgy tudod létrehozni, hogy beírod a =SZUM((E$3:E$17=A3)*(D$3$17>1)) képletet, és Shift+Ctrl+Enterrel viszed be. Utána már másolhatod az alatta lévő cellákba.
Szerk: a lófogú vigyori figura kettőspont és D betű akar lenni, de ha konvertálatlanra veszem, nem ad félkövér formátumot.
[ 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.
-
Delila_1
Topikgazda
Akkor valamit elszúrtál. Kipróbáltam, 2007-ben és 2003-ban egyformán jól működik.
Most nézem, hogy nem is Microsoft Excelt használsz, legalábbis a kép szerint valami más. Open Office?
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
A nem számokkal is jól kell működnie, kipróbáltam.
A tartomány végén a 17-et átírtad az utolsó sorod számára? Nem maradtak ki a $ jelek?
Annyit módosíthatsz, hogy a képletben a >1 -et átírod >"" -re, és Ctrl+Shift+Enterrel viszed be újra, majd lemásolod.
[ 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.
-
Delila_1
Topikgazda
-
Delila_1
Topikgazda
válasz Bluesummers #10228 üzenetére
Sub Csusztat()
Dim sor%
sor% = 2
Do While Cells(sor, 1) <> ""
If Cells(sor%, 3) + Cells(sor% + 1, 3) = Cells(sor%, 1) And Cells(sor% + 1, 3) > "" Then
Cells(sor%, 3).Delete Shift:=xlUp
Cells(sor%, 3) = Cells(sor%, 1)
End If
sor% = sor% + 1
Loop
End SubA Cells(sor% + 1, 3) > "" feltétel azért kell, mert a példád szerinti C10 cellát törölve az utolsó érték (17. sor) mindkét oszlopban 22, és ebben az esetben az A17=C17+C18, tehát ezt a C22 cellát is törölné.
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
válasz ql0qxo #10230 üzenetére
Ehhez egy kicsit többet kellene tudni a táblázatodról. Pl. hogy hol van a táblázat, melyik oszlopban, vagy sorban fordulhatnak elő duplán az adatok, és hogy a többször szereplő adatok celláját is törölni kell-e (mint a 10228-as kérdésben), vagy csak üresre kell állítani a cellát.
Legegyszerűbb, ha beteszel egy képet.
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
válasz ql0qxo #10232 üzenetére
Ahhoz, hogy a C oszlopban össze tudja hasonlítani a makró az adatokat, a C oszlop szerint kell rendezni a táblázatot. Ha ez nem felel meg, az első üres oszlopba tegyél sorszámot a makró futtatása előtt: az első adat mellé beírsz egy 1-est, és a Ctrl bill. lenyomása mellett lehúzod.
A makró után a sorszámos oszlop szerint visszaállíthatod az eredeti sorrendet.Sub NukuEgyforma()
Dim sor%, usor%
Cells(1).Select 'Rendezés C oszlop szerint
Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
usor% = Range("A10000").End(xlUp).Row
For sor% = usor% To 2 Step -1
If Cells(sor%, 3) = Cells(sor% - 1, 3) Then Rows(sor%).Delete Shift:=xlUp
Next
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Új hozzászólás Aktív témák
- Megmaradt - Eredeti Humble, Choice - Steam kulcsok
- Autómatricák a legjobb minőségben, több ezer minta! PH tagoknak 30% kedvezmény!
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! LEGOLCSÓBB! Automatikus 0-24
- Vírusirtó, Antivirus VPN kulcsok
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs