< 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

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje