Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketHjælp til opslag

 Besvar Besvar Side  <12
Forfatter
rassten Se dropdown
Guld bruger
Guld bruger


Medlem: 26.Okt.2010
Status: Offline
Point: 694
Direkte link til dette indlæg Sendt: 15.Sep.2011 kl. 01:03
Dit andet problem med for mange mellemrum før og efter en tekst, er desværre ikke ukendt ved import fra et andet program.
I excel er der en funktion som =FJERN.OVERFLØDIGE.BLANKE(a1), som normalt kan løse problemet.

Men nu har du jo et meget stort data område og derfor vil jeg anbefale at bruge en makro
vælg alle celler og kør makroen:

Sub a_test()
For Each cell In Selection
    cell.Value = Trim(cell.Value)
Next cell
End Sub


Trim er næsten som FJERN.OVERFLØDIGE.BLANKE. Men FJERN.OVERFLØDIGE.BLANKE fjerne også overflødige mellemrum i teksten, altså "   aa       bbb    " bliver til "aa bbb". Men det kan Trim ikke "   aa       bbb    " bliver til "aa       bbb".
Så hvis du også har for mange mellemrum i teksten, skal du have en anden makro, men det forventer jeg ikke skulle være nødvendigt.
VH rassten

Arbejde excel 2010
Privat excel 2010
Til top



Til top
peppe Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 26.Okt.2010
Land: Danmark
Status: Offline
Point: 294
Direkte link til dette indlæg Sendt: 15.Sep.2011 kl. 20:13
Hej igen
 
Kan se denne tråd er ved at blive lang (2 sider nu he he).
 
Nå men først og fremmest så tror jeg godt tør prøve lidt makro.....
koden skal jeg lige have implementeret i mit ark.
Da jeg ikke er superskarp til VBA kode, så tænker jeg at måske kunne få dig til at indlægge nogle kommentarer,
i linierne, så jeg har mulighed for at begribe, hvad der sker ?
 
Herefter, så er jeg pludselig blevet klogere på "Fjern.overflødige..." og "Trim" tak for det :-) , men
kan TRIM kun bruges i makro (kan ikke finde den under funktioner) ?
 
Peder
Til top
rassten Se dropdown
Guld bruger
Guld bruger


Medlem: 26.Okt.2010
Status: Offline
Point: 694
Direkte link til dette indlæg Sendt: 15.Sep.2011 kl. 21:33
Hej
jeg vil selvfølgelig gerne skrive nogle kommentar linier i koden. Men er ikke ved en computer lige nu.
Trim er fjern.overflødige på engelsk. Men som jeg startede på at skrive i går. Fjern (Trim) i excel og i vba er ikke præcis det samme.
Det betyder desværre at næsten alt i vba er på engelsk, og at de samme   funktioner i vba og excel ikke er ens selv de kan have samme betegnelse.
Derfor hvis du har problemer med for mange mellemrum mellem ord og vil bruge vba skal der en lidt anden kode end den du fik som nr 2.
VH rassten

Arbejde excel 2010
Privat excel 2010
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 16.Sep.2011 kl. 08:55
Hej med jer,
 
Som en tilføjelse til rasstens kommentar.
Citat: rassten rassten skrev:

Fjern (Trim) i excel og i vba er ikke præcis det samme.
 
Hermed redigeret udgave af rasstens kode, blot baseret på Excels 'Fjern.overflødige.blanke'.
Sub a_test_2()
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Trim(cell.Value)
Next cell
End Sub
 
 
Så kan du bruge den kode som passer bedst ind til netop dit behov.
 
//Allan
Til top
rassten Se dropdown
Guld bruger
Guld bruger


Medlem: 26.Okt.2010
Status: Offline
Point: 694
Direkte link til dette indlæg Sendt: 17.Sep.2011 kl. 00:11
Hej igen
Både Peder og Allan

Allan har selvfølgelig helt ret i hans makro en god måde at få vba til bruge excel Fjern.over... og ikke vbas egen Fjern..(Trim).

Peder, jeg har skrevet de en del kommentar linier i min tidligere makro, for vise hvad og hvordan den virker.
Hvis der er noget som du er i tvivl om eller har kommentar, skriver du bare igen.
uploads/107/Find_id_5_2.xlsm


VH rassten

Arbejde excel 2010
Privat excel 2010
Til top
peppe Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 26.Okt.2010
Land: Danmark
Status: Offline
Point: 294
Direkte link til dette indlæg Sendt: 18.Sep.2011 kl. 19:48
Hej til Jer begge
 
Først og fremmest vil jeg sige mange tak for de mange gode input.
Det er superlækkert at mulighederne er så mangfoldige og man kan få det næsten helt efter eget ønske.
Det er bare fedt.
 
Det viser sig dog at ved at at benytte "arkbeskyttelse" (under fanen "gennemse"), så er der et par problemer...
Excel brokker sig over:
 
- flettede celler
Det har jeg så rådet bod på ved at ændre dette
 
- indsættelse at værdier betyder at cellerne ændrer format (bl.a. kant linier forsvinder)
Da jeg har opbygget søgeområdet med kantlinier mv. så skal dette helst ikke ændres.
Lidt primitivt har jeg lavet en makrooptagelse, hvor jeg ændrer bl.a. kantlinie og indsat det i VBA koden.
 
- kantlinier
Jeg har ændret celleområdet det handler om til at være "åbne" og er derved ikke "låst", men
ønsker egentlig disse skal være låst
 
Mine spørgsmål:
 
1. Kan jeg låse celler (naturligvis undtaget de celler man skal indtaste adresse i mv.) uden VBA-koden
skaber problemer med låste ark ?
Alternativt om man i VBA koden kan slå arkbeskyttelsen fra medens koden kører?
 
2. Den makrokode jeg har indsat i VBA-koden for at indsætte kantlinier virker meget voldsom
Kan det gøres nemmere?
 
Jeg indsætter Et excel-ark indeholdende VBA-koden herunder:
 
/uploads/106/Eksempel_på_kode_VBA.xlsm" target="_blank" rel="nofollow">uploads/106/Eksempel_på_kode_VBA.xlsm
 
Herundeer et word dokument, hvor søgeområdet ses:
 
 
Hvis der er spørgsmål for at gøre det forståeligt, så vend endelig tilbage...  Smile
 
 
 
De bedste tanker
Peder
 
 
 
 
Til top
rassten Se dropdown
Guld bruger
Guld bruger


Medlem: 26.Okt.2010
Status: Offline
Point: 694
Direkte link til dette indlæg Sendt: 19.Sep.2011 kl. 00:59
Til 2.

Fra under "Range("AR14:BN50").Select" og ned til "Range("AR14").Select"
 burde kunne slettes og erstattes med:

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        Selection.Borders(xlEdgeLeft).Weight = xlThin
        Selection.Borders(xlEdgeTop).Weight = xlThin
        Selection.Borders(xlEdgeBottom).Weight = xlThin
        Selection.Borders(xlEdgeRight).Weight = xlThin
        Selection.Borders(xlInsideVertical).Weight = xlThin
        Selection.Borders(xlInsideHorizontal).Weight = xlThin
       


VH rassten

Arbejde excel 2010
Privat excel 2010
Til top
rassten Se dropdown
Guld bruger
Guld bruger


Medlem: 26.Okt.2010
Status: Offline
Point: 694
Direkte link til dette indlæg Sendt: 19.Sep.2011 kl. 01:10
Til 1.

Som taget fra Allans svar: https://forum.excel-regneark.dk/kre-en-makro_topic264_post1434.html?KW=Password#1434

Øverst i din kode:
ActiveSheet.Unprotect "123"

og til sidst i din kode:
ActiveSheet.Protect Password:="123", DrawingObjects:=True, Contents:=True, Scenarios:=True

Du skal selvfølgelig lave 123 om til hvad ønsker koden skal være
VH rassten

Arbejde excel 2010
Privat excel 2010
Til top
 Besvar Besvar Side  <12

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk