Gå til innhold

[Løst] Tall fra tekstboks blir tolket feil ved utregning.


eiriktb

Anbefalte innlegg

Hei,

 

På jobb bruker vi et Excelark som ordresystem. Vi gjorde alt manuelt før, så jeg har prøvd å lage en userform for å gjøre hverdagen litt enklere. 

 

Userform. 

crzpZTu.png

 

Problemt er når man skal fylle ut delelisten. Hvis man ikke fyller ut alt, men f.eks 2 deler får jeg feilmelding i arket. Se nedenfor.

 

bgpEZxz.png

Koden i cellene med #Verdi! er f.eks =PRODUKT(J25*B25) (Norsk Excel).

Dataen fra tekstboksene til dele-listen sendes slik: .Cells(23, 2).Value = txtPcs1

Så langt skjønner jeg at det blir problemer når tekstboksen sender tall som tekst,

men har ingen god løsning på å fikse det.

 

Er også viktig at cellene som ikke har fått tilsendt tekst/tall fra userform/tekstboks er blanke.

 

Håper dere skjønner hva jeg mener og kan komme med noen tips.

Lenke til kommentar
Videoannonse
Annonse

 

Bruk Hvisfeil(formel);"")

 

Da blir cella tom hvis formelen feiler

 

Vennlig hilsen Ketil

En ting til jeg sliter med. Prøver å samle all dataen fra delelista i en enkelt celle. Koden er som følger.

.Cells((LastRow + 1), 10).Value = txtPcs1 & " " & txtDesc1 & ", " & txtPcs2 & " " & txtDesc2 & ", " & txtPcs3 & " " & txtDesc3 & ", " osv til txtDesc10.

 

Problemet her er igjen at hvis man f.eks bare bestiller 2 deler, fylles cellen opp med komma. Er det mulig å formatere på noen måte?

 

Eks. 3 For testing, 1 For testing2,  ,  ,  ,  ,  ,  ,  ,  

 

Grunnen til at det skal i en celle, er eksportering til sql-database.

Endret av eiriktb
Lenke til kommentar

'Start gjerne en ny tråd når den forrige er løst :)

 

'Legg verdiene i en variabel du kan teste på først

 D = txtPcs1 & " " & txtDesc1 & ", " & txtPcs2 & " " & txtDesc2 & ", " & txtPcs3 & " " & txtDesc3 & ", " & ","
 'Sjekk om du finner to kommaer etter hverandre med space i mellom
 a= InStr(1, D, ", ,")
 ' Finner du det, kapper du strengen der du finner den
 If a Then D = Left(D, a - 1)
 'Sjekk også om de to siste tegnene er ", " og fjern dem hvis du finner dem
 If Right(D, 2) = ", " Then D = Left(D, Len(D - 2))
 'Stapp resten i cella
.Cells((Lastrow + 1), 10) = D
Lenke til kommentar

 

'Start gjerne en ny tråd når den forrige er løst :)

 

'Legg verdiene i en variabel du kan teste på først

 D = txtPcs1 & " " & txtDesc1 & ", " & txtPcs2 & " " & txtDesc2 & ", " & txtPcs3 & " " & txtDesc3 & ", " & ","
 'Sjekk om du finner to kommaer etter hverandre med space i mellom
 a= InStr(1, D, ", ,")
 ' Finner du det, kapper du strengen der du finner den
 If a Then D = Left(D, a - 1)
 'Sjekk også om de to siste tegnene er ", " og fjern dem hvis du finner dem
 If Right(D, 2) = ", " Then D = Left(D, Len(D - 2))
 'Stapp resten i cella
.Cells((Lastrow + 1), 10) = D

 

Supert. Takk så mye igjen. :)

 

Måtte ha to mellomrom mellom komma for å få det til å funke. 

a= InStr(1, D, ",  ,")

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...