Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Finde en celle med en hvis "tekst"

3 views
Skip to first unread message

BOX

unread,
Apr 5, 2012, 11:48:39 AM4/5/12
to
Jeg har brug for et lille program-funtion som kan fortælle mig hvad række &
kollonne-nr en hvis "Tekst" står i, i et regneark, så jeg har et
udgangspunkt for de øvrige rækker.

Er der en der har et bud.

Pfh. tak
BOX


Jan Kronsell

unread,
Apr 5, 2012, 6:26:22 PM4/5/12
to
>"BOX" skrev i meddelelsen
>news:4f7dbecd$0$292$edfa...@dtext01.news.tele.dk...
>Jeg har brug for et lille program-funtion som kan fort�lle mig hvad r�kke &
>kollonne-nr en hvis "Tekst" st�r i, i et regneark, s� jeg har et
>udgangspunkt for de �vrige r�kker.
>
>Er der en der har et bud.
>

Er dette hvad du s�ger?

Sub FindAdresse()
Tekst = UCase(InputBox("Indtast den tekst, der skal s�ges efter!"))
For Each c In ActiveSheet.UsedRange.Cells
If InStr(1, UCase(c.Value), Tekst) > 0 Then
MsgBox c.Address
End If
Next c
End Sub

Jan

BOX

unread,
Apr 6, 2012, 8:23:57 AM4/6/12
to

"Jan Kronsell" <nos...@nospam.dk> skrev i en meddelelse
news:4f7e1c0b$0$56784$edfa...@dtext02.news.tele.dk...
> >"BOX" skrev i meddelelsen
> >news:4f7dbecd$0$292$edfa...@dtext01.news.tele.dk...
>>Jeg har brug for et lille program-funtion som kan fortælle mig hvad række
>>& kollonne-nr en hvis "Tekst" står i, i et regneark, så jeg har et
>>udgangspunkt for de øvrige rækker.
>>
>>Er der en der har et bud.
>>
>
> Er dette hvad du søger?
>
> Sub FindAdresse()
> Tekst = UCase(InputBox("Indtast den tekst, der skal søges efter!"))
> For Each c In ActiveSheet.UsedRange.Cells
> If InStr(1, UCase(c.Value), Tekst) > 0 Then
> MsgBox c.Address
> End If
> Next c
> End Sub
>
> Jan
Tak for koden, men jeg har nok ikke udtrykt mig klart nok. Jeg skal beregne
hvad der skal skrives i en anden celle i forhold til den jeg står i. Jeg
står i en celle i en af flere tabeller, nu skal jeg vide hvad det er for en
tabel jeg stå i, og hvor tabellen begynder, dvs. cellenr, ved at jeg i
kollonne 1 i ekc.tabel 2, skrive feks. Tabel 2 .
Jeg håber jeg har udtrykt mig godt nok.

BOX


Jan Kronsell

unread,
Apr 6, 2012, 8:18:57 AM4/6/12
to

>Tak for koden, men jeg har nok ikke udtrykt mig klart nok. Jeg skal beregne
>hvad der skal skrives i en anden celle i forhold til den jeg står i. Jeg
>står i en celle i en af flere tabeller, nu skal jeg vide hvad det er for en
>tabel jeg stå i, og hvor tabellen begynder, dvs. cellenr, ved at jeg i
>kollonne 1 i ekc.tabel 2, skrive feks. Tabel 2 .
>Jeg håber jeg har udtrykt mig godt nok.
>

Jeg må tilstå, at jeg ikke helt forstår, hvad du mener. Kan du ikke give et
konkret eksempel?

Hilsen
Jan

BOX

unread,
Apr 6, 2012, 1:57:53 PM4/6/12
to

"Jan Kronsell" <nos...@nospam.dk> skrev i en meddelelse
news:4f7edf2e$0$56777$edfa...@dtext02.news.tele.dk...
Jo, for at starte forfra. Jeg har en tabel der består af ca. 8 kollonner / 7
rækker med nogle spiller.
eks. Spiller 1. spiller mod spiller 2, & spiller 2 vinder 20 over spiller 1,
som får 3.
Dvs. når man taster 3 ind på spiller 1 i celle D2 så ved vi at så skal der
stå 20 i celle C3. osv.
I celle
A1 = "Hold nr.": B1=" Navn": C1=" 1 ": D1=" 2 ": E1=" 3 ": F1=" 4 ":
G1=" 5 ": H1= " 6 "
A2 = " 1 ": B2=" her skrives navn": C2="en celle som ikke bruges":
D2=eks.3: E2= osv.
A3= " 2 ": B3= " C3=20 hvis D2<20:
D3=bruges ikke: E3= osv.
A4= osv.

Det er ingen problem sålænge der kun er en tabel foroven, men når der er
flere hold, så vil jeg blot kopier den første tabel antal gange, men så er
det at jeg skal bruge starten på den tabel jeg taster i, så jeg ved om jeg
skal op eller ned i tabellen.Jeg vil kun gøre de seller der må skrive i
aktive, resten beskyttet.

Jeg håber dette kunne give en forklaring

Mvh.
box



Jan Kronsell

unread,
Apr 7, 2012, 4:30:55 AM4/7/12
to
Hvordan kan man se, at en tabel slutter og en anden begynder?

Jan

BOX

unread,
Apr 7, 2012, 8:43:56 AM4/7/12
to

"Jan Kronsell" <nos...@nospam.dk> skrev i en meddelelse
news:4f7ffb3c$0$56770$edfa...@dtext02.news.tele.dk...
> Hvordan kan man se, at en tabel slutter og en anden begynder?
>
> Jan

Det med start er det programmet skal finde ved at i kollonne A første række
i tabellen står "Holdnr.", dette er så startcellen på tabellen.
Som jeg skrev skal øvrige celler som ikke skal bruges låses så man ikke kan
skrive i dem.

Det med at tabellen slutter giver sig selv, da der er lige mange rækker som
kollonner som der er spiller på holdet..

Box


Jan Kronsell

unread,
Apr 7, 2012, 11:02:49 AM4/7/12
to
>
>
>"BOX" skrev i meddelelsen
>news:4f80368a$0$293$edfa...@dtext01.news.tele.dk...
Vil det sige, at alle tabeller starter med overskriften Holdnr. i kolonne A?

Jan

BOX

unread,
Apr 7, 2012, 11:52:56 AM4/7/12
to

"Jan Kronsell" <nos...@nospam.dk> skrev i en meddelelse
news:4f805715$0$56783$edfa...@dtext02.news.tele.dk...
JA det vil det sige og det er i det
samme regneark.
>
> Jan
>


Jan Kronsell

unread,
Apr 7, 2012, 5:09:18 PM4/7/12
to
Jeg er desværre stadig ikke helt sikker på, om jeg har forstået dig rigtigt.
Hvis din aktive celle er i en af dine tabeller, finder denne kode, den celle
i A-kolonnen, hvor der står Hold nr. i den øverste række i netop den tabel
du står i.

Sub FindTabelStart()
co = ActiveCell.Column
coa = ActiveCell.Offset(0, -(co - 1)).Column
i = 0
Do Until txt = "Hold nr."
txt = ActiveCell.Offset(0 - i, -(co - 1)).Value
adr = ActiveCell.Offset(0 - i, -(co - 1)).Address
i = i + 1
Loop
MsgBox adr
End Sub

Jan

BOX

unread,
Apr 8, 2012, 7:06:10 AM4/8/12
to

"Jan Kronsell" <nos...@nospam.dk> skrev i en meddelelse
news:4f80acfa$0$56791$edfa...@dtext02.news.tele.dk...
Tak Jan, det var lige det jeg skulle bruge.

Jeg bruger Excel2010, i de tidliger Exceler var der en menu hvor man kunne
komme lukke markroer og programkoder op, det kan jeg ikke finde i 2010. Jeg
må lave en fiktiv markro og så gå ind i redigering. Har du en forklaring på
dette.

Tak.
BOX


Jan Kronsell

unread,
Apr 8, 2012, 11:02:42 AM4/8/12
to
>Tak Jan, det var lige det jeg skulle bruge.
>
>Jeg bruger Excel2010, i de tidliger Exceler var der en menu hvor man kunne
>komme lukke markroer og programkoder op, det kan jeg ikke finde i 2010. Jeg
>m� lave en fiktiv markro og s� g� ind i redigering. Har du en forklaring p�
>dette.
>

Velbekomme. Du mangler din udviklerfane. V�lg Filer - Indstillinger. V�lg
Tilpas b�ndet. I ruden til h�hre s�tter du flueben ud for Udvikler. Klik OK.
S� kommer fanen frem. Her findes alle makrofunktionerne.

Hilsen
Jan

BOX

unread,
Apr 9, 2012, 3:06:40 AM4/9/12
to

"Jan Kronsell" <nos...@nospam.dk> skrev i en meddelelse
news:4f81a891$0$56786$edfa...@dtext02.news.tele.dk...
> >Tak Jan, det var lige det jeg skulle bruge.
>>
>>Jeg bruger Excel2010, i de tidliger Exceler var der en menu hvor man kunne
>>komme lukke markroer og programkoder op, det kan jeg ikke finde i 2010.
>>Jeg må lave en fiktiv markro og så gå ind i redigering. Har du en
>>forklaring på dette.
>>
>
> Velbekomme. Du mangler din udviklerfane. Vælg Filer - Indstillinger. Vælg
> Tilpas båndet. I ruden til høhre sætter du flueben ud for Udvikler. Klik
> OK. Så kommer fanen frem. Her findes alle makrofunktionerne.
>
> Hilsen
> Jan
Hvor er det nemt når man kan, jeg har ellers tidliger arbejde meget med
excel, men jeg kan nu, med årene mærke at hjernen er knap så skarp, det
kniber med at huske.

Jeg har også i den opgave med tabellerne et andet problem, det er når jeg
sletter en kamp i den ene celle så skal den jo også slette i modstanderens
celle.

Det har jeg også styr på, men jeg kan ikke få stoppet cyklusen, den bliver
ved at køre i ring. Jeg mener at kunne huske der er en komando hvorpå man
stopper aktivitetet indtil man igen taster i feltet.

En anden ting jeg mener at kunne huske var at man kunne gøre regnearkene til
selvstændige programmer, exe-filer. Skulle det ikke være rigtig.

Hilsen
BOX


Jan Kronsell

unread,
Apr 9, 2012, 6:26:04 AM4/9/12
to
>
>Hvor er det nemt når man kan, jeg har ellers tidliger arbejde meget med
>excel, men jeg kan nu, med årene mærke at hjernen er knap så skarp, det
>kniber med at huske.
>
>Jeg har også i den opgave med tabellerne et andet problem, det er når jeg
>sletter en kamp i den ene celle så skal den jo også slette i modstanderens
>celle.
>
>Det har jeg også styr på, men jeg kan ikke få stoppet cyklusen, den bliver
>ved at køre i ring. Jeg mener at kunne huske der er en komando hvorpå man
>stopper aktivitetet indtil man igen taster i feltet.
>
Kan du vise mig den kode, du bruger for at slette?

>En anden ting jeg mener at kunne huske var at man kunne gøre regnearkene
>til selvstændige programmer, exe-filer. Skulle det ikke være rigtig.
>
Det kan man ikke så vidt jeg ved, i hvert fald ikke medindbyggede værktøjer.
Om der findes eksterne programmer, der kan konvertere xlsm filer til exe
skal jeg ikke kunne sige.

Jan

BOX

unread,
Apr 9, 2012, 12:00:04 PM4/9/12
to

"Jan Kronsell" <nos...@nospam.dk> skrev i en meddelelse
news:4f82b93b$0$56776$edfa...@dtext02.news.tele.dk...
> >
>>Hvor er det nemt når man kan, jeg har ellers tidliger arbejde meget med
>>excel, men jeg kan nu, med årene mærke at hjernen er knap så skarp, det
>>kniber med at huske.
>>
>>Jeg har også i den opgave med tabellerne et andet problem, det er når jeg
>>sletter en kamp i den ene celle så skal den jo også slette i modstanderens
>>celle.
>>
>>Det har jeg også styr på, men jeg kan ikke få stoppet cyklusen, den bliver
>>ved at køre i ring. Jeg mener at kunne huske der er en komando hvorpå man
>>stopper aktivitetet indtil man igen taster i feltet.
>>
> Kan du vise mig den kode, du bruger for at slette?
her er hele koden jeg bruger til tabellerne

Option Explicit

Private Sub Worksheet_Change(ByVal selnr As Excel.Range)
Dim selih As String
Dim kol As Integer
Dim rek As Integer
Dim co, coa, i, txt, adr, strk, stkol

co = ActiveCell.Column 'Find startcelle ="Hold nr."
coa = ActiveCell.Offset(0, -(co - 1)).Column
i = 0
Do Until txt = "Hold nr."
txt = ActiveCell.Offset(0 - i, -(co - 1)).Value
adr = ActiveCell.Offset(0 - i, -(co - 1)).Address
i = i + 1
Loop
strk = ActiveCell.Offset(0 - i, -(co - 1)).Row - 1
stkol = ActiveCell.Offset(0 - i, -(co - 1)).Column

kol = selnr.Column
rek = selnr.Row

selih = selnr.Value

If Len(selih) = 0 Then '..........her sletter jeg cellen
Worksheets(ActiveSheet.Name).Activate

Worksheets(ActiveSheet.Name).Cells(kol + strk, rek - strk).Value = ""
Cells(kol + strk, rek - strk).Select

Exit Sub
End If

If selih < 20 And selih > -1 Then '.............her indsætter jeg
point

Worksheets(ActiveSheet.Name).Cells(kol + strk, rek - strk).Value = "20"
Cells(kol + strk, rek - strk).Select
End If
Slut:
End Sub

Jeg mindes også at man kunne definerer en konstant (statiskt) variabel som
blev selv om man lukket programmet, husker jeg forkert?

Hilsen BOX

BOX

unread,
Apr 20, 2012, 4:39:30 PM4/20/12
to

>
> Jeg mindes også at man kunne definerer en konstant (statiskt) variabel som
> blev selv om man lukket programmet, husker jeg forkert?
Jeg fandt ud af det ved hjælp af dine eksempler, TAK
>
> Hilsen BOX
>
>>
>>>En anden ting jeg mener at kunne huske var at man kunne gøre regnearkene
>>>til selvstændige programmer, exe-filer. Skulle det ikke være rigtig.
>>>
>> Det kan man ikke så vidt jeg ved, i hvert fald ikke medindbyggede
>> værktøjer. Om der findes eksterne programmer, der kan konvertere xlsm
>> filer til exe skal jeg ikke kunne sige.
>>
>> Jan

Jeg har beskyttet arket, men kan man ikke også beskytte programkoderne, så
der ikke er andre der kan pille...
BOX


Jan Kronsell

unread,
Apr 21, 2012, 6:25:53 AM4/21/12
to
>Jeg har beskyttet arket, men kan man ikke også beskytte programkoderne, så
>der ikke er andre der kan pille...
>BOX

Så godt som man nu overhovedet kan sikre noget i Excel. Både din beskyttelse
af af arket og beskyttelsen af koden er ret nem at omgå, men for at beskytte
arket skal du


Højreklikke på det VBA projekt (i VBA projektvinduet øverst til højre i VBA
editoren) og vælge Project Properties
Gå til fanebladet Protection
Sæt flueben i Lock prject for viewing
Indtast adgangskode
Klik Ok.
Gem mappen, luk filen og åbn den igen.

Nu skal du have adgangskode for at se det pågældende projekt igen.

Jan

0 new messages