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
- 
				navstevnik
 - 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 82 x
 
 
- 
				navstevnik
 - 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é
- 
				navstevnik
 - 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 SubRe: 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
 - 21645
 - 
						od draxxx
						Zobrazit poslední příspěvek 
10 kvě 2025 18:46
 
 - 
				
- 2
 - 13957
 - 
						od Snekment
						Zobrazit poslední příspěvek 
29 led 2025 15:05
 
 - 
				
- 1
 - 7022
 - 
						od atari
						Zobrazit poslední příspěvek 
07 kvě 2025 09:41
 
 - 
				
- 
												Excel 2016 - vzorec kombinace podmínek Příloha(y)
od MK_Vs » 08 led 2025 17:56 » v Kancelářské balíky - 5
 - 5684
 - 
						od lubo.
						Zobrazit poslední příspěvek 
14 led 2025 00:51
 
 - 
												
 - 
				
- 5
 - 5458
 - 
						od atari
						Zobrazit poslední příspěvek 
26 dub 2025 09:11
 
 
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 16 hostů


