Avatar billede richter1 Nybegynder
04. april 2008 - 06:48 Der er 9 kommentarer og
1 løsning

Begræns brugerindtastning til tal og mellem 1 og 6

Kan man i et range begrænse mulighederne for indtastning til
1. kun at være tal
2. at ligge i intervallet mellem 1 og 6
3. skal virke i flere ark i samme workbook
Der skal komme en fejlmeddelelse hvis der tastet tal størrende 6, eller der indtastes et bogstav (ved en fejl forstås).
Jeg forestiller mig at man kan bruge en event rutine - men kan blot ikke selv skrue den sammen.
Avatar billede lehmannfarm Nybegynder
04. april 2008 - 07:13 #1
Du vælger for den/de pågældende celler/områder: datavalidering under data. I boksen går du ind under vilkårlig værdi og vælger "helt tal", derefter er default "mellem" og du angiver minimum som "1" og Maksimum som "6" du kan krydse af i feltet andvend ændringerne i alle celler med samme indstillinger.. Den virker og du får fejlmeddelelse hvis indtastningen ligger udenfor 1 og 6 eller ikke er et tal ;-)
Avatar billede richter1 Nybegynder
04. april 2008 - 09:30 #2
Den kender jeg godt, men vil helst have løst problemet via vba kode. Kan du klare den?
Avatar billede excelent Ekspert
04. april 2008 - 11:15 #3
Indsæt følgende kode i ThisWorkbook kodemodul

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target < 1 Or Target > 6 Then
MsgBox ("Forkert tal")
End If
End Sub
Avatar billede richter1 Nybegynder
04. april 2008 - 11:45 #4
-> det ligner meget det jeg søgte. Kan jeg få den til at stille sig i den celle, hvori fejlen opstod? (og med blank celle). Det går galt når brugeren bruger musen til at klikke på næste celle.
Avatar billede excelent Ekspert
04. april 2008 - 14:16 #5
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target < 1 Or Target > 6 Then
MsgBox ("Forkert tal")
End If
Target.Select
Selection=""
End Sub
Avatar billede excelent Ekspert
04. april 2008 - 14:27 #6
Denne er vist bedre:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target < 1 Or Target > 6 Then
MsgBox ("Forkert tal")
Application.EnableEvents = False
Target.Select
Selection = ""
Application.EnableEvents = True
End If
End Sub
Avatar billede richter1 Nybegynder
04. april 2008 - 20:16 #7
-> excelent - den er helt i top - det var præcist det jeg søgte. Læg venligst et svar, så er der fluks point på vej. Tak for hjælpen :O))
Avatar billede richter1 Nybegynder
04. april 2008 - 20:30 #8
Hej igen - kan du sætte et range på, så den kun virker på et område?
Avatar billede excelent Ekspert
04. april 2008 - 21:25 #9
jada indsæt denne linie som nr. 2 i koden
ret A1:A20 til ønsket område koden skal virke i

If Intersect(Target, Range("A1:A20")) Is Nothing Then Exit Sub
Avatar billede richter1 Nybegynder
05. april 2008 - 08:03 #10
Perfekt - God weekend :O))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester