Avatar billede lortepc Nybegynder
22. januar 2010 - 15:27 Der er 9 kommentarer og
1 løsning

Problem med filter...

Hej Alle

Hvordan kører jeg en stump kode, på udvalgte områder af mit ark?

Jeg har la' os sige 100 dynamiske rækker, og i kolonne A har jeg nogle Titler som fremgår flere gange (numrene 1 -> 12)
Jeg vil så gerne køre min kode i alle celler i kolonne B. Dog kun titlerne 1 og 5.

Er kørt lidt fast igen igen, tak for hjælpen derude!
Avatar billede excelent Ekspert
22. januar 2010 - 15:43 #1
Sub tst()
For Each c In Range("A1:A100")
If c >= 1 And c <= 5 Then MsgBox c & " - " & c.Offset(0, 1)
Next
End Sub
Avatar billede lortepc Nybegynder
22. januar 2010 - 15:54 #2
Tak excelent...

men mine værdier i kolonne A er:
1.nogettekst
2.nogetandet
2.nogetandet
2.nogetandet
3.osv
3.osv
3.osv
3.osv

Vil gerne køre koden på fx 1.nogetekst & 3.osv titlerne. men kun på cellerne i kolonne B... Knap så godt forklaret fra min side :(
Avatar billede excelent Ekspert
22. januar 2010 - 16:10 #3
ok prøv lige med denne

Sub tst2()
For Each c In Range("A1:A20")
If Left(c, 2) >= 1 And Left(c, 2) <= 5 Then MsgBox c & " - " & c.Offset(0, 1)
Next
End Sub
Avatar billede lortepc Nybegynder
23. januar 2010 - 10:51 #4
Jeg er kørt lidt fast... Vi tar den lige forfra!
Kan godt se det virker men har lidt problemer med at flette følgende kode ind i det: (Koden tar første i ord i Kolonne D og klipper det over i C)
   
    Dim str1 As String
    With Range("d7")
        str1 = .Value
        .Offset(0, -1) = Trim(Left(str1, InStr(1, str1, " ")))
        .Value = Trim(Replace(.Value, .Offset(0, -1), ""))
    End With

Tror du er med på hvad jeg vil excelent
Titler står i Kolonne B
Klippet tekst skal stå i C
Hele teksten står i D
Avatar billede excelent Ekspert
23. januar 2010 - 11:10 #5
Skriv lige et eks. på hvordan det ser ud før og efter - husk kolonnebogstav, så jeg kan se hvor stumperne er
Avatar billede lortepc Nybegynder
23. januar 2010 - 13:09 #6
Har sendt dig en mail!
Tak fordi du gider se på det...
Avatar billede excelent Ekspert
23. januar 2010 - 13:32 #7
Sub Opdel()
For Each c In Range("B2:B7")
If Left(c, 2) >= 2 And Left(c, 2) <= 3 Then
x = c.Offset(0, 2).Value
If InStr(1, Trim(x), " ") = 0 Then c.Offset(0, 1) = x Else c.Offset(0, 1) = Left(x, InStr(1, x, " "))
c.Offset(0, 2).Value = Replace(c.Offset(0, 2).Value, c.Offset(0, 1).Value, "")
End If
Next
End Sub
Avatar billede lortepc Nybegynder
23. januar 2010 - 13:54 #8
Hej Excelent

Hvis den nu i mit tilfælde skal kigge på 1 & 3 så tar den naturligvis 2 med, det ik lige så godt.
Avatar billede lortepc Nybegynder
23. januar 2010 - 13:56 #9
If Left(C, 2) = 1 Or Left(C, 2) = 3 Then

Smid lige et svar...
Tak for hjælpen!
Avatar billede excelent Ekspert
23. januar 2010 - 14:08 #10
nej det er rigtig, men det har du helt styr på kan jeg se :-)
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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