Cel selecteren met bepaalde waarde

Status
Niet open voor verdere reacties.

Tjerk10

Gebruiker
Lid geworden
24 mrt 2009
Berichten
11
Beste specialisten,

Ik ben bezig met het opstellen van een formulier dat gebruikers moeten invullen voor het betaalbaarstellen van betalingen. Nu heb ik onderaan dit formulier een button "opslaan" gemaakt.

Wanneer de gebruiker op deze knop drukt dan worden de waardes opgeslagen. Maar wanneer het boekstuknummer al bestaat moet er eerst de vraag komen of de gebruiker het boekstuknummer wilt overschrijven. Zo ja dan wil ik graag dat in Excel de cell wordt geselecteerd waarin het boekstuknummer staat. Dit krijg ik echter niet voor elkaar. Zouden jullie mij hiermee kunnen helpen? Alvast vriendelijk bedankt. Het bestand heb ik toegevoegd.

Alvast vriendelijk bedankt!!
 

Bijlagen

Tjerk10,

Ik heb het rode stukje er tussen gezet en toen liep hij door en vroeg of het moet worden overschreven.
Kun je hier wat mee?
Code:
Private Sub CmbOpslaan_Click()

    Dim r As Integer
    Dim a As Variant
    Dim Antwoord As Variant
    [COLOR="Red"]Worksheets(3).Select[/COLOR]
    a = Worksheets(3).Range("A1", Selection.End(xlDown)).Rows.Count
 
Het kan ook zo:
Code:
Private Sub CmbOpslaan_Click()
  With Sheets(3)
     If Not .Columns(1).Find(TBBoek.Value, xlWhole) Is Nothing Then
       If MsgBox("Dit boekstuknummer bestaat al, wil je dit boekstuknummer overschrijven?", vbQuestion + vbYesNo, "boekstuknummer komt al voor") = vbNo Then Exit Sub
     Else
       .Cells(Rows.Count, 1).End(xlUp).Offset(1) = TBBoek.Value
       MsgBox "Het projectnummer " & " " & TBBoek.Value & " " & "is toegevoegd aan uw projectenlijst"
     End If
  End With
End Sub
NB.
- niet duidelijk is wat er moet gebeuren als het boekstuknummer moet worden overschreven.
- in plaats van sheets(3) kun je beter de naam van ghet werkblad noemen: sheets("historische boekingen")
- de methode voor de eerste lege cel in een kolom redeneert trefzekerder van onderaf naar boven.
- vermijd select en activate in VBA-code (en zeker als je met een userform werkt)
 
Het kan ook zo:
Code:
Private Sub CmbOpslaan_Click()
  With Sheets(3)
     If Not .Columns(1).Find(TBBoek.Value, xlWhole) Is Nothing Then
       If MsgBox("Dit boekstuknummer bestaat al, wil je dit boekstuknummer overschrijven?", vbQuestion + vbYesNo, "boekstuknummer komt al voor") = vbNo Then Exit Sub
     Else
       .Cells(Rows.Count, 1).End(xlUp).Offset(1) = TBBoek.Value
       MsgBox "Het projectnummer " & " " & TBBoek.Value & " " & "is toegevoegd aan uw projectenlijst"
     End If
  End With
End Sub
NB.
- niet duidelijk is wat er moet gebeuren als het boekstuknummer moet worden overschreven.
- in plaats van sheets(3) kun je beter de naam van ghet werkblad noemen: sheets("historische boekingen")
- de methode voor de eerste lege cel in een kolom redeneert trefzekerder van onderaf naar boven.
- vermijd select en activate in VBA-code (en zeker als je met een userform werkt)

Tjerk10,

Ik heb het rode stukje er tussen gezet en toen liep hij door en vroeg of het moet worden overschreven.
Kun je hier wat mee?
Code:
Private Sub CmbOpslaan_Click()

    Dim r As Integer
    Dim a As Variant
    Dim Antwoord As Variant
    [COLOR="Red"]Worksheets(3).Select[/COLOR]
    a = Worksheets(3).Range("A1", Selection.End(xlDown)).Rows.Count

Beste Wim en Snb,

Bedankt voor jullie snelle reacties(zo snel niet verwacht). Mijn probleem is met jullie voorgedragen oplossingen volgens mij nog niet helemaal opgelost(komt mede door mijn onduidelijke probleemstelling).

Wat ik eigenlijk wil is dat alle velden van het formulier worden weggeschreven in het Excelblad nr. 3(historische bestellingen). Wanneer het boekstuknummer nog niet voorkomt dan moeten deze velden gewoon weg worden geschreven onder de laatst gevulde regel. Het probleem ontstaat wanneer het boekstuknummer al bestaat. Dan wil ik dat de vraag wordt gesteld: "Dit boekstuknummer bestaat al, wil je dit boekstuknummer overschrijven?" Wanneer VByes wordt gedrukt dan moet de hele regel overschreven worden met de velden die staat ingevuld in het formulier.

Mijn probleem is dat ik het niet voor elkaar krijg om deze regel te selecteren waar het boekstuknummer al in voorkomt en dan uiteindelijk de gegevens te vervangen.

Ik hoop dat het duidelijk is.

Groeten,

Tjerk

p.s. Snb bedankt voor de aanvullende tips. Ik ga ze toepassen.
 
Laatst bewerkt:
Probleem opgelost met de volgende formule.

Range("A1:A" & a).Find(What:=TBBoek.Value, LookAt:=xlWhole).Select

Vriendelijk bedankt voor jullie hulp.

Groeten,

Tjerk
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan