[Excel] Waarden automatisch in een lijst plaatsen

Pagina: 1
Acties:

  • stefanbstefan
  • Registratie: Oktober 2002
  • Laatst online: 18-07-2025
Ik ben bezig een mooie spreadsheat te maken om mijn cijfers in bij te houden. Nu heb ik een hoofdblad, met daarbij alle 11 vakken als knop, die ik dmv. een macro een dialoogvenster laat openen (met VB geschreven). Daarin kun je dan je cijfer in een tekstvak typen en op 'Toevoegen' of 'Annuleren' klikken. Maar als je een waarde toevoegt, dan kun je maar één cel opgeven waar dit cijfer moet komen te staan. Als je hierna dus nog een cijfer wilt invoeren, dan komt hij dus in hetzelfde vakje terecht, en is het vorige cijfer verdwenen. :'(

Het beste zou zijn, dat wanneer ik het tweede cijfer toevoeg dat die ernaast of eronder komt, etc. etc.

Is hier een oplossing voor, dat elke keer als je op toevoegen drukt, het cijfer beneden het laatst toegevoegde cijfer komt?

Alvast bedankt ;)

  • CoRrRan
  • Registratie: Juli 2000
  • Laatst online: 02-06 20:28

CoRrRan

Don't Panic!!!

Visual Basic:
1
2
3
4
5
6
7
8
9
10
Private Sub CommandButton1_Click()
    
    Dim newrow As Integer
    
    Range("B1").Activate
    
    newrow = Application.WorksheetFunction.CountA(Columns(2)) - 1
    ActiveCell.Offset(newrow, 0).Value = UserForm1.TextBox1.Value
    
End Sub
Probeer eens iets met dit te doen? Kun je hiermee verder?

-- == Alta Alatis Patent == --


  • stefanbstefan
  • Registratie: Oktober 2002
  • Laatst online: 18-07-2025
Ik ben niet zo bekend met VB :| , maar ik heb de volgende code:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Btn_Ja_Click()
    JofN = vbYes
    Sheets("Blad2").Range("B1").Value = cijfernl
    Sheets("Blad2").Select
    Range("B1").Select
    Selection.Cut
    Range("C1").Select
    ActiveSheet.Paste
        
    Dim newrow As Integer
    
    Sheets("Blad2").Select
    Range("B1").Activate
     
    newrow = Application.WorksheetFunction.CountA(Columns(2)) - 1
    ActiveCell.Offset(newrow, 0).Value = Frm_NL.cijfernl.Value
    Unload Me
End Sub


Maar hij blijft een foutmelding geven op de lijn:
Visual Basic:
1
ActiveCell.Offset(newrow, 0).Value = Frm_NL.cijfernl.Value


Wat doe ik fout :?

[ Voor 27% gewijzigd door stefanbstefan op 15-12-2004 21:24 ]


  • CoRrRan
  • Registratie: Juli 2000
  • Laatst online: 02-06 20:28

CoRrRan

Don't Panic!!!

Wat je moet hebben:
  • Een userform (jij hebt die "Frm_NL" genoemd)
  • Een textbox (jij hebt die "cijfernl" genoemd)
  • Een commandbutton (die noem je "Btn_ja")
  • Een commandbutton (die noem je "Btn_nee')
Wat je dan verder nodig hebt is een Excel sheet. Stel dat in Cell "B1" de text "Cijfer Nederlands" staat. De cellen daaronder zijn leeg. Als je nu de knop aanklikt, waarmee je de userform start, krijg je je user form "Frm_NL" te zien. Je vult nu in textbox "cijfernl" een waarde in. Daarna klik je op de commandbutton "Ja". Als je dan deze code in je userform zet, dan moet je als het goed is een waarde onder " Cijfer Nederlands" zien verschijnen:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Option Explicit

Private Sub Btn_Ja_Click()

    Dim newrow As Integer
    
    Sheets("Sheet1").Select
    Range("B1").Activate
     
    newrow = Application.WorksheetFunction.CountA(Columns(2))
    ActiveCell.Offset(newrow, 0).Value = Frm_NL.cijfernl.Value
    
    Unload Me
    
End Sub

Private Sub Btn_Nee_Click()
    Unload Me
End Sub
Nu moet je het zelf verder bekijken. Als je op "F1" drukt in de VBA editor, krijg je een hele mooie helpfunctie met alle VBA commando's goed uitgelegd. Als het goed is moet je daar een eind verder mee komen.

-- == Alta Alatis Patent == --