Excel makro - duplicity ve dvou listech

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Odpovědět
kourasable
nováček
Příspěvky: 14
Registrován: 10 čer 2012 10:19

Excel makro - duplicity ve dvou listech

Příspěvek od kourasable »

Dobrý den,

potřeboval bych trochu pomoci s makrem do Excelu, které poměrně rychle potřebuji, bohužel jsem však nikdy makra netvořil.
Co potřebuji: mám 2 listy s nějakými daty, což je celkem jedno, důležité je, že v každém je jeden sloupec s emaily. Já oba sloupce pořebuji porovnat, a pokud tam bude nějaká shoda v emailu, tak v takovém případě vymazat celý řádek z listu2.

Naznačím malým algoritmem, který mě napadl, bohužel nevím, jak ho zapsat do excelu.

Kód: Vybrat vše

Sub nahrada()

    For I = 0 To Rows.Count
      For J = 1 To Worksheets("List2").Rows.Count
        IF (Range(Cells(I,6)).Text = Worksheets("List2").Range(Cells(J,3)).Text)
          Rows(Worksheets("List2").J).Delete
        End If
      Next J
    Next I

End Sub
Ten druhý cyklus začíná 1 kvůli tomu, že je to o řádek pošoupnuté.

Díky moc, snad jste mě pochopili :-)
Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: 11 čer 2009 21:39

Re: Excel makro - duplicity ve dvou listech

Příspěvek od Branscombe »

Dobrý den, a proč nepoužijete funkci "odebrat duplicity" ? Nebo si nahrajte tuto funkci jako makro a to pak použikte pokud opravdu potřebujete řešit problém makrem.
kourasable
nováček
Příspěvky: 14
Registrován: 10 čer 2012 10:19

Re: Excel makro - duplicity ve dvou listech

Příspěvek od kourasable »

Na funkci "odebrat duplicity" jsem se díval, ovšem já mám data jednak ve dvou listech (což by teda takový problém nebyl), ale především mám data, podle kterých budu duplicity hledat, pokaždé v jiném sloupci, takové nastavení již jsem tam nenašel.

A jak se tedy nahrává funkce jako makro? To by mi mohlo dost pomoci.
cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: 02 bře 2011 19:12
Bydliště: Drsná Vysočina :D

Re: Excel makro - duplicity ve dvou listech

Příspěvek od cmuch »

Ten náznak by v excelu vypadal takto

Kód: Vybrat vše

Sub nahrada()
    For I = 1 To Rows.Count
      For J = 2 To Worksheets("List2").Rows.Count
        If Cells(I, 6).Text = Worksheets("List2").Cells(J, 3).Text Then
          Worksheets("List2").Rows(J).Delete
        End If
      Next J
    Next I
End Sub
Možná by byl lepší nějaký sešit s ukázkou co je potřeba řešit.
Mirdad69
Level 2
Level 2
Příspěvky: 219
Registrován: 01 čer 2012 15:38

Re: Excel makro - duplicity ve dvou listech

Příspěvek od Mirdad69 »

Posílám 2 různá řešení:

Sub Delete_Dupl()
Application.ScreenUpdating = False

'poslední řádek v listu, ve kterém vybírám hledané hodnoty
'použil jsem sloupec A, obecně je to sloupec, ve kterém se předpokládá vyplněná hodnota ve všech řádcích
LR_L1 = Sheets("List2").Range("A65000").End(xlUp).Row
'poslední řádek v listu, ve kterém chci smazat duplicity
LR_L2 = Sheets("List1").Range("A65000").End(xlUp).Row
For I = 2 To LR_L1
For J = 2 To LR_L2
label1:
'to co hledám je ve sloupci A, hledaný text je ve sloupci E
If Sheets("List2").Cells(I, 1) = Sheets("List1").Cells(J, 5) Then
Sheets("List1").Rows(J).Delete Shift:=xlUp
'nesmím se posunout, protože po výmazu se z řádku J+1 stal řádek J
GoTo label1
End If
Next J
Next I

End Sub

Sub Delete_Dupl2()
Application.ScreenUpdating = False
I = 2
J = 2
'předpoklad je, že hodnoty jsou v kontrolovaných sloupcích jsou vyplněny a neprázdné, jinak cyklus skončí
Do While Not IsEmpty(Sheets("List2").Cells(I, 1))
Do While Not IsEmpty(Sheets("LIst1").Cells(J, 1))
If Sheets("List2").Cells(I, 1) = Sheets("List1").Cells(J, 5) Then
Sheets("List1").Rows(J).Delete Shift:=xlUp
Else
J = J + 1
Sheets("LIst1").Cells(J, 1).Select
End If
Loop
I = I + 1
J = 2
Loop

End Sub
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Přechod z Excel 21 na Excel 24
    od Snekment » » v Kancelářské balíky
    2 Odpovědi
    15171 Zobrazení
    Poslední příspěvek od Snekment
  • Pohoda a excel
    od brownwld » » v Kancelářské balíky
    1 Odpovědi
    7850 Zobrazení
    Poslední příspěvek od atari
  • Tisk sloupců vedle sebe na A4 - Excel
    od atari » » v Kancelářské balíky
    5 Odpovědi
    6582 Zobrazení
    Poslední příspěvek od atari
  • Excel 2016 - vzorec kombinace podmínek
    od MK_Vs » » v Kancelářské balíky
    5 Odpovědi
    6702 Zobrazení
    Poslední příspěvek od lubo.

Zpět na „Kancelářské balíky“