Re: Excel - prosba o radu, textovy retezec

From: Kamil Sverak (sverak@csadbk.cz)
Date: 07. 11. 2002, 10:45 CET


> mam tu v Excelu seznam asi 60000 polozek (radku), u kterych potrebuji doplnit
> cislo zakazky na zaklade identifikace podle textu.
> Cili ve sloupci A mam cisla od 1 do 60000, ve sloupci B mam textovy popis a do
> sloupce C potrebuji napsat ciselny kod toho, o co se jedna. Napr. pokud se
> nekde v textu vyskytne retezec "PC", potrebuji do sloupce C dosadit cislo 1313.
> Pokud tam bude retezec "MW", pak cislo 1414.
> Nemuzu ale pouzit VLOOKUP, protoze ono "PC" se muze vyskytnou v kterekoli casti
> toho textoveho popisu. Jako "PC do kancelare 8", "2 PC pro pana Novaka" nebo
> "dil pro PC" a podobne. Napadla me funkce T, ale ono je tech kodovych cisel asi
> 20 a tady jde jen jedno. U VLOOKUPu by bylo hrozne dat dohromady vzorec kde by
> bylo soucasne 20 krat OR.(pokud je to vubec mozne a pokud bych to vubec
> zvladla). Napadlo me makro, ktere by vzdy prohledalo textove pole na zadany
> retezec a byla by tam nejaka podminka -hledej string "PC", pokud tam je napis
> do slouce C ve stejnem radku cislo "1313", pokud nenajdes, hledej string
> "monitor",pokud tam je, napis do sloupce C cislo "1414" atd atd. A az najdes
> nekterou z tech variant, tak tam dosad to cislo a pokracuj na dalsi radek. A to
> cele zastav, az bude radek A prazdny.
> Jo a pokud nenajdes ani jeden z retezcu, nech bunku ve slouci C prazdnou a
> pokracuj na dalsi A.

Myslis neco podobneho? Nepochopil jsem jestli je
na neco udaj v sl A.. Nepouzivam ho! Ty kody si
musis napsat rucne... Sli by nacist z jineho
sesitu..

Do sloupce C das "=dosad_kod(B3)" a do modulu
hodis:
____________________________________________________
Function dosad_kod(text)
    Dim i As Integer
    Dim kod(2, 1)
    
    kod(0, 0) = "PC"
    kod(0, 1) = 1313
    kod(1, 0) = "MW"
    kod(1, 1) = 1414
    kod(2, 0) = "AH"
    kod(2, 1) = 552
    
    For i = 0 To UBound(kod, 1)
        If text Like "*" & kod(i, 0) & "*" Then
            text = kod(i, 1)
            dosad_kod = text
            Exit For
        End If
    Next i
    If i = UBound(kod, 1) + 1 Then 'kdyz jsme nic nenasli
        dosad_kod = ""
    End If
End Function
____________________________________________________

-- 
cao,
 Kamil 



This archive was generated by hypermail 2.1.2 : 07. 11. 2002, 10:46 CET