Avatar billede Henry Poulsen Mester
02. februar 2022 - 17:45 Der er 1 kommentar og
2 løsninger

VBA Inputbox talformast

Med en VBA makro skal bruger åbne en med tal navngivet konto i Excel.
I en inputbox med variabel typen Integer indtastes kontonr. hvorefter makroen søger kontoen. Men tallet der registreres i inputboxen, er formateret som  text, dvs med citationstegn før og efter.
Uanset om jeg formaterer konto nummer som standard eller tal, kan makroen ikke finde det tal jeg har bedt den søge i inputboxen. Ved trin afspilning kører makroen blot videre i stedet for at registrere det ønskede tal.
Min kode ser sådan ud:

dim ktnr as integer
[O3].Select
                  ktnr = InputBox(" Indtast konto nummer", "      Havnø Mølles Venner", , 12000, 8000)
                        If ktnr > 0 And ktnr < 100 Then GoTo næste
                        GoTo forfra
næste:
        Application.ScreenUpdating = False
       
          Do Until ActiveCell.Value = ktnr
                ActiveCell.Offset(1, 0).Select
                    If ActiveCell.Value = "" Then
02. februar 2022 - 18:01 #1
Her er et eksempel... inputboksen er bare tekst, og sådan er det, men hvis du vil have den til en integer, så konverter den... her hopper den retur og stiller spørgsmålet igen, hvis ikke det er et tal...

    Dim sUserAnswer As String, iKontoNr As Integer

progErrEnterNumberAgain:
    sUserAnswer = InputBox(" Indtast konto nummer", "      Havnø Mølles Venner", , 12000, 8000)
   
    On Error GoTo progErrEnterNumberAgain:
    iKontoNr = CInt(sUserAnswer)
    On Error GoTo 0
Avatar billede Dan Elgaard Ekspert
03. februar 2022 - 12:35 #2
Du skal ikke bruge funktionen 'InputBox()', men derimod metoden 'InputBox()', med den korrete variable type.

Dim ktnr As Long
ktnr = Application.InputBox(Title:="Havnø Mølles Venner",  Prompt:="Indtast konto nummer",  Default:=123456, Type:=1)

Bemærk, det sidste argument (Type:=).
Dette argument findes ikke i funktionen, 'InputBox()', men findes i metoden 'InputBox()', og er det argument, der fortæller, at resultatet skal være et nummer.

PS: Definere ALDRIG dine variabler som 'Integer'. !!!
Avatar billede Henry Poulsen Mester
04. februar 2022 - 11:37 #3
Tak til jer begge. De 2 forskellige løsninger virker perfekt. Jeg har valgt at bruge Dan Elgaards løsning, den synes enklere. Og så husker jeg variabel definitionen.
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

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