Avatar billede richter1 Nybegynder
02. januar 2008 - 17:05 Der er 10 kommentarer og
1 løsning

Check en celle for indhold

Jeg har en lille opgave som lyder:

jeg søger på et navn XX, når navnet er fundet gøres cellen med navnet aktiv. Jeg skal så have undersøgt om den efterfølgende celle har et indhold. hvordan udføres denne test?
Avatar billede excelent Ekspert
02. januar 2008 - 17:28 #1
Sub test()
On Error GoTo nomatch
Range("A1:G1000").Find("XX", LookIn:=xlValues).Select
If Selection.Offset(1, 0) <> "" Then
MsgBox ("Cellen indeholder ") & Selection.Offset(1, 0)
Else
MsgBox ("Cellen er tom")
End If
Exit Sub
nomatch:
MsgBox ("Fandt ingen celler med XX")
End Sub
Avatar billede richter1 Nybegynder
02. januar 2008 - 18:33 #2
I nogen tilfælde kan XX forekomme mere end én gang. og det er kun den sidste i kolonnne som jeg er interesseret i. Når XX er fundet, skal jeg have undersøgt om der står noget i de følgende linier - giver det mening?
Avatar billede excelent Ekspert
02. januar 2008 - 20:51 #3
jo det gir godt nok mening, samt en del mere kode :-)
vender tilbage
Avatar billede excelent Ekspert
02. januar 2008 - 22:21 #4
hvilket område skal der søges i ?
Avatar billede richter1 Nybegynder
03. januar 2008 - 06:23 #5
Der skal kun søges i kolonnne A, hvor række antalle er variabelt.
Avatar billede excelent Ekspert
03. januar 2008 - 07:58 #6
koden finder både XX Xx xx xX
sig til hvis det er et problem

Sub xFind()
søgestreng = "XX" ' angiv evt. ny søgeværdi her
rk = Cells(1000, 1).End(xlUp).Row
x = Application.CountIf(Sheets("Ark11").Range("A1:A" & rk), søgestreng)
If x = 0 Then GoTo nomatch
adr = "A1"
On Error GoTo nomatch
For t = 1 To x
y = Range(adr & ":A" & rk).Find(søgestreng, LookIn:=xlValues).Address
adr = y
Next
If Range(adr).Offset(1, 0) <> "" Then
MsgBox ("Cellen indeholder ") & Range(adr).Offset(1, 0)
Else
MsgBox ("Cellen er tom")
End If
Exit Sub
nomatch:
MsgBox ("Fandt ingen celler med ") & søgestreng
End Sub

------------------
Hvis du foretrækker en formel så indsæt denne og afslut med ctrl+shift+enter

=HVIS(INDIREKTE("A"&MAKS(HVIS(A1:A1000="XX";RÆKKE(A1:A1000)))+1)<>"";INDIREKTE("A"&MAKS(HVIS(A1:A1000="XX";RÆKKE(A1:A1000)))+1);"Cellen er tom")
Avatar billede richter1 Nybegynder
03. januar 2008 - 16:10 #7
Der ser rigtig godt ud, og finder præcis det som jeg søgte. Jeg mangler blot nu få en handling på, når den har fundet den ønskede linie.
I linen: If Range(adr).Offset(1, 0) <> "" Then, indeholder adr. adressen på linien med indholdet XX. Denne linie skal blot slettes. kan du også klare dette vil jeg blive superglad. :O)
Avatar billede excelent Ekspert
03. januar 2008 - 17:18 #8
indsæt denne lige efter NEXT (sletter sidste XX i kolonne)
Range(adr)=""
Avatar billede richter1 Nybegynder
03. januar 2008 - 21:49 #9
Range(adr)="" bevirker ikke at linien slettes. Som jeg har forstået det, så peger adr kun på adressen. Hvordan kan man gøre cellen aktiv? dvs. placere cursoren der? eller bedre endnu, når adressen er kendt, kan rækkenummeret så tages ud af adressen, således at rækken kan slettes?
Avatar billede excelent Ekspert
04. januar 2008 - 08:44 #10
denne sletter eventuelle værdier i rækken
Rows(Range(adr).Row).Clear
denne sletter rækken
Rows(Range(adr).Row).EntireRow.Delete

den bør måske placeres lige før Exit Sub
Avatar billede richter1 Nybegynder
05. januar 2008 - 07:13 #11
Det virker bare helt perfekt :O)). Tusinde tak for hjælpen og god weekend.
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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