Avatar billede Ankerbanker Nybegynder
27. maj 2014 - 02:11 Der er 1 kommentar og
1 løsning

VBA søg value fra cell sheet1 søg i sheet2 plus en i venstre celle fra den fundet value

He folkens er ny i vba og har et script jeg ikke kan få til at virke som jeg håber der er en der kan hjælpe med at gøre nemmest muligt.

Jeg har i sheet1 i H6 en formala der henter en internet adresse

hvordan søger jeg efter den internet adresse i sheet2 og hvis fundet går en celle venstre op plus 1

eksempel: Søg efter H6(sheet1) søg i Sheet2 hvis fundet offset(0,-1)
for så i ative celle value + 1 den kode jeg er kommet frem til og som ikke virker er :

Sub OK()


        Dim SearchString As String
        Dim SearchRange As Range, cl As Range
        Dim FirstFound As String
        Dim sh As Worksheet

        ' Set Search value
Sheets("Sheet1").Select
        SearchRange = "H6"
        Application.FindFormat.Clear
        ' loop through all sheets
        Sheets("Sheet2").Select
            ' Find first instance on sheet
            Set cl = sh.Cells.Find(What:=SearchString, _
                After:=sh.Cells(1, 1), _
                LookIn:=xlValues, _
                LookAt:=xlPart, _
                SearchOrder:=xlByRows, _
                SearchDirection:=xlNext, _
                MatchCase:=False, _
                SearchFormat:=False)
            If Not cl Is Nothing Then
                ' if found, remember location
                FirstFound = cl.Address
                ' Plus one in found cell
                Do
                ActiveCell.Offset(0, -1).Select
                ActiveCell.Value = ActiveCell.Value + 1


    Set cl = sh.Cells.FindNext(After:=cl)
                    ' repeat until back where we started
                Loop Until FirstFound = cl.Address
            End If
        Next
    End Sub
Avatar billede kabbak Professor
27. maj 2014 - 06:58 #1
Prøv denne

Sub OK()
        Dim SearchString As String
        Dim cl As Range
        Dim FirstFound As String
        Dim sh As Worksheet

        ' Set Search value
SearchString = Sheets("Sheet1").Range("H6")
        Application.FindFormat.Clear
        ' loop through all sheets
      With Sheets("Sheet2")
            ' Find first instance on sheet
            Set cl = .Cells.Find(What:=SearchString, _
                After:=.Cells(1, 1), _
                LookIn:=xlValues, _
                LookAt:=xlPart, _
                SearchOrder:=xlByRows, _
                SearchDirection:=xlNext, _
                MatchCase:=False, _
                SearchFormat:=False)
            If Not cl Is Nothing Then
                ' if found, remember location
                FirstFound = cl.Address
                ' Plus one in found cell
                Do
           
              .Range(cl.Address).Offset(0, -1) = .Range(cl.Address).Offset(0, -1) + 1


    Set cl = .Cells.FindNext(After:=cl)
                    ' repeat until back where we started
                Loop Until FirstFound = cl.Address
            End If
        End With
    End Sub
Avatar billede Ankerbanker Nybegynder
27. maj 2014 - 14:02 #2
Omg you are a god :D

Fedt takker mange gange for du gad bruge tid på det..

Top
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

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