Avatar billede Sonja Novice
29. juni 2017 - 15:19 Der er 32 kommentarer og
1 løsning

Automatiske mellemrum i celle

Hej
Jeg vil gerne lave en brugerdefineret formatering a la telefonnummer, men med tekst. F.eks. hvis jeg skal indtaste: kb 12 345  og blot indtaster det uden mellem rum så vil Excel aut. sætte mellemrummene. (Det vil altid være samme antal tegn og mellem)
Hvis jeg under formatering vælger telefonnummer og indtaster 8 tal er laver excel mellemrummene. Men jeg kan ikke finde ud af at lave det så det også fungerer når det er blandet tal og bogstaver.

Håber mit spørgsmål giver mening :-)
Avatar billede ebea Ekspert
29. juni 2017 - 17:20 #1
Til din sidste linje først! Nej.

Prøv at skrive hvad det er du vil, med et klart defineret eksempel!
Avatar billede eyvind Seniormester
29. juni 2017 - 17:26 #2
12 345
er vist sådan ## ### som jeg husker det
Avatar billede ptj_11 Forsker
29. juni 2017 - 17:28 #3
Hej ebea.
Er dette ikke klart nok: F.eks. hvis jeg skal indtaste: kb 12 345
Som jeg læser spørgsmålet, så er ønsket en brugerdefineret formatering, som automatisk ændrer det indtastede fra kb12345 til kb 12 345
/ptj_11
Avatar billede eyvind Seniormester
29. juni 2017 - 17:29 #4
Format - brugerdefineret ## ###
Avatar billede ebea Ekspert
29. juni 2017 - 18:06 #5
#3  -  Nej, ikke hvis jeg læser spørgsmålet! Brugeren skriver "....kb 12 345  og blot indtaster det uden mellem rum så vil Excel aut. sætte mellemrummene"
Excel sætter ikke noget mellemrum automatisk ind!

Så skriver brugeren som Tlf. nummer. Men der jo forskel på, om det er Tekst, eller tal, når det gælder formatering!
Avatar billede ptj_11 Forsker
29. juni 2017 - 18:39 #6
Jeg kommer til at tænke på, at det vel er ret væsentligt, at få oplyst, hvad cellens indhold skal udsættes for bagefter. Hvis cellens værdi skal indgå i en udregning, så dutter det vel ikke med bogstaver i cellen?
/ptj_11
Avatar billede eyvind Seniormester
29. juni 2017 - 18:51 #7
OK jeg huskede ikke rigtigt..............## ### gælder kun tal.
Jeg går ud fra at cellerne bare skal fungere som en tabel.
Avatar billede laskh Juniormester
29. juni 2017 - 19:52 #8
Hej Sonja
Er det kun "kb" du indtaster, eller er det også "MB" eller...?

Såfremt det kun er "kb" er løsningen ganske enkelt, at du ikke skriver "kb" men kun taster tallene og derefter at markere cellerne, formaterer dem (Ctrl+1), vælger 'Brugerdefineret' og skriver dette format ind i rammen 'Type:'

"kb" ## ###

...så sørger excel selv for at der står kb foran, a la ligesom "Kr" når man taster valuta ind.
Avatar billede jens48 Ekspert
29. juni 2017 - 19:53 #9
Nu fremgår det ikke helt klart hvor mange mellemrum der skal indsættes men hvis der blot skal indsættes et efter 2. og efter 4. tegn, kan denne makro bruges. Den er lavet til automatisk at ændre det indtastede i kolonne A:
Med mellemrum bliver indholdet af cellen set som tekst og kan ikke bruges til beregning

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
If Len(Target) = Len(WorksheetFunction.Substitute(Target, " ", "")) And Len(Target) > 2 Then
Target = Left(Target, 2) & " " & Mid(Target, 3, 2) & " " & Mid(Target, 5, 99)
End If
End If
End Sub
Avatar billede Daffodil Professor
30. juni 2017 - 11:20 #10
man kan bruge en sammenkædning til at splitte teksten med:

=SAMMENKÆDNING(VENSTRE(A1;2);" ";MIDT(A1;3;2);" ";MIDT(A1;5;3))

Jeg har taget udgangspunkt i at teksten kun har 7 karakterer ellers kan den modificeres.
Avatar billede Sonja Novice
13. juli 2017 - 01:28 #11
Hej alle
Tak for de mange kommentarer, jeg har desværre været forhindret i at følge med :-/
Indtastningen skal ikke bruges til anden behandling end kunne sorteres.
Det er en masse nummerplader der skal tastes ind i en kolonne på en liste.
Jeg kan huske jeg for en hel del år siden kunne vælge "brugerdefineret format" (der hvor man også kan vælge telefonnummer-format som så aut indsætter mellemrum når de 8 tal tastes ind (fra f.eks. 12345678 til 12 34 56 78) (## ## ## ##)
Og synes at kunne huske at man også kunne lave det med et mix af tal og bogstaver (f,eks, GH12345 til GH 12 345)
Håber denne forklaring giver mere mening end den første .-)
Avatar billede Sonja Novice
13. juli 2017 - 14:14 #12
Daffodil hvis jeg skal bruge dit forslag, hvor skal formlen så sættes ind? for idet jeg skriver i cellen forsvinder formlen jo.
Måske et tåbeligt spørgsmål, men jeg er ikke så klog på det område :-/
Avatar billede Sonja Novice
13. juli 2017 - 14:16 #13
Hov fandt ud af at jeg isåfald skal bruge 2 kolonner
Avatar billede jens48 Ekspert
13. juli 2017 - 18:51 #14
Hvis du sætter min makro fra #9 ind under fanebladet, Vis koder, behøver du kun en kolonne (kolonne A).
Avatar billede Sonja Novice
13. juli 2017 - 20:34 #15
jens48 Det lyder godt men jeg tror ikke jeg forstår sætningen rigtigt:
"under fanebladet, Vis koder"
Jeg har klikket på Vis -> Makroer -> Vis Makroer -> Skrevet et navn i feltet: Makronavn -> klikket på Opret -> Kopieret din tekst fra  #9 ind.
Men der sker intet når jeg taster noget ind f.eks. AB12345 (har tastet ind i kolonne A). Jeg ved ikke om jeg også skal vælge et andet format på cellerne end standard.
Har jeg gjort det rigtigt mon?
Teksten i ruden:
Sub Makro1()
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
If Len(Target) = Len(WorksheetFunction.Substitute(Target, " ", "")) And Len(Target) > 2 Then
Target = Left(Target, 2) & " " & Mid(Target, 3, 2) & " " & Mid(Target, 5, 99)
End If
End If
End Sub

hvis jeg så klikker på Afspil Trinvist kommer der en fejlmeddelelse med teksten: Compile error
expected End Sub

og den øverste linie er markeret blå. Hvis jeg så klikke OK til errorruden bliver de 2 paranteser i øverste linie markeret gule

Siger alt dette dig noget? :-)
Avatar billede ebea Ekspert
13. juli 2017 - 22:38 #16
Her er et lille eksempel, du kan bruge. Der er en lille forklaring, på selve Arket, og eksempler!
https://www.dropbox.com/s/jm631b0cfal02cq/nummerplade-separate.xlsx?dl=0
Avatar billede jens48 Ekspert
14. juli 2017 - 00:58 #17
Hvis du højreklikker på sidens faneblad kan du vælge Vis koder. Der skal du sætte makroen ind.
Avatar billede Sonja Novice
14. juli 2017 - 02:31 #18
Wauw Så lærte jeg noget nyt igen :-) Jeg kendte ikke det med kunne højreklikke på fanebladet. TUSIND tak jens48 - det virker perfekt (y)
Kan jeg komme med et ekstraspørgsmål :-)
Hvis jeg nu ville lave noget tilsvarende i en anden kolonne (udover den første) kan teksten fra #9 så tilpasses så det gælder for 2 kolonner (f.eks. A og F)?
Avatar billede Sonja Novice
14. juli 2017 - 02:33 #19
ebea  Jeg tænker at det du viser via linket er den kode fra #9 når den er lavet? :-)
Avatar billede jens48 Ekspert
14. juli 2017 - 07:52 #20
Hvis du også ønsker at makroen skal virke i kolonne F, skal du i anden linie ændre Range("A:A") til Range("A:A , F:F")
Avatar billede ebea Ekspert
14. juli 2017 - 08:26 #21
"19  -  Nej, det er en anden kode! Men hvis ikke du åbner filen, finder du jo aldrig ud af det!
Avatar billede Sonja Novice
14. juli 2017 - 11:08 #22
Hej ebea
Når jeg klikker på dit link kommer der et billede af et regneark der er skrevet i kolonne
A og D og 2 tekster.
"<------------Når du indtaster, og efterfølgende trykker på Enter, indsættes automatisk mellemrum som du ser i kolonne A"
og
"<-----------Prøv at trække nummeret ind i en celle i Kolonne A, så indsættes mellemrum, også!"

Men jeg kan ikke se nogen fil jeg kan åbne eller noget om hvordan jeg får den til at lave mellemrummene - er der noget jeg har overset? :-)
Avatar billede ebea Ekspert
14. juli 2017 - 11:31 #23
#22  -  ??  Som skrevet i det Ark som du sidder og har åbnet (der hvor du har indsat teksten fra), står jo netop hvad du kan gøre.
Hvis du skriver f.eks. kb12345 (dit spørgsmål), og trykker Enter, så indsættes automatisk mellemrum! Så teksten nu blir' til kb 12 345
Så hvad det er du mener med Fil, det ved jeg ikke!
Det er jo egentlig ganske enkelt.
Avatar billede Sonja Novice
14. juli 2017 - 12:22 #24
ebea
Det var dig der skrev at jeg skulle åbne filen :-) Det gik nu op for mig at jeg skulle downloade "billedet" og så åbne filen.
Men når jeg enten trækker dit tal over i Kolonne A (fra D11 til A11) eller selv skriver i Kolonne A - så kommer der ingen mellemrum. - Sorry
Avatar billede ebea Ekspert
14. juli 2017 - 12:27 #25
#24  -  Jeg ved ikke hvor det går galt henne, hos dig! Men som du kan se inde i filen (Arket), så virker det jo (du kan se mellemrummene i det indtastede), og de er genereret ved at gøre som jeg beskrev!
Så du må gøre et eller andet galt, i forhold til det du efterspørger!
Det er vel ikke sådan, at du har disabled Makroer i din Excel??
Avatar billede Sonja Novice
14. juli 2017 - 13:52 #26
Nej makrer er ikke disabled.
jens48's forslag virker.
Jeg var nysgerrig efter hvilken metode og hvordan du havde fået det til at gøre det :-)
Avatar billede Sonja Novice
14. juli 2017 - 14:01 #27
jens48
Dit forslag fra #9 virker perfekt og også det med tilføjelse af en kolonne mere :-)
Kan man tilføje i makroen at den skal lave de 2 bogstaver først i cellen til store bogstaver (f.eks. ab 12 345 om til AB 12 345) ?

Da jeg ledte efter løsning - som den du har givet mig :-) "faldt" jeg over denne makro fra Peter Braagaard  - som laver store bogstaver om til små (det er jo godt nok den omvendte vej :-) og har prøvet om jeg kunne ændre så jeg kunne bruge den også mht de 2 bogstaver jeg så blot kunne taste ind uden at bruge Capslock :-)
http://www.amino.dk/forums/t/208376.aspx
Håber ikke jeg er for irriterende og krævende nu :-)
Avatar billede ebea Ekspert
14. juli 2017 - 15:24 #28
#24  -  Jeg kan godt se nu, hvorfor du ikke kunne få det til at virke. Af en eller anden årsag, så er filen gemt, uden VBA kode!! Og også uploadet uden kode!!
Så der var forklaringen :-)
Avatar billede jens48 Ekspert
14. juli 2017 - 18:02 #29
Prøv med:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A,F:F")) Is Nothing Then
If Len(Target) = Len(WorksheetFunction.Substitute(Target, " ", "")) And Len(Target) > 2 Then
Target = UCase( Left(Target, 2)) & " " & Mid(Target, 3, 2) & " " & Mid(Target, 5, 99)
End If
End If
End Sub
Avatar billede Sonja Novice
14. juli 2017 - 18:54 #30
Wauww - SÅ GODT (y) Det hele virker :-)  TUSIND TAK jens48 :-)

Et sidste spørgsmål - hvordan kan det være makroen ikke ses under "Vis Makroer" - just wunder :-)
Avatar billede jens48 Ekspert
14. juli 2017 - 19:29 #31
Denne type makro er en "event macro", altså en makro, der aktiveres af en bestemt handling. I dette tilfælde ved at skrive noget i en celle i et bestemt område. Den kan derfor ikke kaldes manuelt, og så er der ikke noget formål i at liste den blandt manuelt kaldte makroer.
Avatar billede Sonja Novice
16. juli 2017 - 20:56 #32
jens48 jeg har markeret dit svar som løsning :-) og TUSIND TAK :-)

Men er der noget med at man skal lukke det også? (det er mit første spørgsmål og synes jeg har set på andre opslag at spørger bliver opfordret  til at få lukket spørgsmålet)
Avatar billede jens48 Ekspert
16. juli 2017 - 22:27 #33
Du har lukket spørgsmålet ved at du har angivet en af mine kommentarer som et svar, og så skal du ikke gøre mere.
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