Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Vba-code om een te cel selecteren  (gelezen 7669 keer)

0 leden en 1 gast bekijken dit topic.

Offline oldy.

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
Vba-code om een te cel selecteren
« Gepost op: 10 februari 2017, 11:04:08 »
Beste mensen

Ik ben een leek op visual basic gebied, daarom mijn vraagje om een voorbeeld met code voor volgend probleempje.

Ik heb 3 kolommen "A, B, en C" die alfabetisch gerangschikt zijn.

Bij het ingeven van een letter in cel "E8" (de "K" bijvoorbeeld)
en klik een op mijn knop "Zoeken"
zou in de lijst van kolom "B", de cel waarvan het eerste woord met een "K" begint, geselecteerd moeten worden

Zie bijgevoegd bestandje

Alvast bedankt

Groetjes Oldy

Ik werk met win7 en excel 2002

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Vba-code om een te cel selecteren
« Reactie #1 Gepost op: 10 februari 2017, 12:49:53 »
Hallo oldy,

Met wat je al in kolom A hebt staan los je dit op met welgeteld één vba-instructie :
Cells(Application.WorksheetFunction.Match(Cells(7, 5), Columns(1), 0), 2).Select
Mvg,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Vba-code om een te cel selecteren
« Reactie #2 Gepost op: 10 februari 2017, 13:11:24 »
Ik had dit bedacht....

Sub ZoekEersteLetter()

    On Error GoTo Einde:
    Sheets("Dieren").Columns(2).Find(Range("Dierzoeken").Value & "*", Range("B8"), , xlWhole).Select
    On Error GoTo 0
    ActiveWindow.ScrollRow = ActiveCell.Row
    Exit Sub
   
Einde:
    MsgBox "Een dier met de gevraagde letter '" & Range("Dierzoeken").Value & "' kan niet worden gevonden!", vbOKOnly, "Helaas..."
    On Error GoTo 0
End Sub
Overigens welkom op dit forum...  ;)
______________________________

Groet, Leo

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Vba-code om een te cel selecteren
« Reactie #3 Gepost op: 10 februari 2017, 13:17:18 »
En nog een oplossing zonder de On Error opdracht...
Sub ZoekEersteLetter()

    Set Zoekdier = Sheets("Dieren").Columns(2).Find(Range("Dierzoeken").Value & "*", Range("B8"), , xlWhole)
    If Zoekdier Is Nothing Then GoTo Einde
    ActiveWindow.ScrollRow = ActiveCell.Row
    Exit Sub
   
Einde:
    MsgBox "Een dier met de gevraagde letter '" & Range("Dierzoeken").Value & "' kan niet worden gevonden!", vbOKOnly, "Helaas..."
End Sub
______________________________

Groet, Leo

Offline oldy.

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
Re: Vba-code om een te cel selecteren
« Reactie #4 Gepost op: 10 februari 2017, 16:06:08 »
Ze werken alle drie prima, doch mijn voorkeur ging uit naar deze :

Citaat
Sub ZoekEersteLetter()

    On Error GoTo Einde:
    Sheets("Dieren").Columns(2).Find(Range("Dierzoeken").Value & "*", Range("B8"), , xlWhole).Select
    On Error GoTo 0
    ActiveWindow.ScrollRow = ActiveCell.Row
    Exit Sub
   
Einde:
    MsgBox "Een dier met de gevraagde letter '" & Range("Dierzoeken").Value & "' kan niet worden gevonden!", vbOKOnly, "Helaas..."
    On Error GoTo 0
End Sub

Bedankt en groetjes Oldy

Offline dizzl

  • Ambassadeur
  • *****
  • Berichten: 2.345
  • I've Upped my standards,now,up yours!
Re: Vba-code om een te cel selecteren
« Reactie #5 Gepost op: 10 februari 2017, 16:28:03 »
Waar gaat die
On Error GoTo 0dan eigenlijk naar toe?
Systeem  : Intel Core i5-4440 3.1Ghz, 3.1GHz 16Giga Ram 64Bits
Software : Windows 10 professional, Avira, Office 2016 Professional

Offline oldy.

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
Re: Vba-code om een te cel selecteren
« Reactie #6 Gepost op: 10 februari 2017, 16:57:15 »
Als ik een letter ingeef die niet in de lijst staat, krijg ik het info-kader, dan klik ik op "ok" en hij blijft gewoon op mijn laatste keuze staan.
Dat vind ik prima zo.

Maar als ik beide "On Error GoTo 0" uitschakel werkt het ook.
Mag ik die dan weglaten waarschijnlijk.

Hierbij mijn werkend voorbeeldje

Groetjes Oldy

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Vba-code om een te cel selecteren
« Reactie #7 Gepost op: 10 februari 2017, 17:53:51 »
@Dizzl, de opdacht On Error GoTo 0 gaat nergens naartoe. Maar je geeft hiermee aan dat Excel zélf de foutafhandeling weer moet oppakken. Het is dus een "einde" instructie voor On Error.

@Oldy, Nee! Je mag absoluut de On Error's niet verwijderen in de eerste gegeven procedure. De Find methode geeft namelijk een Error als die niets kan vinden als je 'm gebruikt zoals ik dat dus deed in de eerste oplossing. Zonder die eind-instructie neemt Excel niet zelf de afhandeling over. Na het afsluiten van een procedure gaat dat "als het goed is vanzelf", maar het is een goede gewoonte om er als programmeur zelf voor te zorgen dat alles weer goed staat.

In de 2e oplossing wordt er een Set gebruikt. Hiermee krijgt de variabele een waarde of is leeg (Is Nothing) en kan daar op worden afgevangen. De tweede procedure is daarmee een nettere oplossing dan de eerste.
______________________________

Groet, Leo

Offline oldy.

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
Re: Vba-code om een te cel selecteren
« Reactie #8 Gepost op: 10 februari 2017, 21:34:59 »
Hallo Redhead

Uw eerste werkwijze werkt perfect en hier ben in ieder geval goed mee geholpen.

Omdat u zei dat de tweede beter was, heb ik die ook nog eens geprobeerd, maar daar ga ik in de fout.
Ofwel spring die gewoon naar cel A1, voeg ik er een ".Select" aan toe, dan gaat hij wel naar de juiste cel, doch geeft een foutmelding.

Ik ben echt geen kenner van visual basic hoor.

Mocht u eens tijd en goesting hebben, dan hoor ik het wel.

Ik stuur mijn bestandje mee waar ik het voor nodig heb.

Bedankt en groetjes Oldy

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Vba-code om een te cel selecteren
« Reactie #9 Gepost op: 10 februari 2017, 22:44:45 »
Ofwel spring die gewoon naar cel A1
Ah, ik snap je... Dit helpt...
Sub ZoekEersteLetter()

    Set Zoekdier = Sheets("Dieren").Columns(2).Find(Range("Dierzoeken").Value & "*", Range("B8"), , xlWhole)
    If Zoekdier Is Nothing Then
          MsgBox "Een dier met de gevraagde letter '" & Range("Dierzoeken").Value & "' kan niet worden gevonden!", vbOKOnly, "Helaas..."
          Exit Sub
    Else
          ActiveWindow.ScrollRow = Zoekdier.Row
    End If
 
End Sub
______________________________

Groet, Leo

Offline oldy.

  • Nieuw lid
  • Berichten: 5
  • Geslacht: Man
Re: Vba-code om een te cel selecteren
« Reactie #10 Gepost op: 10 februari 2017, 23:12:11 »
U bent ne krak, bedankt alles werkt prima
Groetjes Oldy

 


www.combell.com