< návrat zpět

MS Excel


Téma: smazat duplicitní buňky rss

Zaslal/a 20.8.2014 15:40

Dobrý den
Potřebuji poradit s makrem pro smazání hodnot pokud se vyskytují jinde v tabulce.
V mém případě musí provést kontrolu v buňkách BJ25:BK34 - poté provést kontrolu A9:B106
V případě, že najde shodu, hodnoty z buňek A9:B106 vymazat.

Díky

Zaslat odpověď >

#021257
avatar
Třeba

Sub Porovnej()

Dim BlkA As Range, BlkB As Range
Dim CllA As Range, CllB As Range
Dim frstAddr As String
Dim shoda As Integer

' definovani bloku bunek
Set BlkA = Range("BJ25:BK34")
Set BlkB = Range("A9:B106")

shoda = 0 ' pocet shod

Application.ScreenUpdating = False

' prochazet BlkA
For Each CllA In BlkA.Cells
' prohledavat BlkB
With BlkB
Set CllB = .Find(CllA.Value, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows)
If Not CllB Is Nothing And Not IsEmpty(CllB) Then ' pri shode
frstAddr = CllB.Address
Do
CllB.ClearContents
shoda = shoda + 1
GoTo dalsi ' skoc na dalsi hodnotu v bloku A
Set CllB = .FindNext(CllB)

Loop While CllB.Address <> frstAddr
End If
dalsi:
End With
Next CllA

Application.ScreenUpdating = True

MsgBox " Uff, nasel jsem " & shoda & " shod a ty smazal.", vbInformation

' odstranit objektove promenne
Set CllB = Nothing
Set CllA = Nothing
Set BlkB = Nothing
Set BlkA = Nothing
End Sub
citovat
#021264
avatar
Díky. částečně to řeší můj problém.
V úvodu jsem to špatně popsal. Je třeba aby se porovnávala celá oblast.
V buňkách BJ25:BK34 jsou vždy vedle sebe hodnoty které spolu souvisí (např. kod výrobku a jeho množství).
Já bych potřeboval aby se při shodě v buňkách A9:B106 vymazal celý obsah.
V tomto případě se vymaže pouze kod výrobku.
Teoreticky jde porovnávat pouze buňky BJ25:BJ34 ( ty obsahují kod výrobku. Ale v buňkách A9:B106 se musí vymazat celek.
Pro představu posílám tabulku.
Snad jsem to popsal už pořádně
Díky
Příloha: zip21264_test.zip (123kB, staženo 17x)
citovat
#021265
avatar
Tak zmen BlkA a BlkB pouze na sloupce s kody.
Radek CllB.ClearContents nahrad Range(CllB, CllB.Offset(0, 1)).ClearContentscitovat
#021266
avatar
Super díky.
Přesně tak jsem si to představoval. Sice to teď v tabulce nepíše kolik shod našel a smazal(píše že našel 0 shod i když vymaže třeba 4), ale bez toho se obejdu. Hlavně když je to smazané.

Ještě jednou díkycitovat
#021267
avatar
Určitě si smazal o řádek víc.
Podiv se do původního makra a pak co máš nahradit.citovat
#021268
avatar
JJ. Je to tak.
Už to běhá. Tyhle řádky a písmenka je pro mě španelská vesnice.

Díky. 4citovat
#021269
avatar
Navíc je tam (asi zapomenuto při ladění?)
GoTo dalsi ' skoc na dalsi hodnotu v bloku A

Takto to najde jen první shodu. Pokud je tam stejných buněk víc, tak ty další to nemaže.citovat
#021272
avatar
Ja nemam vic stejnych bunek. Kod vyrobku je vzdy jedinecny. Takze je to asi OK. Jestli to dobre chapu.citovat
#021274
avatar
Dobrý postřeh Lubo, ale pokud to tazateli stačí tak asi OK, jinak stačí odmazat.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Vynásobit hodnoty kurzem - Power Query

lubo • 25.4. 19:18

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 15:12

Relativní cesta - zdroje Power Query

Alfan • 25.4. 15:08

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 14:21

Relativní cesta - zdroje Power Query

Alfan • 25.4. 10:49

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 10:47

Relativní cesta - zdroje Power Query

Alfan • 25.4. 10:40