29. juni 2017 - 15:19Der 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.
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
#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!
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
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.
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
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 .-)
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 :-/
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
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)?
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? :-)
#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.
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
#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??
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 :-)
#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 :-)
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
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.
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)
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.
Synes godt om
1 synes godt om dette
Ny brugerNybegynder
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.