Hoi,
Ik krijg een Excel document waar ik geregeld een lijstje van rond de 20 woorden moet zoeken en vervangen door 20 andere woorden.
Bijvoorbeeld:
black -> zwart
blue -> blauw
green -> groen
black/green -> zwart/groen
etc.
Dat doe ik nu met zoek/vervang (20 keer).
Is daar een geautomatiseerd script van te maken dat ik bij een nieuw Excel document ook weer kan gebruiken?
Bedankt voor meedenken!
Maak een tabelletje met die 20 woorden en de vertaling er naast.
Dan kan je dat met een simpel scriptje doen.
"It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5
Tuurlijk kan dat; probeer het eerst eens zelf door een macro op te nemen en te kijken wat er gebeurt. 99% kans dat je code die in de macro wordt gemaakt zelf kunt aanpassen voor de overige 19 woorden. Zo niet: plaats dan een voorbeeld bestandje, dan kunnen we je wat beter helpen.
Gebruik de QUOTE knop alleen als je iets wit citeren.
Op deze pagina kun je zien hoe je met TAGS werkt.
Bedankt @edmoor en @OctaFish voor meedenken.
Heb na meer zoeken een script en methode gevonden, dat werkt goed. Alleen moet ik eerst dat zoek/vervang tabelletje dan maken.
Dus ga de macro benadering tip van @OctaFish proberen.
Als het altijd dezelfde woorden (en hetzelfde aantal) zijn, dan zou ik daar geen tabel bij gebruiken, maar alles in de macro doen. Een tabel moet namelijk wél ergens staan.... En kan dus ook zichtbaar zijn, en door verkeerde handelingen worden vernaggeld. Als je de 20 woorden in een variabele zet, en de 20 vertalingen ook, is het net zo makkelijk en veel veiliger om te doen. Maar dat is mijn bescheiden opvatting![]()
Gebruik de QUOTE knop alleen als je iets wit citeren.
Op deze pagina kun je zien hoe je met TAGS werkt.
@OctaFish, heb het inderdaad met macro gedaan. Variabelen in een macro lukt me niet dus het zijn nu 10x dezelfde regels onder elkaar ;-) Maar het werkt!
Ah je hebt al macro gemaakt voor me! Nou dat is aardig... dan is het helemaal opgelost. Super!!![]()
En omdat we altijd graag helpen, hier alvast een macrootje waarmee je de eerste 4 woorden simpel vertaalt
Lijkt mij dat je de rest van de tekst er wel bij kan kloppen.Code:Sub Vertalen() Dim Eng As Variant, Nld As Variant Nld = Array("zwart/groen", "blauw", "groen", "rood", "zwart") Eng = Array("black/green", "blue", "green", "red", "black") With Application .EnableEvents = False .ScreenUpdating = False .Calculation = xlCalculationManual End With For i = LBound(Eng) To UBound(Eng) Cells.Replace What:=Eng(i), Replacement:=Nld(i), LookAt:=xlPart, MatchCase:=False Next i With Application .EnableEvents = True .ScreenUpdating = True .Calculation = xlCalculationAutomatic End With End Sub
Gebruik de QUOTE knop alleen als je iets wit citeren.
Op deze pagina kun je zien hoe je met TAGS werkt.
Nog 2 vragen:
1)
Kan de Nld en Eng woorden uit de array ook onder elkaar want wordt lange regel nu.
Ik probeerde dit maar krijg meteen melding:
2)Code:Nld = Array( "zwart/groen", "blauw", "groen", "rood", "zwart")
Kan ik ook alleen verticaal alles vervangen i.p.v. hele worksheet? Dat zou nóg fijner zijn.
Laatst aangepast door damnsharp : 7 april 2021 om 16:41 Reden: extra vraag toegevoegd
Iets ander gebruik van Array en met antwoord op je 2e vraag, in dit geval verticaal kolom A.
Je hoeft alleen nog maar de rest van de woorden in te vullen.
Code:Sub VervangENdoorNL() Dim Talen(1 To 20, 1) As String 'Nederlands Engels Talen(1, 0) = "zwart/groen": Talen(1, 1) = "black/green" Talen(2, 0) = "blauw": Talen(2, 1) = "blue" Talen(3, 0) = "groen": Talen(3, 1) = "green" Talen(4, 0) = "rood": Talen(4, 1) = "red" Talen(5, 0) = "zwart": Talen(5, 1) = "black" Talen(6, 0) = "wit": Talen(6, 1) = "white" Talen(7, 0) = "": Talen(7, 1) = "" Talen(8, 0) = "": Talen(8, 1) = "" Talen(9, 0) = "": Talen(9, 1) = "" Talen(10, 0) = "": Talen(10, 1) = "" Talen(11, 0) = "": Talen(11, 1) = "" Talen(12, 0) = "": Talen(12, 1) = "" Talen(13, 0) = "": Talen(13, 1) = "" Talen(14, 0) = "": Talen(14, 1) = "" Talen(15, 0) = "": Talen(15, 1) = "" Talen(16, 0) = "": Talen(16, 1) = "" Talen(17, 0) = "": Talen(17, 1) = "" Talen(18, 0) = "": Talen(18, 1) = "" Talen(19, 0) = "": Talen(19, 1) = "" Talen(20, 0) = "": Talen(20, 1) = "" With Application .EnableEvents = False .ScreenUpdating = False .Calculation = xlCalculationManual End With For i = 1 To UBound(Talen) Range("A:A").Replace What:=Talen(i, 1), Replacement:=Talen(i, 0), LookAt:=xlPart, MatchCase:=False Next i With Application .EnableEvents = True .ScreenUpdating = True .Calculation = xlCalculationAutomatic End With End Sub
Laatst aangepast door edmoor : 7 april 2021 om 17:02
"It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5
Een lange regel in VBA kun je inkorten. Plaats, bijvoorbeeld na een komma, EERST een spatie, daarna Underscore-Enter.
Dan komt hij op twee regels te staan, of meer als dat nodig is, dit kan onbeperkt...
Waarom wil je het zo onoverzichtelijk hebben?
Code:Nld = Array("zwart/groen", "blauw", "groen", "rood", "zwart", _ "oranje", "geel", "paars", "grijs") Eng = Array("black/green", "blue", "green", "red", "black", _ "orange", "yellow", "purple", "grey")
Gebruik de QUOTE knop alleen als je iets wit citeren.
Op deze pagina kun je zien hoe je met TAGS werkt.
Beargumenteer eens: wat is het nadeel van een 'lange' regel ?
Code:Nld = split("zwart/groen blauw groen rood zwart oranje geel paars grijs") Eng = split("black/green blue green red black orange yellow purple grey")
VBA voor smarties
VBA is een taal die je moet leren met een grammatica- en een woordenboek.
http://www.helpmij.nl/forum/announcement.php?f=5
Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.
Dank jullie wel voor alle reacties!
@edmoor, mooi script en ook overzichtelijk. Heb het geprobeerd en het gaat goed totdat er in 1 cel meerdere teksten (in mijn geval categorieën) staan zoals "appels, bananen, appels/bananen" en ik wil "appels/bananen" vervangen door "peren" gaat het niet goed. Script maakt er wel wat van maar niet ideaal. Maar ga zelf even uitzoeken wat ik ermee kan doen.
@mvdvlist, weer wat erbij geleerd, spatie en underscore![]()
Het vervangen doet niet een gedeelte van de inhoud maar vervangt de hele inhoud.
Wil je dat anders dan kan niet zomaar de Replace functie worden gebruikt.
"It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
Op rechtstreekse vragen via email of privébericht reageer ik niet. Daar is het forum voor.
Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5
Ik begrijp het @edmoor! Dank je wel voor de uitleg.![]()