Avatar billede richter1 Nybegynder
03. december 2007 - 16:11 Der er 11 kommentarer og
2 løsninger

Formatering af inputboxen

Hejsa
Hvilke muligheder er der for at formater en inputbox, dels i indtastningen, dels i skriften på inputboxen I formateringen af tekstboxen, har jeg brug for en maske til indtastning af telefonnummer.
Avatar billede jkrons Professor
03. december 2007 - 16:44 #1
Så vidt jeg ved, kan du ikke formatere en inputbox. Du kan formatere resultatet, men ikek indtastningen.
Avatar billede jlemming Nybegynder
03. december 2007 - 20:54 #2
Med denne kode kan man kun indtastet tal

intTal = Application.InputBox("Skriv tal", "TAL", Type:=1)
Avatar billede jlemming Nybegynder
03. december 2007 - 21:06 #3
kontrol af 8 ciffer


While Len(intTal) < 8
  intTal = Application.InputBox("Skriv nr (min 8 ciffer)", "NR", Type:=1)
Wend
Avatar billede richter1 Nybegynder
03. december 2007 - 21:11 #4
ikrons - det er ok at det er resultatet som formateres. Jeg skal have brugeren til at indtaste et telefonnummer, der skal formateres: xx xx xx xx

jlemming - kan du udbygge din formel så den kan ovenstående?

Findes der en tilsvarende inttal, som sikre at der kun indtastes tekst (altså ingen tal)?
Avatar billede jkrons Professor
03. december 2007 - 21:23 #5
N¨år du overfører til arket, kan du formatere, fx

While Len(inttal) < 8
  inttal = Application.InputBox("Skriv nr (min 8 ciffer)", "NR", Type:=1)
Wend
ActiveCell.Value = Format(inttal, "@@ @@ @@ @@")
Avatar billede jkrons Professor
03. december 2007 - 21:25 #6
Hvis du kun vil have tekst, så ret type til 2.
Avatar billede richter1 Nybegynder
03. december 2007 - 21:34 #7
ikrons - det virker ikke hvis jeg ændre typen fra 1 til 2. Den acceptere stadig tal.
Kan man ikke sætte antallet af cifre til netop 8?
Avatar billede jkrons Professor
03. december 2007 - 21:41 #8
Den accepter tal, fordi tekst også kan være tal. Hvis du mener, at der kun må indtastes bogstaver bliver det sværere.
Denne giver dig kun mulighed for at indtaste præcis otte cifre:

Sub t()
While Len(inttal) <> 8
  inttal = Application.InputBox("Skriv nr (min 8 ciffer)", "NR", Type:=1)
Wend
ActiveCell.Value = Format(inttal, "@@ @@ @@ @@")
End Sub
Avatar billede richter1 Nybegynder
04. december 2007 - 15:22 #9
Den sidste løsning virker fint, men hælder alligevel til at bruge en userform, da jeg tilsyneladende ikke kan få indflydelse på udformningen af inputboxen. Er det sidste korrekt opfattet?
Avatar billede jkrons Professor
04. december 2007 - 15:57 #10
Helt rigtigt set :-) En inputbox er et standardobjekt i VBA, og det kan du ikke ændre meget på. Hvis du ønsker selv at kontrollere så meget så nuligt ville jeg nok også vælge en userform.
Avatar billede richter1 Nybegynder
04. december 2007 - 16:11 #11
Det er ok.
Hvis I begge lægger et svar, så deler jeg de 60 point.

Tak for jeres indsatsen, selvom jeg ikke kom helt i mål, så fik jeg da afklaret nogle ting. som jeg ikke vidste i forvejen :O)
Avatar billede jkrons Professor
04. december 2007 - 18:16 #12
Velbekomme :-)
Avatar billede jlemming Nybegynder
04. december 2007 - 18:40 #13
velbekomme :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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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