Avatar billede lklingenberg Nybegynder
11. december 2006 - 14:44 Der er 7 kommentarer og
1 løsning

Standard celle seperator

Hi E,

Vi har et apperatur som generere nogle data, som automatisk overføres til Excel. I en tidligere version af Excel blev data automatisk anbragt i celler og rækker, men efter en installation af en nyere version af Excel havner alle data for de enkelte rækker i samme celle (den første i rækken) i stedet for at blive delt ud i cellerne i en række.

De enkelte data er adskildt af komma, og der anvendes semikolon som rækkeseperator. Tilsyneladende fungerer rækkeseperatoren altså, mens celleseperationen fejler i den nye udgave.

Findes der en indstilling, hvor man kan ændre/sætte en standard celle seperator, således at rådata fra andre applikationer automatisk deles ud i celler og rækker iht. de angivne celle/række-seperatorer?

Rådata:
data 1,data 2,data 3,data 4,data 5;data a,data b,data c,data d,data e

Bliver opdelt således:
Række 1: data 1,data 2,data 3,data 4,data 5
Række 2: data a,data b,data c,data d,data e

Bør opdeles således (| = adskildelse mellem celler):
Række 1: data 1 | data 2 | data 3 | data 4 | data 5
Række 2: data a | data b | data c | data d | data e
Avatar billede bak Forsker
11. december 2006 - 15:58 #1
I windows kontrolpanel kan du under regionale indstillinger vælge English(US)
Så skulle din Listeseperator ændre sig til komma.
Avatar billede bassoon Nybegynder
12. december 2006 - 06:03 #2
Kan der ikke ske noget utilsigtet ved at ændre de regionale indstillinger?

Kan man ikke 'bare' lave en 'Tekst til kolonner' og så angive komma som separator?
Avatar billede lklingenberg Nybegynder
12. december 2006 - 10:30 #3
Umiddelbart er jeg ikke interesseret i at ændre på windows indstillingerne i øvrigt.

bassoons mulighed er jeg bekendt med, men jeg leder efter en automatisering. Jeg kunne måske få en stump vba kode til at gøre det...
Avatar billede excelent Ekspert
12. december 2006 - 18:58 #4
Maker celle og kør sub - data splittes op i nabo cellerne

Sub Del()
  Dim rCell As Range, t, x
  For t = 1 To Len(Selection)
    If Mid(Selection, t, 1) = "," Then x = x + 1
  Next
  For Each rCell In Selection '(c)bak
    rCell(1, 2).Resize(, x + 1) = Split(rCell, ",")
  Next
End Sub
Avatar billede bak Forsker
12. december 2006 - 20:10 #5
Alternativt:

Sub SplitCells()
    For Each rcell In Selection 
        rcell(1, 2).Resize(, UBound(Split(rcell, ",")) + 1) = Split(rcell, ",")
    Next
End Sub
Avatar billede excelent Ekspert
12. december 2006 - 20:18 #6
Så er der åbnet for godteposen! flot bak :-)
Avatar billede lklingenberg Nybegynder
12. december 2006 - 22:53 #7
Jeg vil teste det næste gang jeg er i nærheden af apparaturet... Spørgsmålet er, om jeg kan få den kodestump til at ekseverer, når apparatet sender rådata til Excel...
Avatar billede lklingenberg Nybegynder
21. januar 2007 - 22:54 #8
spørgmålet er ikke aktuelt mere, da jeg ikke er tilknyttet det laboratorium mere... ellers tak for indsatsen...
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
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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