Worksheet: Aantal unieke woorden tellen in een range + woorden uitsluiten

Status
Niet open voor verdere reacties.

nkamp

Gebruiker
Lid geworden
2 mrt 2007
Berichten
129
Hallo,

Het is al even geleden dat ik met VBA voor Excel(2016) ben bezig geweest ben. Ik ben aan het googlen geweest om een voorbeeld scriptje te vinden maar nog niet kunnen vinden.

Ik heb een excel bestand met meerdere worksheets, met daarin teksten in meerdere cellen staan (website).

Nu wil een VBA script maken (Of formule) met de volgende requirements:
- Het script kan met een bepaalde geselecteerde range omgaan
- telt het aantal unieke woorden gescheiden door een spatie in deze range bereik
- optioneel: mag ook het totaal aantal woorden tellen
- Ik geef in array of in een IF statement dat als het een bepaald woord betreft deze niet mee geteld moet worden = woorden uitsluiten van mee tellen
- in een message wordt dan het aantal unieke woorden getoond en optioneel het totaal aantal woorden.
- optioneel: alle unieke woorden in een nieuw worksheet of vrije cel.

Werking stel ik mij zo voor:
- Ik selecteer bepaalde range van cellen op de worksheet = range/bereik
- vervolgens roep ik de macro's op en klik op uitvoeren.
- In een message wordt het aantal unieke woorden weergegeven
- optioneel: (Nog mooier zou misschien zijn dat alle unieke woorden gescheiden door een spatie in een vrije cel worden weergegeven)

Heeft iemand zo'n script of een deel van zo'n script. Overigens als iemand zegt ik heb niet dit exact maar wel wat er op lijkt of dit is niet handig, dan hou ik mij ook aanbevolen.

Nico
 
Hoe groot is de kans dat iemand een code heeft klaarliggen voor jouw specifieke wensen? Niet heel groot denk ik. Maar hoe groot is de kans dat iemand een oplossing heeft op basis van een door jou geplaatst voorbeeldbestand met een uitleg?
 
Om maar ergens te beginnen

Code:
Sub VenA()
  ar = Application.InputBox("Selecteer", "VenA", , , , , , 8)
  For j = 1 To UBound(ar)
    For jj = 1 To UBound(ar, 2)
      If InStr(c00, ar(j, jj)) = 0 Then c00 = c00 & ar(j, jj) & vbCr
    Next jj
  Next j
  MsgBox c00
End Sub
 
Minimaal 2 cellen selecteren.
Code:
Sub hsv()
Dim sv, sq, i As Long, j As Long, jj As Long
sv = Selection
With CreateObject("scripting.dictionary")
For i = 1 To UBound(sv)
  For j = 1 To UBound(sv, 2)
   sq = Split(sv(i, j))
    For jj = 0 To UBound(sq)
      .Item(sq(jj)) = .Item(sq(jj)) + 1
     Next jj
    Next j
   Next i
  Cells(1, 10).Resize(.Count, 2) = Application.Transpose(Array(.keys, .items))
  End With
End Sub
 
En natuurlijk de hamvraag: waarvoor heb je dit nodig ?
 
Mijn broer heeft een website die vertaald moet worden, nu vroeg hij aan mij hoeveel woorden het zijn. Ik heb alle teksten in Excel gezet en dacht laat een VBA/macro de unieke woorden tellen.

Nu heb ik > 10 jr geleden veel in Excel/VBA gedaan maar dat heb ik niet meer paraat.

Het gaat mij er niet om dat iemand het (helemaal) voor mij maakt want ik kan echt wel programmeren en dat vind ik ook leuk, MAAR mijn hoop was mn. dat ik een soort KICKSTART zou hebben.

Ik bedoel, om het niet helemaal van scratch op te zetten had ik al wel gegoogled, mijn HOOP was dat iemand misschien wel een site wist waar dit soort voorbeelden staan, die ik dan kan uitbreiden/aanpassen. En/of iemand heeft iets dergelijks waar ik weer mee verder kan, zoals de bovenstaande voorbeelden, mijn dank daarvoor.

Maar misschien heb ik de vraag niet duidelijk gesteld of moet je dit niet vragen, sorry.
 
Mijn broer heeft een website die vertaald moet worden, nu vroeg hij aan mij hoeveel woorden het zijn. Ik heb alle teksten in Excel gezet en dacht laat een VBA/macro de unieke woorden tellen.

Nu heb ik > 10 jr geleden veel in Excel/VBA gedaan maar dat heb ik niet meer paraat.

Het gaat mij er niet om dat iemand het (helemaal) voor mij maakt want ik kan echt wel programmeren en dat vind ik ook leuk, MAAR mijn hoop was mn. dat ik een soort KICKSTART zou hebben.

Ik bedoel, om het niet helemaal van scratch op te zetten had ik al wel gegoogled, mijn HOOP was dat iemand misschien wel een site wist waar dit soort voorbeelden staan, die ik dan kan uitbreiden/aanpassen. En/of iemand heeft iets dergelijks waar ik weer mee verder kan, zoals de bovenstaande voorbeelden, mijn dank daarvoor.

Maar misschien heb ik de vraag niet duidelijk gesteld of moet je dit niet vragen, sorry.
 
Maar de hint/opmerking over een voorbeeld document is je niet duidelijk?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan