excel 2007 kontrola emailové adresy Vyřešeno

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

Moderátor: Mods_senior

marino
nováček
Příspěvky: 11
Registrován: květen 10
Pohlaví: Muž
Stav:
Offline

excel 2007 kontrola emailové adresy

Příspěvekod marino » 27 kvě 2010 10:42

Zdravím, můžete mi poradit funkci na kontrolu emailové adresy? Ve sloupci mám cca 25000 adres, některé buňky obsahují 2 adresy, v jiných chybí např. tečka před doménou nebo je v nich mezera, diakritika apod. Lze to řešit nějakým jednoduchým vzorcem?

Díky!

Reklama
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: excel 2007 kontrola emailové adresy

Příspěvekod navstevnik » 27 kvě 2010 11:47

Moc te nepotesim, jednoduchy vzorec na to neexistuje. Je nutno se zahloubat do oblasti regularnich vyrazu. Nejake uvodni info je zde: http://excelplus.net/news.php?readmore=7. Do teto oblasti jsem jen nahledl, takze odpoved nebude hned (moznaze nekdo se tim uz zabyval a proptne odpovi).
Priloz jako pomoc sesit obsahujici par desitek fiktivnich emailovych adres vcetne problemovych.

marino
nováček
Příspěvky: 11
Registrován: květen 10
Pohlaví: Muž
Stav:
Offline

Re: excel 2007 kontrola emailové adresy

Příspěvekod marino » 27 kvě 2010 14:36

určitě to projedu, pokud ne, budu se muset spokojit s tím, že to vyplivne emilový klient jako nedoručitelné.
Díky za rychlou odpověď. :satisfied:
Přílohy
email_test.xlsx
(8.26 KiB) Staženo 78 x

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: excel 2007 kontrola emailové adresy

Příspěvekod navstevnik » 30 kvě 2010 13:48

Pro zacatek lze pouzit pro castecne vyhledani i Automaticky filtr - vlastni a podminky.
Napr.:

Kód: Vybrat vše

 obsahuje   @*@           nebo     neobsahuje   @

 obsahuje (vloz mezeru)   nebo     obsahuje     ,

apod

Uživatelský avatar
melior
Level 3.5
Level 3.5
Příspěvky: 977
Registrován: září 07
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: excel 2007 kontrola emailové adresy

Příspěvekod melior » 30 kvě 2010 14:22

Regularni vyrazy v klasickych VBA (tedy v makrech) nejdou (nebo aspon ne jednoduse), da se to ale obejit pomoci VBScript objektu. Ten take podporuje regularni vyrazy.
http://msdn.microsoft.com/en-us/library/ms974570.aspx
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

V excelu muzes v Makru pouzit objekt VB Script napr. pomoci Late Bindingu:
http://msdn.microsoft.com/en-us/library ... 10%29.aspx

makro by pak vypadalo nejak takto.

Kód: Vybrat vše

''vytvori objekt, ktery je zdedeny z VBScriptu - regularni vyraz
Set objReg=CreateObject("vbscript.regexp")
'' nastaveni vzoru pro emailovou adresu. vyznam jednotlivych vyrazu najdes na odkazech vyse
objReg.Pattern="[a-zA-Z0-9]+@[a-zA-Z0-9]+"


kontrolu pak provadis pomoci metody Test:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

takze napr bys mel emailovou adresu v bunce A1

Kód: Vybrat vše

Dim emailaddr As String
Dim hResult As Boolean
emailaddr = A1.Text()

hResult = objReg.Test(emailaddr)


Pokud se objReg.Pattern (tedy regularnim vyrazem popsany "spravny tvar emailu") shoduje s textem v bunce A1, vysledkem *hResult je TRUE. Jestlize je obsah bunky jiny (tedy v tomto pripade emailova adresa obsahuje mezery, nebo jine nepovolene znaky, nebo chybi zavinace apod, pak je FALSE.
if (count(legs)==6) bug
else feature;

Dvě monarchie v nejednotné Evropě...
Dvě koloniální říše v neklidném světě 23. století...
Jaderné mocnosti s historií osmi vzájemných válek...
Federativna kraljevina Jugoslavija a Císařství České

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: excel 2007 kontrola emailové adresy  Vyřešeno

Příspěvekod navstevnik » 31 kvě 2010 17:05

Navazuji na odpoved od melior:
vyhledavaci vzor podle http://www.zezula.net/cz/prog/regularni_vyrazy.html pokryva 99% vyskytu adres:

Kód: Vybrat vše

^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$


Procedura pro kontrolu (v edotru VBA vloz do modulu1, uprav adresu kontrolovaneho bloku adres):

Kód: Vybrat vše

Option Explicit

Sub TestEMailAddr()
  Dim TBlk As Range, TCll As Range
  Dim RegEx As Object
  Set RegEx = CreateObject("VBScript.RegExp")
  RegEx.Pattern = "^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$"
  Set TBlk = Worksheets("list1").Range("a2:a10")
  For Each TCll In TBlk.Cells
    If RegEx.Test(TCll.Value) = False Then TCll.Offset(0, 1).Value = "chyba"
  Next TCll
  Set RegEx = Nothing
  Set TBlk = Nothing
  Set TCll = Nothing
End Sub

marino
nováček
Příspěvky: 11
Registrován: květen 10
Pohlaví: Muž
Stav:
Offline

Re: excel 2007 kontrola emailové adresy

Příspěvekod marino » 01 čer 2010 10:42

Všem moc děkuju! asi to budu muset předat ajtáků, protže VBA je pro mě španělsko... :)
Díky!


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • MAC Adresy
    od draxxx » 10 kvě 2025 16:50 » v Administrace sítě
    4
    7086
    od draxxx Zobrazit poslední příspěvek
    10 kvě 2025 18:46
  • 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
    4772
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • Příchozí email z vlastní adresy, který jsem neodeslal (gmail)
    od Milan21 » 08 srp 2024 16:31 » v Vše ostatní (bezp)
    5
    4051
    od jaro3 Zobrazit poslední příspěvek
    08 srp 2024 20:56
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    12185
    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
    4591
    od atari Zobrazit poslední příspěvek
    07 kvě 2025 09:41

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

Kdo je online

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