Avatar billede rotroc Nybegynder
03. september 2007 - 11:11 Der er 6 kommentarer og
1 løsning

TRUE/FALSE tests vha VBA kode

Hej Eksperter

Jeg vil på baggrund af en række tests fastsætte celleværdi i A38.

Hvis celle A39 = FALSE skal celle A38 være tom og kodeforløbet stopper.
Hvis celle A39 = TRUE  sker flg.

Der testes om  celle A4 er TRUE eller FALSE
Hvis A4=TRUE skal man teste om celle værdien i A3 findes i Rangen ”Dryp”

Hvis Celleværdien i A3 ikke findes i Rangen ”Drip” kommer MsgBox med Fejl meldingen
” Drypbakke er ikke oprettet som option til denne PHE”  - Brugeren klikker på OK knap og koden forløbet stopper.
Hvis Celleværdien i A3 findes i Rangen ”Drip” skal cellen værdien A38 være lig med celle værdi A3.

Hvis celleværdien i A4 = FALSE
Skal man teste om celle værdien i A19 findes i Rangen ”Drip”

Hvis Celleværdien i A4 ikke findes i Rangen ”Drip” kommer MsgBox med Fejl meldingen
” Drypbakke er ikke oprettet som option til denne PHE”  - Brugeren klikker på OK knap og koden forløbet stopper.
Hvis Celleværdien i A4 findes i Rangen ”Drip” skal cellen værdien A38 være lig med celle værdi A19.

Kan nogle hjælpe ?
Avatar billede kabbak Professor
03. september 2007 - 12:38 #1
hvis jeg har forstået det korrekt, så:

Public Sub test()
    Dim Fundet As Boolean
    If [A39] = False Then
        [A38] = ""
        Exit Sub
    End If

    If [A4] = True Then
        Fundet = False
        For Each C In Range("Drip").Cells
            If C = [A3] Then
                [A38] = [A3]
                Fundet = True
                Exit For
            End If
        Next

    Else
        For Each C In Range("Drip").Cells
            If C = [A19] Then
                [A38] = [A19]
                Fundet = True
                Exit For
            End If
        Next

    End If

    If Fundet = False Then
        MsgBox "Drypbakke er ikke oprettet som option til denne PHE"
        Exit Sub
    End If
End Sub
Avatar billede kabbak Professor
03. september 2007 - 12:56 #2
en rettelse

Public Sub test()

    Dim Fundet As Boolean, C As Range
    Fundet = False
    If [A39] = False Then
        [A38] = ""
        Exit Sub
    End If
    For Each C In Range("Drip").Cells

        If [A4] = True Then
            If C.Value = [A3] Then
                [A38] = [A3]
                Fundet = True
                Exit For
            End If
        Else
            If C.Value = [A19] Then
                [A38] = [A19]
                Fundet = True
                Exit For
            End If
        End If
    Next C

    If Fundet = False Then
        MsgBox "Drypbakke er ikke oprettet som option til denne PHE"
        Exit Sub
    End If
End Sub
Avatar billede rotroc Nybegynder
03. september 2007 - 20:16 #3
Mine kontrolelementer er på Ark1. Rådata og Ranges er på Ark2.
Har sat din kode ind i Ark2 og kørt den derfra - der er en del items i mine Ranges, har ikke testet for alle, men det ser ud til at det bare køre som det skal.
Vil gerne eksekvere din kode fra Ark1 ved tryk på Cmd1. (Click event ?)Hvordan kan jeg køre din procedure - jeg mener hvorledes angiver jeg at Cmd1 på Ark1 skal starte Public Sub test()på Ark2. Er der tale om kald af en underprocedure...Hmmm forskel på Public og Private (scope af disse)...???
Avatar billede kabbak Professor
03. september 2007 - 21:30 #4
Private Sub CommandButton1_Click()
Call Ark2.test
End Sub

Public kan ses i alle moduler, Private, kun i eget modul
Avatar billede rotroc Nybegynder
03. september 2007 - 22:02 #5
Fint det kører - tak for hjælpen , et svar og du får point
Avatar billede kabbak Professor
03. september 2007 - 22:03 #6
et svar ;-))
Avatar billede kabbak Professor
03. september 2007 - 23:27 #7
tak for point ;-))
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