Nieuwe data toevoegen en bestaande data aanpassen (userform)

Status
Niet open voor verdere reacties.
Hij begint te werken, mocht ik nog een vraag hebben meld ik mij, voor nu onwijs bedankt VenA!
 
Je moet de code wel op de juiste plek zetten. Lees hier meer http://www.snb-vba.eu/VBA_Excel_VBproject.html

@alphamax, Volgens mij hebben de ontwikkelaars het vanaf XL-2007 aardig verstopt. Dus of ze er zelf zo tevreden over zijn of het nut ervan inzien laat ik maar in het midden.:cool:
 
Volgens mij hebben de ontwikkelaars het vanaf XL-2007 aardig verstopt
Zit ook nog in excel 2013/2016, zie https://support.office.com/en-us/ar...ata-form-edd9dec9-5ce7-4b93-9d7e-c80c089cedb7
Dus of ze er zelf zo tevreden over zijn of het nut ervan inzien laat ik maar in het midden
Ik vind het altijd een beetje raar dat iedereen excel bestanden maakt met userforms omdat het dan zo "windows"-achtig uitziet, maak dan iets in visualbasic.
Ik vind het ook raar dat iedereen een halve access-omgeving nabouwt in excel met add/edit/delete record door middel van userforms.
Waarom dwing je gebruikers om alles in te vullen in een textbox op een userform terwijl je veel meer gebruiksgemak hebt in de gewone cellen van een werkblad.
Ik zie hier altijd de mooiste grafische schilletjes met een slechte structuur eronder.

Maar ala, ieder zijn hobby.
 
Laatst bewerkt:
Helaas krijg ik het nog niet voor elkaar om een nieuwe rij/kolom te laten toe voegen op de eerst beschikbare rij/kolom i.p.v. de eerste (zoals ie het nu doet).
Ik heb wel het volgende gevonden:
Code:
 .ListRows.Add Position:=.ListRows.Count + 1
, maar de informatie uit de ComboBox komt dan niet in die rij.

Ik hoop dat je mij hiermee kunt helpen, want ik krijg het niet voor elkaar :(

Code:
 Private Sub CommandButton1_Click()
Dim r As Range, c As Range, lr As Long, lc As Long

  With Sheets("Blad1").ListObjects(1)
    Set r = .DataBodyRange.Columns(1).Find(ComboBox1.Value)
    Set c = .HeaderRowRange.Find(ComboBox2.Value)
       
    If Not r Is Nothing Then
      lr = r.Row
      
    Else

      lr = 2

      .ListRows.Add Position:=.ListRows.Count + 1
      
      .Range.Cells(1) = ComboBox1.Value
    
    End If

    If Not c Is Nothing Then
      lc = c.Column
     Else
      lc = 2
      .ListColumns.Add (2)
      .HeaderRowRange.Columns(2) = ComboBox2.Value
    End If
    
    .Range.Cells(lr, lc) = TextBox1.Value
    .Range.Columns.AutoFit
    With .DataBodyRange.Offset(, 1)
      .NumberFormat = "$ #,##0.00"
      .Font.Bold = False
    End With
  End With
End Sub

BVD!
 
Probeer het zo maar eens
Code:
Private Sub CommandButton1_Click()
Dim r As Range, c As Range, lr As Long, lc As Long
  With Sheets("Blad1").ListObjects(1)
    Set r = .DataBodyRange.Columns(1).Find(ComboBox1.Value)
    Set c = .HeaderRowRange.Find(ComboBox2.Value)
    If Not r Is Nothing Then
      lr = r.Row
    Else
      .ListRows.Add
      lr = .ListRows.Count + 1
      .Range.Cells(lr, 1) = ComboBox1.Value
      ComboBox1.List = .DataBodyRange.Columns(1).Value
    End If
    If Not c Is Nothing Then
      lc = c.Column
     Else
      .ListColumns.Add
      lc = .ListColumns.Count
      .HeaderRowRange.Columns(lc) = ComboBox2.Value
      ComboBox2.List = Application.Transpose(.HeaderRowRange.Offset(, 1).SpecialCells(2).Value)
    End If
    .Range.Cells(lr, lc) = TextBox1.Value
    .Range.Columns.AutoFit
    With .DataBodyRange.Offset(, 1)
      .NumberFormat = "$ #,##0.00"
      .Font.Bold = False
    End With
  End With
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan