Avatar billede Ankerbanker Nybegynder
28. maj 2014 - 23:57

Excel VBA - Sammensat Script

Hej folkens jeg prøver at få dette script til at virke jeg er helt ny i VBA og er sgu lost lige nu håber der er en der kan løse mit problem jeg har sat de sidste af min point på svaret så håber i syntes det er nok.. nå here we go'

Jeg har lavet kommentar igennem scriptet for at gøre det mere forståelig hvad jeg prøver at gøre.

1. script tager celle bogstavet fra den celle der matcher min søgning
2. så skal den tage celle tallet fra celle navnet i ved match i næste søgning(er ikke sikker på den er rigtig sat sammen)
3. sammensætter de 1 & 2 så man få en celle location f.eks A22 for derefter at +1 i den celle.(er ikke sikker på den er rigtig sat sammen)
4.hvis den ikke har fundet det den søgte i ovenstående køre den det næste script som jeg ved virker men jeg ved ikke helt hvordan den skal sammensættes med ovenstående.
(jeg ved godt det er ret meget jeg ber' om hjælp til her men jeg har siddet og gloet mig blind på det her igennem de sidste 3 dage så er pænt lost nu :)

Sub OK()
        Dim SearchString As String
        Dim cl As Range
        Dim FirstFound As String
        Dim Firstletter As String
        Dim Firstnumber As String
        Dim sh As Worksheet
        Dim x As Variant
        Dim y As Variant
        Dim sammensat As Variant
       
        SearchString = Sheets("Program").Range("H6")
        Application.FindFormat.Clear
        ' loop through all sheets
        With Sheets("Hoved Domæne Katagori")
            ' 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
                adr = cl.Address
                ' Tager start bogstavet fra cell Navnet
                x = Split(adr, "$")
                Firstletter = x(1)
       
        SearchString = Sheets("Program").Range("E5")
        Application.FindFormat.Clear
        ' loop through all sheets
                With Sheets("Hoved Domæne Katagori")
         
            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
                adr = cl.Address
                y = Split(adr, "$")
                ' Tager kun nummeret fra cell Navnet (ikke sikker på virker)
                Firstnumber = y(2)
                Do
                ' Skal sammensæt de to statments x+y så det bliver til et cell navn hvor der skal +1 i
                sammensat = x & y
                ' +1 i cell (sammensat)
                .Range(sammensat) = .Range(sammensat) + 0.01
                End With
                ' Efterfølgende code virker men kan ikke få ovenstående til at virke med sammensætning
                ' af nedsåtende script så hvis ovenstående ikke er tilsted skal den gå videre med nedsåtende script
               
SearchString = Sheets("Program").Range("H6")
Application.FindFormat.Clear
' loop through all sheets
With Sheets("Priotering Domæne")
' 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) + 0.01
Set cl = .Cells.FindNext(After:=cl)
' repeat until back where we started
                Loop Until FirstFound = cl.Address
            End If
        End With
        End If
    End Sub

Hvis det er helt elendigt så forstår jeg hvis det ikke er til at gøre men så takker jeg for i bare gad at kigge forbi :)
Med venlig hilsen

Lasse
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