Excel VBA | Cijfer wordt genoteerd als tekst

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • roywaarts
  • Registratie: Juli 2011
  • Laatst online: 01-04-2019
Hoi!

Ik heb in VBA een regel staan:
Sheets("Orders").Cells(Rows.Count, 4).End(xlUp).Offset(1) = OrderNummer

In het formulier in VBA moet er een numeriek ordernummer worden ingevuld en deze wordt dan geplaatst in Excel.
Alleen in Excel komt hij als tekst en niet als getal.

Wat moet ik veranderen zodat het als getal in Excel komt en niet meer als tekst?
...

Excel 2010
...

Alvast bedankt! O-)
...

Alle reacties


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Je bent op de ... vergeten de verdere context en je eigen gedachten /pogingen in te vullen ;)

Is OrderNummer inderdaad een nummer? Wat doet bijv een debug.print of een messagebox met Ordernummer? Opmaak van de doelcel? Misschien een andere functie die onchange() omzet?

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • Joran
  • Registratie: December 2005
  • Laatst online: 04-06 20:08

Joran

<3 natalee

Cell.NumberFormat = "0"

En natuurlijk:

code:
1
Dim OrderNummer as Integer

Send me your gameboys


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Oh wacht, zo als tekst. Ik dacht aan het veel leukere probleem van uitschrijven :D (123 -> een twee drie).

dat is idd basic de datatypes goed zetten.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • roywaarts
  • Registratie: Juli 2011
  • Laatst online: 01-04-2019
uhm... dus zo?

Dim OrderNummer as Integer

With Sheets("Orders")
Sheets("Orders").Cells(Rows.Count, 4).End(xlUp).Offset(1) = OrderNummer Cell.NumberFormat = "0"

ik heb trouwens meerdere vakjes waar nummers in worden genoteerd, bijvoorbeeld het klantnummer.
moet ik dan ook

Dim KlantNummer as Integer

erbij zetten?

Acties:
  • 0 Henk 'm!

  • roywaarts
  • Registratie: Juli 2011
  • Laatst online: 01-04-2019
Oh ik ben er achter...
Als je er .value er achter zet is het opgelost :)

Acties:
  • 0 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 14:00
roywaarts schreef op vrijdag 22 september 2017 @ 11:58:
With Sheets("Orders")
Sheets("Orders").Cells(Rows.Count, 4).End(xlUp).Offset(1) = OrderNummer Cell.NumberFormat = "0"
tips:
  1. Altijd
    code:
    1
    
    Option Explicit
    bovenaan je VBA zetten!!! dan moet je alle variabelen netjes definiëren, en kun je ook nooit typo's maken in je naamgeving. (kan wel, maar dan krijg je een foutmelding)
  2. Als je een With gebruikt, hoef je op de volgende regels niet de Sheets("Orders") opnieuw te benoemen, die kan achterwege blijven. dat is het hele doel van die "With".
  3. Integers zijn tricky. In VBA kunnen ze enkel een waarde bevatten tussen -32768 en 32767. Tenzij je 10000% zeker weet dat je daar nooit buiten zult gaan, kun je beter een Long gebruiken (-2147483648 tot 2147483647).

[ Voor 14% gewijzigd door breew op 22-09-2017 13:11 ]


Acties:
  • +1 Henk 'm!

  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 09:33
of heel simpel achter je code /1 zetten... Dan denkt Excel ook dat het een getal is :D
Pagina: 1