Excel-VBA : Porovnavani cisel s rozdilnymi formaty Vyřešeno

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

Moderátor: Mods_senior

Adalbert
nováček
Příspěvky: 28
Registrován: únor 11
Pohlaví: Muž
Stav:
Offline

Excel-VBA : Porovnavani cisel s rozdilnymi formaty  Vyřešeno

Příspěvekod Adalbert » 10 říj 2011 11:49

Dobry den,

soucasti meho makra je i cast porovnavajici (na shodnost) cisla, ktera jsou ovsem v ruznych formatech.
Zatimco v jednom sloupci jsou cisla ve formatu 'obecny', druhy sloupec cisel je ve formatu 'vlastni'.
Format 'vlastni' v druhem sloupci je dan tim, ze tyto data byly sbirany rucne a jelikoz byly zadavany cisla ktera maji vzdy stejny prefix, doplnovali se pouze posledni tri řády cisel a 8 mistny prefix se doplnil automaticky.

Pro nazornost prikladam priklad.
Pozadovanym vysledkem je, aby do sloupce C:C bylo po spusteni makra zapsano 'shoda' jak by to fungovalo, kdyby cisla nebyly v rozdilnych formatech.

Kód: Vybrat vše

     Option Explicit

        Sub Srovnat()
          Dim BlkA As Range, BlkB As Range
          Dim CllA As Range, CllB As Range
          Dim frstAddr As String
          ' definovani bloku bunek na listech
          With Worksheets("List1")
            Set BlkA = .Range(("a1:a") & .Cells(.Rows.Count, "a").End(xlUp).Row)
          End With
          With Worksheets("List2")
            Set BlkB = .Range(("a1:a") & .Cells(.Rows.Count, "a").End(xlUp).Row)
          End With
          ' 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 Then  ' pri shode porovnat sloupce B:B
                frstAddr = CllB.Address
                Do
                  If CllB.Offset(0, 1).Value = CllA.Offset(0, 1).Value Then  ' pri shode doplnit do sl C:C 'shoda'
                    CllB.Offset(0, 2).Value = "shoda"
                  End If
                 Set CllB = .FindNext(CllB)
                 Loop While CllB.Address <> frstAddr
               End If
            End With
          Next CllA
          ' odstranit objektove promenne
          Set CllB = Nothing
          Set CllA = Nothing
          Set BlkB = Nothing
          Set BlkA = Nothing
        End Sub
Přílohy
Sešit1.xls
(27.5 KiB) Staženo 15 x

Reklama
d1amond
člen HW spec týmu
Elite Level 12
Elite Level 12
Příspěvky: 16119
Registrován: květen 08
Bydliště: České Budějovice
Pohlaví: Muž
Stav:
Offline

Re: Excel-VBA : Porovnavani cisel s rozdilnymi formaty

Příspěvekod d1amond » 10 říj 2011 12:00

Přetypování nefunguje?

Kód: Vybrat vše

CInt(CllB.Offset(0, 1).Value)


Nestahoval jsem sešit, tak nevím jaké typy čísel se tam vyskytují, ale přetypování lze provést na libovolnou hodnotu (zde CInt > Integer), tak to zkus.
Nikdy neříkej, že to nejde, protože se najde někdo, kdo o tom neví a udělá to!
Chcete si nechat sestavit nový počítač?

Adalbert
nováček
Příspěvky: 28
Registrován: únor 11
Pohlaví: Muž
Stav:
Offline

Re: Excel-VBA : Porovnavani cisel s rozdilnymi formaty

Příspěvekod Adalbert » 10 říj 2011 12:30

Bohuzel konverze na Integer nepomohla. Stale bere makro v potaz cislo ve formatu v jakem bylo zapsano (posledni 3 řády) a nikoliv jako celek s prefixem.

Lucinka_BUBU
Level 1
Level 1
Příspěvky: 90
Registrován: září 11
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel-VBA : Porovnavani cisel s rozdilnymi formaty

Příspěvekod Lucinka_BUBU » 13 říj 2011 13:08

Jestliže zadáváš jen poslední tři řády, tak zkus porovnat jen ty tři řády.

viz příloha

Vzorecek, co jsem tam vložila je jen pro ukázku, nebude fungovat na prvních 99 čísel.
Přílohy
Sešit1.xls
(37.5 KiB) Staženo 14 x


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • 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
    4792
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    12212
    od Snekment Zobrazit poslední příspěvek
    29 led 2025 15:05
  • Pohoda a excel Příloha(y)
    od brownwld » 06 kvě 2025 17:28 » v Kancelářské balíky
    1
    4678
    od atari Zobrazit poslední příspěvek
    07 kvě 2025 09:41
  • Excel - výpočet nočních hodin Příloha(y)
    od Uziv00 » 17 říj 2024 11:22 » v Kancelářské balíky
    3
    3323
    od lubo. Zobrazit poslední příspěvek
    24 říj 2024 00:00
  • Excel 2016 - vzorec kombinace podmínek Příloha(y)
    od MK_Vs » 08 led 2025 17:56 » v Kancelářské balíky
    5
    4085
    od lubo. Zobrazit poslední příspěvek
    14 led 2025 00:51

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

Kdo je online

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