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!
excel 2007 kontrola emailové adresy Vyřešeno
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: excel 2007 kontrola emailové adresy
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.
Priloz jako pomoc sesit obsahujici par desitek fiktivnich emailovych adres vcetne problemovych.
Re: excel 2007 kontrola emailové adresy
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ěď.
Díky za rychlou odpověď.

- Přílohy
-
- email_test.xlsx
- (8.26 KiB) Staženo 78 x
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: excel 2007 kontrola emailové adresy
Pro zacatek lze pouzit pro castecne vyhledani i Automaticky filtr - vlastni a podminky.
Napr.:
apod
Napr.:
Kód: Vybrat vše
obsahuje @*@ nebo neobsahuje @
obsahuje (vloz mezeru) nebo obsahuje ,
apod
Re: excel 2007 kontrola emailové adresy
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.
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
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.
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é
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é
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: excel 2007 kontrola emailové adresy Vyřešeno
Navazuji na odpoved od melior:
vyhledavaci vzor podle http://www.zezula.net/cz/prog/regularni_vyrazy.html pokryva 99% vyskytu adres:
Procedura pro kontrolu (v edotru VBA vloz do modulu1, uprav adresu kontrolovaneho bloku adres):
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
Re: excel 2007 kontrola emailové adresy
Všem moc děkuju! asi to budu muset předat ajtáků, protže VBA je pro mě španělsko... :)
Díky!
Díky!
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 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
-
-
- 2
- 12185
-
od Snekment
Zobrazit poslední příspěvek
29 led 2025 15:05
-
- 1
- 4591
-
od atari
Zobrazit poslední příspěvek
07 kvě 2025 09:41
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů