• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA output formatteren

Status
Niet open voor verdere reacties.

lemonstreet25

Gebruiker
Lid geworden
27 sep 2016
Berichten
52
Excellisten,

Middels onderstaande code lees ik waarden uit een userform en schrijf die weg in een (excel) tabel. De kolom voor de waarde van (bijv.) Textbox2 is in Excel geformatteerd op "rechtsuitlijnen"; mijn sub schrijft hem echter "links uitgelijnd weg. Hoe corrigeer ik dat?

Option Explicit
Private Sub CommandButton1_Click()
Dim NewRow As ListRow
Set NewRow = Selection.ListObject.ListRows.Add(AlwaysInsert:=True)
NewRow.Range.Cells(1, 1).Value = TextBox1.Value
NewRow.Range.Cells(1, 2).Value = TextBox2.Value
NewRow.Range.Cells(1, 8).Value = TextBox3.Value
NewRow.Range.Cells(1, 4).Value = TextBox4.Value
NewRow.Range.Cells(1, 5).Value = TextBox5.Value
NewRow.Range.Cells(1, 6).Value = TextBox6.Value
NewRow.Range.Cells(1, 7).Value = TextBox7.Value
NewRow.Range.Cells(1, 17).Value = TextBox8.Value
NewRow.Range.Cells(1, 20).Value = TextBox9.Value
NewRow.Range.Cells(1, 21).Value = TextBox10.Value
NewRow.Range.Cells(1, 11).Value = TextBox11.Value
NewRow.Range.Cells(1, 3).Value = ComboBox1.Value
If radJa.Value = True Then
NewRow.Range.Cells(1, 10).Value = radJa.Caption
ElseIf Radnee.Value = True Then
NewRow.Range.Cells(1, 10).Value = Radnee.Caption
End If
If OptionButton1.Value = True Then
NewRow.Range.Cells(1, 18).Value = OptionButton1.Caption
ElseIf OptionButton2.Value = True Then
NewRow.Range.Cells(1, 18).Value = OptionButton2.Caption
End If
If OptionButton3.Value = True Then
NewRow.Range.Cells(1, 18).Value = OptionButton3.Caption
ElseIf OptionButton4.Value = True Then
NewRow.Range.Cells(1, 18).Value = OptionButton4.Caption
ElseIf OptionButton5.Value = True Then
NewRow.Range.Cells(1, 18).Value = OptionButton5.Caption
End If
Unload Me
End Sub

Mvrgr,

Luc
 
Je kan eens beginnen met de code tussen codetags te plaatsen. Een voorbeeldbestand is ook welkom.
 
Code:
Option Explicit
 Private Sub CommandButton1_Click()
 Dim NewRow As ListRow
 Set NewRow = Selection.ListObject.ListRows.Add(AlwaysInsert:=True)
 NewRow.Range.Cells(1, 1).Value = TextBox1.Value
 NewRow.Range.Cells(1, 2).Value = TextBox2.Value
 NewRow.Range.Cells(1, 8).Value = TextBox3.Value
 NewRow.Range.Cells(1, 4).Value = TextBox4.Value
 NewRow.Range.Cells(1, 5).Value = TextBox5.Value
 NewRow.Range.Cells(1, 6).Value = TextBox6.Value
 NewRow.Range.Cells(1, 7).Value = TextBox7.Value
 NewRow.Range.Cells(1, 17).Value = TextBox8.Value
 NewRow.Range.Cells(1, 20).Value = TextBox9.Value
 NewRow.Range.Cells(1, 21).Value = TextBox10.Value
 NewRow.Range.Cells(1, 11).Value = TextBox11.Value
 NewRow.Range.Cells(1, 3).Value = ComboBox1.Value
 If  radJa.Value = True Then
 NewRow.Range.Cells(1, 10).Value = radJa.Caption
 ElseIf Radnee.Value = True Then
 NewRow.Range.Cells(1, 10).Value = Radnee.Caption
 End If
 If OptionButton1.Value = True Then
 NewRow.Range.Cells(1, 18).Value = OptionButton1.Caption
 ElseIf OptionButton2.Value = True Then
 NewRow.Range.Cells(1, 18).Value = OptionButton2.Caption
 End If
 If OptionButton3.Value = True Then
 NewRow.Range.Cells(1, 18).Value = OptionButton3.Caption
 ElseIf OptionButton4.Value = True Then
 NewRow.Range.Cells(1, 18).Value = OptionButton4.Caption
 ElseIf OptionButton5.Value = True Then
 NewRow.Range.Cells(1, 18).Value = OptionButton5.Caption
 End If
 Unload Me
 End Sub

Bekijk bijlage Invoerformulier BC sheet.xlsm
 
Laatst bewerkt:
Je kan er dit tussenvoegen:
Code:
.Range.Cells(1, 2).HorizontalAlignment = xlRight
 
Dank! Dat werkt alvast. Heb je wellicht ook een idee waarom de "TextBox2.SetFocus" line niet werkt? Zowiezo, als je door de Userform loopt met <TAB> slaat hij af en toe een veld over. Geen idee waardoor dat kan komen eerlijk gezegd.
 
klik met rechtermuisknop op je userform en kies voor tabvolgorde
 
VBA input valideren (intelligentie toevoegen)

Heren, hartelijk dank! Ik kom steeds verder. Nu wil ik de input valideren. D.w.z. als ik nu invoer in Textbox2 "12-96" ziet VBA daar een datum in; namelijk 01-12-1996. Hoe kan ik afdwingen dat er conform format "dd-12-yyyy" wordt ingevoerd? En hoe kan ik voorwaarden stellen als bijv:
  • Invoerdatum moet na "01-01-2000" vallen ?
  • Textbox2.value moet groter zijn dan Textbox1.value?

Met uw welnemen tevens de vraag hoe ik de cursor na foutmelding (msgbox) in de juiste textbox krijg. Set.focus in onderstaande code helpt niet.

Code:
Private Sub TextBox2_AfterUpdate()
     If IsDate(TextBox2.Value) Then
        TextBox2 = Format(TextBox2, "dd-mm-yyyy")
        TextBox2.BackColor = rgbWhite
    Else
        TextBox2.BackColor = rgbPink
        MsgBox ("Please Enter a Vaid Date")
        TextBox2.SetFocus
        Exit Sub
    End If
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan