Avatar billede Towle Nybegynder
26. marts 2014 - 15:13 Der er 12 kommentarer og
1 løsning

Makro til søg/erstat af specialkarakterer i Excel

Jeg bruger Excel 2011 for Mac. Jeg skal lave en makro med en hel stribe søg/erstat. Eksempel:

è erstattes med e
ê erstattes med e
ä erstattes med a
o.s.v.

Jeg er ingen haj til VBA, så jeg har indspillet en makro og forsøger derefter at redigere den, men hvis jeg i søg/erstat-funktionen i Excel søger efter f.eks. ê og erstatter med e, så står der e_ i stedet for ê, når jeg går ind i editoren.

Jeg har så prøvet at copy/paste ê ind, men det duer heller ikke. Hvad er tricket?
Avatar billede finb Ekspert
26. marts 2014 - 15:38 #1
Kender du VBA ?
Select Case
Case è
Case è
osv...
Avatar billede Towle Nybegynder
26. marts 2014 - 15:44 #2
Nix, jeg er HELT blank i VBA.
Avatar billede Towle Nybegynder
26. marts 2014 - 15:48 #3
Alle de tekster jeg skal søge og erstatte i ligger i kolonne A og nedad så langt øjet rækker. Her skal jeg "bare have udskiftet alle de tegn der kan tænkes at give problemer på forskellige platforme.

For en sikkerheds skyld 8selv om Windows måske efterhånden er blevet tolerant, er jeg nødt til at tage højde for, at min kundegruppe sidder med ret bedagede operativsystemer.

Det handler om filnavne for musikfiler, som vi sælger via download.
Avatar billede kabbak Professor
26. marts 2014 - 20:43 #4
Prøv at markere celler og kør så makroen, sæt selv flere på i koden

Public Sub UdskiftTegn()
For Each C In Selection.Cells
C.Value = Replace(C, "è", "e")
C.Value = Replace(C, "ê", "e")
C.Value = Replace(C, "ä", "a")
'flere
Next
End Sub

husk at makrokørsel ikke kan fortrydes
Avatar billede Towle Nybegynder
27. marts 2014 - 05:57 #5
Der må altså være noget med kuk med Mac/Excel/VBA angående specialtegn. Din makro erstatter IKKE de specialtegn du skriver i de tre linjer. Ændrer jeg derimod en af linjerne til at udskifte f.eks. 'a' med 'b', så fungerer det lystigt.

Hvis jeg, for kontrollens skyld, kopierer 'è' fra Excel-arket og paster det ind i makrokoden, skriver den 'e_' i stedet for.

De første testkørsler gik i øvrigt amok, musepilen blinkede og Excel var låst. Det gik op for mig at jeg havde markeret hele kolonnen og ikke bare de aktuelle celler, så den må været løbet ind i en uendelig løkke ;-)

Jeg bruger Excel 2011 for Mac.
Avatar billede kabbak Professor
27. marts 2014 - 07:12 #6
Prøv at sætte tegnet alene ind i en celle og brug så funktionen KODE() for at se hvilket nummer den har

hvis jeg sætter tegnet è
ind i C2 og bruger formlen
=KODE(C2)

får jeg værdien 232
den kan bruges her

C.Value = Replace(C, chr(232), "e")
Avatar billede Towle Nybegynder
27. marts 2014 - 07:30 #7
Aha, genialt. Nu ville det jo så være rart med et tabel over disse tegnnumre. Alle disse tegnsæt, UTF og hvad ved jeg, kan jeg ikke finde ud af.

Når JEG laver denne øvelse med 'è', så får jeg nummer 143.

Min Excel er på engelsk, så jeg skriver =CODE(A1), men det burde jo ikke gøre nogen forskel.
Avatar billede Towle Nybegynder
27. marts 2014 - 07:47 #8
P.S. Hvis jeg bruger din fremgangsmåde, men skriver 'chr(143)', så sker der ingenting
Avatar billede kabbak Professor
27. marts 2014 - 08:22 #9
prøv at bruge 232
Avatar billede kabbak Professor
27. marts 2014 - 08:23 #10
Det virker fint her også som vist i #4
Avatar billede Towle Nybegynder
27. marts 2014 - 08:29 #11
232 var (som jeg skrev) det første jeg brugte (din kode i #4) og det virkede ikke.
Avatar billede kabbak Professor
28. marts 2014 - 14:16 #12
Jeg kan ikke hjælpe mere, jeg er blank.
Avatar billede finb Ekspert
28. marts 2014 - 15:59 #13
Nå, kan ikke få vba til det, men dette virker:

1. I celle A1 står der bla. "Klavierstück".
2. Markér bogstavet ü
3. ctrl + c
4. ctrl + h
5. i "søg efter" siger du ctrl + v
6. i "erstat med" siger du u eller ue, efter smag.
7. klik "erstat alle". Nu er ü erstattet i ALLE celler.
8. Og sådan gør du med alle skæve tegn (jeg har en anden ide til vba -skriv, hvis du skal gøre dette ofte).
vh finb
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester