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

Alles zoeken in Excel

Status
Niet open voor verdere reacties.

Guus abc †

Meubilair
Lid geworden
12 feb 2004
Berichten
5.555
Ik wil in een enorme spreadsheet zoeken op - bijvoorbeeld - het woord Beleidsadviseur, maar niet één voor één.
Hoe krijg ik voor elkaar dat met één zoekopdracht in de hele kolom ALLE cellen met dat woord geselecteerd worden?
Mocht dat niet kunnen, is er dan een andere manier om alle Beleidsadviseurs - bijvoorbeeld - eruit te filteren.

Guus.
 
Laatst bewerkt:
Leuk dat ik eens eeen vraag van een Giga-Senior kan beantwoorden :)
Met onderstaande macro kunje een gewenste tekst zoeken in het actieve werkblad:

Sub Zoek()

Dim Rij, ZoekTekst, ZoekWaarde, Output
Dim Resultaat
Dim Cel As Range
'On Error Resume Next

ZoekWaarde = LCase(InputBox("Wat wilt u zoeken?", "Zoek in tabblad", "Test"))
ActiveSheet.UsedRange.Cells.Select

For Each Cel In Selection
ZoekTekst = LCase(Trim(Cel.Value))
Output = InStr(1, ZoekTekst, ZoekWaarde01, vbTextCompare)
If Output <> 0 Then
Debug.Print Cel.Address
If Resultaat = Empty Then
Resultaat = Cel.Address
Else: Resultaat = Resultaat & "," & Cel.Address
End If
End If
Next
Range(Resultaat).Select
End Sub


Succes

John
 
Geplaatst door jheesterbeek
Leuk dat ik eens eeen vraag van een Giga-Senior kan beantwoorden :)
Alsof die alles weten. :D
Ik vind je macro er heel mooi uitzien, maar mijn kennis van Excel is erg basaal.
Kun je me ook nog uitleggen hoe ik dit werkend krijg?

Guus.
 
Geplaatst door Guus abc
Kun je me ook nog uitleggen hoe ik dit werkend krijg?
Dat is me inmiddels via de Help van Excel gelukt. :)
Bij het uitvoeren ervan krijg ik echter een foutmelding - zie hieronder.
Foutopsporing verwijst naar Range(Resultaat).Select

attachment.php


Guus.
 
Laatst bewerkt:
Met een kleine aanpassing

Sub Zoek()

Dim Rij, ZoekTekst, ZoekWaarde, Output
Dim Resultaat
Dim Cel As Range
'On Error Resume Next

'om het geheel flexibel te maken kun je een zoektekst opgeven
ZoekWaarde = LCase(InputBox("Wat wilt u zoeken?", "Zoek in tabblad", "Test"))
' om het zoeken te beperken wordt de UsedRange geselcteerd en wortdt gezocht in de selectie
ActiveSheet.UsedRange.Cells.Select

For Each Cel In Selection
' Zoektekst bevat de range waarin gezocht moet worden, de cel binnen de usedrange
ZoekTekst = LCase(Trim(Cel.Value))
'Instr is het commando om te zoeken
Output = InStr(1, ZoekTekst, ZoekWaarde, vbTextCompare)
If Output <> 0 Then
' als er iets gevonden wordt dan wordt de locatie gegeven, deze is altijd groter dan o
Debug.Print Cel.Address
'het resultaat toeveogen aan de selectie range
If Resultaat = Empty Then
Resultaat = Cel.Address
Else: Resultaat = Resultaat & "," & Cel.Address
End If
End If
Next
If Resultaat <> Empty Then
Range(Resultaat).Select
Else: MsgBox "De gezochte waarde is niet gevonden", vbOKOnly, "Not Found #"
End If
End Sub
 
Ik blijf de zelfde foutmelding krijgen.
En foutopsporing verwijst nog steeds naar Range(Resultaat).Select. :(

Guus.
 
kun je de file (gezipped) op het forum plaatsen en me laten weten waar je op zoekt?

Ik probeer het bij mij ook, maar kan de fout niet namaken.
 
Geplaatst door jheesterbeek
kun je de file (gezipped) op het forum plaatsen en me laten weten waar je op zoekt?
Nee. Vanwege de gegevens die daarin staan kan dat niet.
En ook niet vanwege de grootte die ongezipped al 4 MB is.
Het is overigens niet van levensbelang. :)
Ik kan nog altijd de normale zoekfunctie gebruiken, maar het zou mooi zijn als zo'n macro'tje alles in één keer deed.

Guus.
 
Als ik ergens aan begin wil ik het ook graag met succes afmaken:cool:

Zou je de macro eens op een andere file kunnen proberen om te proberen of je daar ook dezelfde foutmelding krijgt.
 
Je macro werkt in een nieuw bestand dat ik aanmaak wel.
Als ik dan een paar willekeurige getallen en woorden in een paar kolommen zet worden de identieke woorden/getallen gevonden en geselecteerd.
Zou het iets met de omvang te maken kunnen hebben?
Het gaat om 2750 rijen en 5 kolommen.
Op elke kolom is bovenaan een filter gezet. Zou dat de oorzaak kunnen zijn?

Guus.
 
Filters en verborgen rijen maken het leven lastig, omdat ik usedRange gebruik. Staat de gegevens vast, of komen er steeds rijen en kolommen bij?
 
Ik zit nog wat te knoeien en kom erachter dat er te veel waarden worden gevonden, waardoor ze niet allemaal geselecteerd kunnen worden. Ik kan ze wel rood maken, of kopieeren naar een ander/nieuw tabblad

Wat wil je eigenlijk bereiken met deze functie??
 
Geplaatst door jheesterbeek
Wat wil je eigenlijk bereiken met deze functie??
Ik? Niets. :D
Mijn baas wilde weten of dit mogelijk was.
Ik zal hem maandag eens vragen wat hij er precies mee wil.
In ieder geval bedankt voor je hulp tot nu toe.
Die macro blijkt prima te werken in kleine werkbladen, maar heeft blijkbaar moeite met grote exemplaren.
Als daar niets tegen te doen is, zal hij net als voorheen de items één voor één moeten zoeken.

Guus.
 
In principe zijn ze gevonden en staan klaar om bewerkt te worden, alleen kan je ze niet alle 300 selecteren.
Als je ze wilt selecteren om te kpieren, kunnen ze wel in delen automatisch gekopieerd worden. Als je ze wilt selecteren om de opmaak te veranderen, kan dat ook automatisch.
De vraag is meer: Wat wil je ermee doen?

Als ik je kan helpen hoor ik het graag

John
 
Ha ... kan ik ook 's een giga senior beantwoorden :p

Vermijd in VBA select; selection en activate. Heb je niets dan last mee.

Hier een goed werkende macro:

Option Explicit
Option Compare Text

Sub Zoek()
Dim i As Integer
Dim rng As Range
Dim str As String
Dim strTotaal As String
str = InputBox("Wat wil je zoeken?")
For i = 1 To Worksheets.Count
Set rng = Sheets(i).Cells.Find(what:=str)
If Not rng Is Nothing Then strTotaal = _
strTotaal & _
Sheets(i).Name & " " & rng.Address & vbCrLf
Next
MsgBox strTotaal
End Sub

Deze macro is ongevoelig voor hoofdletters. Let er op als je copieert, dat die Option Explicit niet dubbel komt te staan.

Luc
 
Bedankt. :thumb:
Ga het maandag eens proberen en laat dan nog van me horen.

Guus.
 
Geplaatst door Luc Heyndrickx
Hier een goed werkende macro
Het is de bedoeling dat alle cellen waar de gezochte reeks (getal of woord of deel ervan) in voorkomt worden geselecteerd.
Met deze macro krijg ik alleen bijgaand venstertje te zien. :(
Daar wordt de eerste cel aangegeven van alle cellen waarin het gezochte item staat. Maar dat kan met gewoon Zoeken > Volgende zoeken ook.

attachment.php


Guus.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan