Opgelost Zoeken naar een achternaam en daarna ook in de bijbehorende A cel uitkomen.

  • Onderwerp starter Onderwerp starter Tont
  • Startdatum Startdatum
Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Tont

Gebruiker
Lid geworden
17 jan 2024
Berichten
42
Wie weet hoe de macro moet worden aangepast zodat die blijft doen wat ie nu al doet, alleen wil ik graag dat ie na het zoeken naar de eerste cel van het eerste gevonden resultaat springt op het tabblad "Gasten". Wordt de persoon daar niet gevonden springt de cursor naar de A cel van het eerst gevonden resultaat op het tabblad "Vertrokken Gasten".
Komt een achternaam op beide tabbladen voor dan zou het mooi zijn uit te komen in de A cel van de eerst gevonden rij op het tabblad "Gasten"
Mijn originele Excel bestand bevat namelijk aanzienlijk meer rijen, zowel op het tabblad "Gasten" als op het tabblad "Vertrokken Gasten".
De gevonden resultaten worden keurig rood gekleurd maar ik moet nog steeds scrollen om te zien op welke kamer de gasten verblijven. Graag zie ik dus dat de cursor uitkomt in de A cel van het eerst gevonden resultaat.
 

Bijlagen

Zijn het nou Gasten of Bewoners ;-)
Doe het eens zo:
Code:
Sub AchternaamGedeeltelijk()
    zoekwaarde = InputBox("Welke bewoner zoek je?", "Zoeken", "Geef hier zijn of haar naam in!")
    For Each sh In Sheets
        If sh.Name = "Gasten" Or sh.Name = "Vertrokken Gasten" Then
            With sh
                With .UsedRange.Font
                    .Color = vbBlack
                    .Bold = False
                End With
                For i = 2 To .Range("B" & .Rows.Count).End(xlUp).Row
                    If LCase(.Cells(i, 2).Value) Like "*" & zoekwaarde & "*" Then
                        With .Cells(i, 1).Resize(, 19).Font
                            .Color = vbRed
                            .Bold = True
                            y = y + 1
                            rij = i
                            Set sht = sh
                        End With
                    End If
                Next
            End With
        End If
    Next
    If y = 0 Then
        MsgBox "De naam van de bewoner is niet gevonden!"
    Else
        Application.Goto sht.Cells(rij, 1)
    End If
End Sub
 
Dankjewel AHulpje voor je snelle reactie. Ik ben tevreden.
 
Waarom ga je de twee tabbladen benoemen in de code als het er maar twee zijn.
Indien er in het origineel meerdere bladen zijn hoef je er maar twee te benoemen waar het om draait.
Dat gaat vlugger dan alle overbodige bladen bij langs gaan.
Code:
For Each Sh In Sheets(Array("Gasten", "vertrokken gasten"))
      With Sh
              With .UsedRange.Font
 
Dankjewel HSV voor je aanvulling. In mijn originele bestand heb ik inderdaad meerdere bladen maar voor de zoekopdracht zijn maar twee bladen van belang. Ik ga de macro nog even weer iets aanpassen.
 
Hier een methode die alleen in de twee bladen zoekt en ook niet alle cellen hoeft af te lopen.
Het kleurt de gevonden cellen ineens per blad in plaats van rij voor rij.
Zoals omschreven gaat het naar de eerst gevonden cel.
Komt een achternaam op beide tabbladen voor dan zou het mooi zijn uit te komen in de A cel van de eerst gevonden rij op het tabblad "Gasten"
Ook maakt het niet uit of je kleine- of hoofdletters gebruikt in de Inputbox.
Code:
Sub hsv()
zoekwaarde = InputBox("Welke bewoner zoek je?", "Zoeken", "Geef hier zijn of haar naam in!")
    For Each sh In Sheets(Array("Gasten", "vertrokken gasten"))
      With sh
              With .UsedRange.Font
                    .Color = vbBlack
                    .Bold = False
                End With
                Set c = .Columns(2).Find(zoekwaarde, , , xlPart)
                   If Not c Is Nothing Then
                    If cc = "" Then Set cc = c.Offset(, -1)
                        firstaddress = c.Address
                         Set tb = c.Offset(, -1).Resize(, 19)
                      Do
                        Set c = .Columns(2).FindNext(c)
                        Set tb = Union(c.Offset(, -1).Resize(, 19), tb)
                      Loop While Not c Is Nothing And c.Address <> firstaddress
                    End If
                       If firstaddress <> "" Then
                          With tb.Font
                            .Color = vbRed
                            .Bold = True
                              y = y + 1
                          End With
                       End If
       End With
     firstaddress = ""
    Next sh
     If y = 0 Then
        MsgBox "De naam van de bewoner is niet gevonden!"
       Else
        Application.Goto cc, True
     End If
End Sub
 
Beste HSV,
Jij hebt mij eerder geholpen. Ik was redelijk tevreden met de vorige VBA code. Ik kwam alleen niet uit bij de eerst gevonden rij op het tabblad "Gasten".
Ik kwam uit bij het gevonden resultaat op het tabblad "Vertrokken Gasten". Het laatst gevonden resultaat dus. En soms was er dan ook wel een rij rood gekleurd op het tabblad "Gasten" maar dan moest ik dus weer schakelen naar dat tabblad.
Met jouw VBA code kom ik wel in eerst instantie bij het gevonden resultaat op mijn eerste tabblad, "Gasten"
Heel hartelijk dank voor jouw bijdrage.
 
  • Leuk
Waarderingen: HSV
Beste HSV
De vorige VBA code die ik via jouw kreeg werkte prima.
Ik wilde deze echter ook laten werken op mijn oorspronkelijke bestand.
Omdat deze macro zo mooi werkte dacht ik, ik kopieer 'm en pas 'm iets aan omdat er ook een verzoek ligt om op kamernummer te kunnen zoeken.
In de kopie van jouw macro heb ik alleen het kolomnummer aangepast. Er moet immers gezocht worden in kolom 3 (kamernummer) en niet in kolom 5 (achternaam). En de beide tabbladen "Bewoners" en "Vertrokken Bewoners" moest beveiligd worden zodat medewerkers niet zomaar alles kunnen veranderen.
Nu werkt de macro 'Kamernr.' wel. Die komt ook netjes direct uit onder cel C2 op het tabblad "Bewoners" maar jouw macro 'hsv' werkt niet meer. Althans die zoekt niet meer op het tabblad "Bewoners" en komt alleen met gevonden resultaten als die op het tabblad "Vertrokken Bewoners" voorkomen. Kan dat met die tabblad beveiliging te maken hebben? Maar dan had de macro 'Kamernr.' daar toch ook last van moeten hebben? Enig idee wat er fout gaat.
(Zie bijgaand bestand met fictieve namen)
 

Bijlagen

Dankjewel HSV. Nu gaat het inderdaad wel goed. Bedankt voor je oplossing.
 
  • Leuk
Waarderingen: HSV
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan