Excel 2007-uprava kodu pro vyhledani a kopirovani duplicit

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

Moderátor: Mods_senior

David7
nováček
Příspěvky: 9
Registrován: duben 11
Pohlaví: Muž
Stav:
Offline

Excel 2007-uprava kodu pro vyhledani a kopirovani duplicit

Příspěvekod David7 » 06 dub 2011 11:51

Zdravim,
ve VBA jsem uplny zacatecnik a kod jsem skladal podle jinych uverejnenych kodu.

Makro mi funguje, ale pri velkem mnozsti radku je zdlouhave. Jakym zpusobem je mozno zminene makro upravit nebo zmenit tak, aby se zrychlilo?

Ve sloupci B a C vyhledavam duplicitni hodnoty (hodnoty jsou jedinecne) a tyto hodnoty vkladam do prislusnych radku sloupce D podle radku B - vysledkem ve sloupci D jsou duplicitni hodnoty a prazdne bunky. Sloupec D je pomocny, protoze jsem nevedel, jak jinak to udelat. Tento sloupec vubec nepotrebuji.
Pote provedu kopii hodnot ze sloupce D do sloupce H za sebe s vynechanim prazdnych bunek.

Dekuji za pripadne rady ci upravy.

Kód: Vybrat vše

Option Explicit

Sub kopie_dupl_hodnot2()

  'promenne pro vyhledani duplicitnich hodnot
  Dim data1 As Variant, data2 As Variant, x As Variant, y As Variant

  'promenne pro zjisteni polohy posledni bunky duplicitnich hodnot
  Dim WS As Worksheet
  Dim LastCell As Range
  Dim LastCellRowNumber As Long

  'promenne pro kopii a serazeni duplicitnich hodnot
  Dim i, j
  Dim kopirovat_co As Range, kopirovat_kam As Range
 
  Application.ScreenUpdating = False
 
  Sheets("list1").Activate
 
  Set WS = ActiveSheet
 
  With WS
    .Columns("D:D").ClearContents
    .Columns("H:H").ClearContents
    .Cells(3, 4) = "duplicita"
    .Cells(3, 8) = "datum"
  End With
 
    ' Nastavavení hodnoty data2 na rozsah pro porovnávání výběru.
    Set data2 = ActiveSheet.Range("C4", [C50000].End(xlUp))

    ' Projít všechny buňky data1 a porovnat s každou
    ' buňkou v data2.
    Set data1 = ActiveSheet.Range("B4", [B50000].End(xlUp))
   
    'zapsani duplicitnich hodnot do sloupce D
    'duplicitni hodnoty jsou vkladany do prislusneho radku do sloupce D podle sloupce B
    'pokud ve sloupci B neni duplicitni hodnota, do prislusneho radku ve sloupci D se vlozi prazdna bunka
    For Each x In data1
        For Each y In data2
            If x = y Then x.Offset(0, 2) = x
        Next y
    Next x
 
  'nastaveni kopirovani duplicitnich hodnot s vynechanim prazdnych bunek
  Set kopirovat_co = ActiveSheet.Range("D4")
  Set kopirovat_kam = ActiveSheet.Range("H4")
   
  'cislo posledniho radku ve sloupci D
  With WS
    Set LastCell = .Cells(.Rows.Count, "D").End(xlUp)
    LastCellRowNumber = LastCell.Row
  End With
 
  'kopie duplicitnich hodnot za sebe
  'ze sloupce D do sloupce H kopiruji jen bunky, ktere nejsou prazdne
  For i = 1 To LastCellRowNumber - 3
    If kopirovat_co.Offset(i - 1, 0).Value <> Empty Then
    kopirovat_kam.Offset(j, 0) = kopirovat_co.Offset(i - 1, 0).Value
    j = j + 1
    End If
  Next i
   
  Application.ScreenUpdating = True
 
End Sub

Přílohy
srovnani datumy_2.xlsm
(105.07 KiB) Staženo 33 x

Reklama
  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Prosím o úpravu kódu. Děkuji *
    od junis » 09 črc 2024 18:05 » v Kancelářské balíky
    4
    4413
    od junis Zobrazit poslední příspěvek
    22 črc 2024 17:54
  • EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
    od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw)
    2
    4791
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • ComboBox v Excelu kopírování Příloha(y)
    od LukM » 19 říj 2024 14:03 » v Kancelářské balíky
    0
    2648
    od LukM Zobrazit poslední příspěvek
    19 říj 2024 14:03
  • Uprava vzorce
    od junis » 27 črc 2024 15:43 » v Kancelářské balíky
    6
    5241
    od junis Zobrazit poslední příspěvek
    02 srp 2024 18:02
  • Úprava pc pro Kingdome Come Deliverance 2
    od barryk10cz » 07 led 2025 17:00 » v Rady s výběrem hw a sestavením PC
    13
    3713
    od Hangli Zobrazit poslední příspěvek
    09 led 2025 22:42

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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti