Avatar billede sjssjdk Mester
14. december 2016 - 08:50 Der er 10 kommentarer og
1 løsning

VBA hvis A så B, hvis C så D

Hej.

Jeg skal bruge en funktion der basseret på indtastning i en celle skriver noget i en anden celle.

Det er ikke noget problem, men problemmet er hvis jeg skal have flere betingelser. Hvis der i celle A1=1 - B2=2 Hvis A1=2 - B2=5 osv.
Hvis A1 er tom så skal B2 også være det.

Jeg har brugt denne funktion:

Private Sub Worksheet_Change(ByVal Target As Range)

      If Not Intersect(Target, Range("A1")) Is Nothing Then
        If Target = "1" Then Range("B2") = "2" Else Range("B2") = ""
    End If
End sub

Dog er jeg ikke helt sikker på hvordan jeg kobler flere bitingelser ind. Hvis jeg blot gentater så er det kun den øverste betingelse der bliver set på.

Kan nogen hjælpe mig med dette problem?

på forhånd tak.
Avatar billede supertekst Ekspert
14. december 2016 - 09:35 #1
Det er vel et spørgsmål om at indsætte Else efter den første If-sætning
Avatar billede Mads32 Ekspert
14. december 2016 - 09:47 #2
Se eventuelt spørgsmål og svar til butterflys indlæg den 16. november 2016:

"Sammenlign flere udsagn".
Avatar billede sjssjdk Mester
14. december 2016 - 10:13 #3
Mads32.
Det skulle meget gerne være med en macro. For det skal også være muligt at taste date ind i cellen manuelt.
Avatar billede Mads32 Ekspert
14. december 2016 - 10:17 #4
Jeg har en løsning med en lille formel.

Indtast dit tal i A1 og skriv følgende formel i B1 :

"=HVIS((A1/10-HELTAL(A1/10))>0,4;9;5)
Avatar billede Slettet bruger
14. december 2016 - 10:31 #5
Alt afhængig af, hvor mange betingelser du skal have;
du kan bruge If
if target = "1" Then Range("B2") = "2"
elseif target = "2" then Range("b2") = "5"
elseif target = "3" then range("B2") = "10"
osv...
Else Range("B2") = ""

eller du kan lave en Select case:
    Select Case Target
        Case Is = ""
            Range("B2") = ""
        Case Is = "1"
            Range("B2") = "2"
        Case Is = "2"
            Range("B2") = "5"
        Case Is = "3)"
            Range("b2") = "10"
    End Select
Avatar billede ebea Ekspert
14. december 2016 - 10:39 #6
Kan du ikke bruge, som Supertekst skriver i #1 ElseIf funktionen.
Som f.eks.

If Target = "1" Then
  Range("B2") = "2"

ElseIf Target = "2" Then
  Range("B2") = "5"

ElseIf Target = "" Then
  Range("B2") = ""

o.s.v.
Avatar billede sjssjdk Mester
14. december 2016 - 10:56 #7
Ebea

Vil du skrive det sådan?

Private Sub Worksheet_Change(ByVal Target As Range)

      If Not Intersect(Target, Range("A1")) Is Nothing Then

      If Target = "1" Then
  Range("B2") = "2"

ElseIf Target = "2" Then
  Range("B2") = "5"

ElseIf Target = "" Then
  Range("B2") = ""


    End If
End sub

For det kan jeg ikke få til at virke :/
Får fejlen: Block if without end if
Avatar billede supertekst Ekspert
14. december 2016 - 10:58 #8
Manglende End If..er..
Avatar billede supertekst Ekspert
14. december 2016 - 11:04 #9
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
    If Target = "1" Then
        Range("B2") = "2"

        ElseIf Target = "2" Then
            Range("B2") = "5"

            ElseIf Target = "" Then
                Range("B2") = ""
            End If
        End If
End Sub
Avatar billede sjssjdk Mester
14. december 2016 - 12:28 #10
1000-Tak supertekst  !

Det løste det problemet  :)
Avatar billede supertekst Ekspert
14. december 2016 - 12:35 #11
Selv tak ..
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