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 Emne: Hjælp til opslag
    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



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
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: 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
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: 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
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. 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
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. 00:50
Beklager men jeg har ikke fået nogen mail om at du havde lavet et nyt indlæg.

Men jeg har lavet dette eksempel
uploads/107/Find_id_51.xlsm

Dette bruger stadig  en makro, men denne gang ikke avanceret filter, men almindelige loop.

Hvis koden virker som du ønsker, og derfor vil flytte kode over i din egen excel fil. Så skal du huske at rette i koden så ark navnene bliver som dine ark navne.


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: 14.Sep.2011 kl. 01:53
... En "lille" detalje jeg netop har fundet ud af :
 
Tilsyneladende så er der i adresser og nr angivet "blanktegn" - altså mellemrum før og efter adresse og ligeledes før og efter nr.
Jeg ved ikke hvor udbredt problemet er, men tror det er generelt. FØØØØJ
 
Hmm Nå, men det er en importeret fil fra et andet program. Fra dette program har jeg eksporteret alle oplysninger som en .csv fil (semikolonseparerat fil). Jeg går ud fra det er her den er gået galt.
Ligeledes er der sandsynlighed for at disse data ved indtastning (i det andet program) ved en fejl er indtastet forkert (fx ved at der er sat et mellemrum før litra), så det ikke nødvendigvis er importen/eksporten der er gået galt.
Nogle steder er der flere mellemrum før/efter selve teksten.
Det gør selvfølgelig at uanset hvad jeg så søger på, så finder Excel ikke noget pga. de dumme mellemrum.
 
Hvordan fjerner jeg disse mellemrum før og efter teksten (ikke inde i teksten fordi det kan fx godt hedde "Hanne Ejlers Vej" men det skal ikke hedde "  Hanne Ejlers Vej         ".
 
Håber også du kan hjælpe med det ?
 
Venligst
Peder
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: 13.Sep.2011 kl. 23:44
Super sejt Clap fedt (du er jo Excel haj for vildt...Star)
 
Lidt forklaring følger:
 
Jeg har et Excelark med kontaktoplysninger (ca.3500 rækker)
Ud for hver række er der angivet følgende i de enkelte kolonner:
Kolonne A: ID-nr (entydigt nr)
Kolonne B: en anden oplysning
Kolonne C: en tredje oplysning
Kolonne D: en fjerde oplysning
Kolonne E: adresse
Kolonne F: nr (altså hus nr)
Kolonne G: litra (oftest et bogstav, men kan være et tal)
Kolonne H til AJ: andre oplysninger
 
Hvis man ikke lige husker eller kender det entydige ID-nr, så
vil jeg gerne have muligheden for at slår ID-nr op på adressen (altså adresse, nr og litra).
 
Det specielle ved denne opgave:
1. Kontaktoplysningerne ligger på et andet ark (i samme projektmappe) end der hvor man slår op
2. Samme adresse (og nr. og litra) kan godt forekomme flere gange - op til 12 gange tror jeg (med hver sit ID-nr)
3. Der skal ikke ændres i excelarket med kontaktoplysninger
4. Adresse og nr. skal være nøjagtig opslag, men Litra kan nøjes med at være tilnærmet
 
Det jeg ønsker:
Man angiver hhv.
- Adresse
- Nr
- Litra
 
Herefter slår Excel adressen op og returnerer de entydige ID-nr der er ud for adressen
(der er oftest kun et ID-nr, men der kan være op til ca. 12 ID-nr.
 
 
Da der er personfølsomme oplysninger kan jeg ikke oploade selve arket Cry
 
Tror dog godt vi kan bruge et af de eksempler du tidligere har lagt herind.
VBA kode er for sejt, men det kunne være fedt, hvis det kunne klares med Excels indbyggede funktioner.
 
DAMN I OWE YOU BIG TIME
 
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: 13.Sep.2011 kl. 00:02
Prøv at se dette eksempel
 
Da jeg ikke ved noget om størrelsen på dit data sæt, har jeg lavet nogle variabler og nogle steder som du selv må lave om hvis resultatet skal stå andet sted på arket
 
Sub a_test()
Range("U1").CurrentRegion.ClearContents
fr1 = Cells(Rows.Count, 1).End(xlUp).Row 'hvor mange rækker er der i data
fr2 = Cells(Rows.Count, 16).End(xlUp).Row 'hvor mange rækker er i kriterieområdet
lr3 = Range("a1", Range("a1").End(xlToRight)).Count 'hvor mange kolonner er i data området
   
Range("a1", Cells(fr1, lr3)).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "O1:R" & fr2), CopyToRange:=Range("U1"), Unique:=False

End Sub
 
kriterieområdet er sat til O1 til R & fr2 , hvis det skal være andet sted, lav O om, og Cells(Rows.Count, 16), skal så laves om til antal kolonner til kriterieområde start+1
Resultatet af filter bliver kopieret til start celle U1, hvis du vil have det andet sted, lav U1 om, men husk at det skal begge stede i kode.
 
Jeg håber du kan finde hoved og hale i ovenstående ellers skriver du bare igen
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: 12.Sep.2011 kl. 21:03
@1 prøver jeg gerne, men skal desværre først have noget at spise.
Vender tilbage
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: 12.Sep.2011 kl. 20:54
@2:
Lille opgave:
 
Opgave i kolonne B har du samtlige køber, problem jeg vil gerne have en liste over alle de som køber(altså bruger navn).
Men der er over 3000 rækker, som du så bør gå igennem for at være sikker på at du har fundet alle de forskellige brugerer som kan optræde.
 
Løsning: markere celle B1, vælg avanceret filter, under handling, vælg kopiere til andet sted, listeområdet vælg 'Unikke-brugere'!$B:$B , eller blot vælg hele Kolonne B, vælg kopier til 'Unikke-brugere'!$R$1 eller vælg blot celle R1, markere Kun unikke poster. Tryk OK
 
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: 12.Sep.2011 kl. 20:50
HOV HOV - hvad skete der lige der - de to gutter duelerer rigtig nok - DAMN de er for vilde.
 
Tror lige jeg lader en ekspert med begge ben på jorden (dig) lader forklare det...
 
Tror du jeg kan få dig til det (duelmester)  Smile
 
 
 
 
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: 12.Sep.2011 kl. 20:37
Ja det kan jeg se, hvis jeg ellers kunne åbne øjnene  Ouch
 
Begge metoder er simpelthen så logiske som kan være - super.
To spørgsmål til eksperten:
 
1. kan man lave en knap, der automatisk laver filtreringen, som jeg ønsker
(ingen brugerformular behøver komme op).
 
2. hvad menes der med "kun unikke poster" under avanceret filter?
 
 
Venligst
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: 12.Sep.2011 kl. 20:37
Selvfølgelig kan man det, prøv at se:
 
 
hvis linket ikke virker, gå til youtube søg efter: dueling excel+1420
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: 12.Sep.2011 kl. 20:26
Avanceret filter er efter lidt testforsøg egentlig meget smart, men...
Hvis man nu som i dit eksempel angiver tre kriterier, kan man så lave en knap ved siden af til at trykke på der
automatisk udfører den avancerede filtrering og skriver resultatet (ID-nr) ?
 
Det kunne være for smart...
 
Blot for at gøre det så brugervenligt som muligt?
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: 12.Sep.2011 kl. 20:24
Øh-ikke sikker på jeg helt forstår
indeks-sammenlign er i mit eksempel ligeglad med sToRe elle LilLe bogstaver.
Det samme er avanceret filter.
 
Avanceret filter har endvidre den fordel at listeområdet og kriterieområdet kolonnerne ikke behøver at stå i samme rækkefølge.
Ved godt at avanceret filter kan være lidt meget svært at forstå, men en google søgning på"avanceret filter excel" vil give en del forskellige gode resultater. 
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: 12.Sep.2011 kl. 20:05
Tak
 
Avanceret filter er jeg ikke sikker på helt forstår.
 
I begge tilfælde: hvordan sikrer man at Excel er "ligeglad" med om det er store eller små bogstaver?
 
Peder
Til top
 Besvar Besvar Side  12>

Skift forum Forum tilladelser Se dropdown

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