• 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.

Probleempje met stukje VBA code

Status
Niet open voor verdere reacties.

jodelo

Gebruiker
Lid geworden
13 sep 2007
Berichten
87
Hallo forumleden:

Ik heb een Excel map gemaakt waarin ik m.b.v. een Formulier gegevens kan invullen en wijzigen op een ander (niet te tonen) blad.
1 Formulier gebruik ik voor de data ingave en dat werkt perfect.
Dus kopie hiervan gemaakt om het 2de formulier te maken voor het wijzigen en updaten van de database.

Echter na het overzetten door dubbelklik vanuit de Listbox naar de velden om dingen te wijzigen krijg ik bij het willen opslaan een foutmelding in de code.
Het stukje heb ik hieronder Vet gemaakt. Heb in plaats van CountA ook reeds AANTALARG geprobeerd maar de code blijft steken bij vernoemde lijn.
Misschien kan iemand hier mee helpen, de code tot zover heeft me al kopzorgen bezorgt en ook zoeken op de fora heeft nog niet geholpen.
Mocht er nog een bestand nodig zijn dan moet ik eerst het workbook leeg maken want er staat persoonlijke informatie in. Graag hoor ik het.

Private Sub btUpdate_Click()
Dim rijen As Integer
Dim x As Integer
rijen = Application.WorksheetFunction.CountA(Data.Range("A:A"))
For x = 2 To rijen
If Data.Cells(x, "A").Value = Me.txtNummer.Text Then
Data.Cells(x, "B").Value = Me.txtVoornaam.Text
Data.Cells(x, "C").Value = Me.txtAchternaam.Text
Data.Cells(x, "D").Value = Me.txtAdres.Text
Data.Cells(x, "E").Value = Me.txtPostcode.Text
Data.Cells(x, "F").Value = Me.txtWoonplaats.Text
Data.Cells(x, "G").Value = Me.txtTelefoon.Text
Data.Cells(x, "H").Value = Me.txtMobiel.Text
Data.Cells(x, "I").Value = Me.txtEmail.Text
Data.Cells(x, "J").Value = Me.txtGebDatum.Text
End If
Next
txtVoornaam.Text = ""
txtAchternaam.Text = ""
txtAdres.Text = ""
txtPostcode.Text = ""
txtWoonplaats.Text = ""
txtTelefoon.Text = ""
txtMobiel.Text = ""
txtEmail.Text = ""
txtGebDatum.Text = ""

End SubBekijk bijlage Adressen.xlsm
 
Laatst bewerkt:
Als je zegt een foutmelding te krijgen, vertel er dan ook bij welke dat is.
 
Code:
[B]rijen = Application.WorksheetFunction.CountA(sheets("Data").Range("A:A"))[/B]

De gehele code kan wel wat eenvoudiger, maar probeer het eerst zomaar eens.
 
Code:
[B]rijen = Application.WorksheetFunction.CountA(sheets("Data").Range("A:A"))[/B]

De gehele code kan wel wat eenvoudiger, maar probeer het eerst zomaar eens.

Hallo Harry:

De foutmelding is weg, maar springt nu naar de volgende regel in de code.

Groet Jo
 
Dan heb je vast een sheet met de naam Data die je niet hebt gedeclareerd voor gebruik zoals in je code.
Wat HSV zei is dan inderdaad correct.
 
Dan heb je vast een sheet met de naam Data die je niet hebt gedeclareerd voor gebruik zoals in je code.
Wat HSV zei is dan inderdaad correct.

Ik ben niet zo geweldig met VBA, hoe declareer ik dan de sheet.
Wil n.l. het sheet Data benaderen vanaf een ander werkblad zodat het niet direct zichtbaar is.

Gr. Jo
 
Als je doet wat HSV liet zien hoef je dat niet te declareren.
Als je met die oplossing een probleem hebt dan leg je die hier voor, maar dan wat duidelijker.
 
Ik heb het wat ingekort.
Code:
[COLOR=#3E3E3E]Private Sub btUpdate_Click()[/COLOR]
[COLOR=#3E3E3E]Dim rij
[/COLOR][COLOR=#333333]with sheets("data")
[/COLOR]rij = application.match([COLOR=#333333]txtNummer.Text, .columns(1),0)
[/COLOR]if not iserror(rij) then
  .cells(rij,2).resize(,9) =  array([COLOR=#333333]txtVoornaam.Text,[/COLOR][COLOR=#333333]txtAchternaam.Text, [/COLOR][COLOR=#333333]txtAdres.Text, [/COLOR][COLOR=#333333]txtPostcode.Text, [/COLOR][COLOR=#333333]txtWoonplaats.Text, [/COLOR][COLOR=#333333]txtTelefoon.Text, _
[/COLOR][COLOR=#333333]  txtMobiel.Text,[/COLOR][COLOR=#333333]txtEmail.Text, cdate([/COLOR][COLOR=#333333]txtGebDatum.Text))[/COLOR]
[COLOR=#333333]End If[/COLOR]
end with
[COLOR=#333333]End Sub[/COLOR]
 
Laatst bewerkt:
Ik heb het wat ingekort.
Code:
[COLOR=#3E3E3E]Private Sub btUpdate_Click()[/COLOR]
[COLOR=#3E3E3E]Dim rij
[/COLOR][COLOR=#333333]with sheets("data")
[/COLOR]rij = application.match([COLOR=#333333]txtNummer.Text, .columns(1),0)
[/COLOR]if not iserror(rij) then
  .cells(rij,2).resize(,9) =  array([COLOR=#333333]txtVoornaam.Text,[/COLOR][COLOR=#333333]txtAchternaam.Text, [/COLOR][COLOR=#333333]txtAdres.Text, [/COLOR][COLOR=#333333]txtPostcode.Text, [/COLOR][COLOR=#333333]txtWoonplaats.Text, [/COLOR][COLOR=#333333]txtTelefoon.Text, _
[/COLOR][COLOR=#333333]  txtMobiel.Text,[/COLOR][COLOR=#333333]txtEmail.Text, cdate([/COLOR][COLOR=#333333]txtGebDatum.Text))[/COLOR]
[COLOR=#333333]End If[/COLOR]
end with
[COLOR=#333333]End Sub[/COLOR]

Hallo Harry:

Sorry foutje, Hij heeft het eerste record gewijzigd, maar bij het tweede doet hij niks.
Ik zal dadelijk het sheet posten misschien dat je er dan wat beter zicht op hebt.
Alvast bedankt.

Gr. Jo
 
Laatst bewerkt:
Klopt die was ik vergeten voor de aanpassing, moet nu goed zijn.
 
Klopt die was ik vergeten voor de aanpassing, moet nu goed zijn.

Hoi Harry:

Heb bij mijn eerste bericht het bestand toegevoegd, kun je misschien even naar kijken.
Sorry voor de overlast.

Gr. Jo
 
Ik had de code aangepast:
Zie de rode tekst die ontbreekt nog in je bestand.
Code:
[COLOR=#3E3E3E]Private Sub btUpdate_Click()[/COLOR]
[COLOR=#3E3E3E]Dim rij
[/COLOR][COLOR=#333333]with sheets("data")
[/COLOR]rij = application.match([COLOR=#333333]txtNummer.Text, .columns(1),0)
[/COLOR]if not iserror(rij) then
  .cells(rij,2).resize(,9) =  array([COLOR=#333333]txtVoornaam.Text,[/COLOR][COLOR=#333333]txtAchternaam.Text, [/COLOR][COLOR=#333333]txtAdres.Text, [/COLOR][COLOR=#333333]txtPostcode.Text, [/COLOR][COLOR=#333333]txtWoonplaats.Text, [/COLOR][COLOR=#333333]txtTelefoon.Text, _
[/COLOR][COLOR=#333333]  txtMobiel.Text,[/COLOR][COLOR=#333333]txtEmail.Text, cdate([/COLOR][COLOR=#333333]txtGebDatum.Text))[/COLOR]
[COLOR=#333333]End If[/COLOR]
[COLOR=#ff0000]end with[/COLOR]
[COLOR=#333333]End Sub[/COLOR]
 
Ik had de code aangepast:
Zie de rode tekst die ontbreekt nog in je bestand.
Code:
[COLOR=#3E3E3E]Private Sub btUpdate_Click()[/COLOR]
[COLOR=#3E3E3E]Dim rij
[/COLOR][COLOR=#333333]with sheets("data")
[/COLOR]rij = application.match([COLOR=#333333]txtNummer.Text, .columns(1),0)
[/COLOR]if not iserror(rij) then
  .cells(rij,2).resize(,9) =  array([COLOR=#333333]txtVoornaam.Text,[/COLOR][COLOR=#333333]txtAchternaam.Text, [/COLOR][COLOR=#333333]txtAdres.Text, [/COLOR][COLOR=#333333]txtPostcode.Text, [/COLOR][COLOR=#333333]txtWoonplaats.Text, [/COLOR][COLOR=#333333]txtTelefoon.Text, _
[/COLOR][COLOR=#333333]  txtMobiel.Text,[/COLOR][COLOR=#333333]txtEmail.Text, cdate([/COLOR][COLOR=#333333]txtGebDatum.Text))[/COLOR]
[COLOR=#333333]End If[/COLOR]
[COLOR=#ff0000]end with[/COLOR]
[COLOR=#333333]End Sub[/COLOR]

Heb het aangepast Harry, het eerste record kan ik wijzigen maar het 2de niet. Vreemd

Gr. Jo
 
Dit zal beter gaan.
Code:
Private Sub btUpdate_Click()
Dim rij
With Sheets("data")
rij = Application.Match(CLng(txtNummer.Value), .Columns(1), 0)
If Not IsError(rij) Then
  .Cells(rij, 2).Resize(, 9) = Array(txtVoornaam.Text, txtAchternaam.Value, txtAdres.Value, txtPostcode.Value, txtWoonplaats.Value, txtTelefoon.Text, _
  txtMobiel.Value, txtEmail.Value, CDate(txtGebDatum))
End If
End With
End Sub
 
Dit zal beter gaan.
Code:
Private Sub btUpdate_Click()
Dim rij
With Sheets("data")
rij = Application.Match(CLng(txtNummer.Value), .Columns(1), 0)
If Not IsError(rij) Then
  .Cells(rij, 2).Resize(, 9) = Array(txtVoornaam.Text, txtAchternaam.Value, txtAdres.Value, txtPostcode.Value, txtWoonplaats.Value, txtTelefoon.Text, _
  txtMobiel.Value, txtEmail.Value, CDate(txtGebDatum))
End If
End With
End Sub

Hallo Harry:

Dacht eerst dat dit hem was, maar na het aanpassen van record 2 kan ik verder niks meer wijzigen
Heb een aantal records toegevoegd maar kan verder niets wijzigen ??

Gr. Jo
 
Dan plaats je dat bestand zodat we kunnen zien wat er aan scheelt.

Ps. ik heb ondertussen ook een regel toegevoegd, geen probleem om het aan te passen.
 
Laatst bewerkt:
Bijgevoegd het bestand

Hallo Harry:

Bijgevoegd het bestand waarmee het mis gaat.

Gr. Jo
 

Bijlagen

  • Adressen2.xlsm
    34,8 KB · Weergaven: 47
Bepaalde cellen hebben waarschijnlijk eerst op de opmaak 'tekst' gestaan, maar die krijg je niet weer van tekst af als je niet eerst een vermenigvuldiging doet op die cellen met een 1.
Het lijkt alsof het op standaard staat, maar dat is het niet anders zou 'Clng' werken.

Pas de code aan naar...
Code:
rij = Application.Match([COLOR=#ff0000]CVar[/COLOR](txtNummer), .Columns(1), 0)

....ben je van dat gedonder af.
 
Bepaalde cellen hebben waarschijnlijk eerst op de opmaak 'tekst' gestaan, maar die krijg je niet weer van tekst af als je niet eerst een vermenigvuldiging doet op die cellen met een 1.
Het lijkt alsof het op standaard staat, maar dat is het niet anders zou 'Clng' werken.

Pas de code aan naar...
Code:
rij = Application.Match([COLOR=#ff0000]CVar[/COLOR](txtNummer), .Columns(1), 0)

....ben je van dat gedonder af.

Hallo Harry:

De laatste aanpassing schijnt te werken. Heel mooi, was ik zelf natuurlijk nooit op gekomen.
Ga morgen de juiste data invoeren en extra fouten maken zodat ik ze kan corrigeren.
Zal na het werk zijn, moet morgen om half zes het bed uit.

Heel hartelijk bedankt voor je tijd en moeite en natuurlijk voor de oplossing.
Zonder jullie helpers zou het leven een stuk moeilijker zijn.
Bedankt.
Ik zal de vraag op opgelost zetten.

gr. Jo
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan