Avatar billede cutehobbes Nybegynder
28. januar 2015 - 14:05 Der er 11 kommentarer og
1 løsning

Outlook 2013 VBA - 2 betingelser

Hej, jeg roder med en Outlook Form/Makro som vores logistik medarbejdere skal bruge.

De indtaster navn og dato i 2 tekstbokse
Efterfølgende skal de vælge 1 af 4 muligheder (Option buttions)
Ved 2 af disse option buttons er det desuden mulig at sætte flueben i en checkbox.

Hvis der er flueben i checkboxen skal der ske noget andet :)

Kort fortalt, alt efter hvilken option button de aktivere åbnes en html template. Ved 2 af disse sættes der desuden et billede ind i mailen. Og det er så her det bliver tricky for mig :) Hvis der er klikket af ved option button 2 eller 4 og der desuden er flueben i checkboxen skal der bruges en anden template.

Jeg har prøvet med: men så er der stort set ikke noget der virker, eller rettere sagt så er det den samme template der åbnes her gang :)

Skal siges jeg ikke er nogen haj til det her, men meget newbie


If     OBtn1.Value = True Then
        templateFile = "Template0"
    End If
   
    If OBtn2.Value = True And CheckBox1.Value = True Then
        templateFile = "Atemplate_2"
    Else
        templateFile = "Atemplate_1"
    End If
   
    If OBtn3.Value = True And DHLCheckBox.Value = True Then
        templateFile = "Dtemplate_2"
    Else
        templateFile = "Dtemplate_1"
    End If
   
    If OBtn4.Value = True Then
        templateFile = "Template1"
    End If


Håber nogen har tid til at hjælpe
Avatar billede supertekst Ekspert
28. januar 2015 - 14:14 #1
Prøv at "steppe" igennem koden med F8 - så kan du se forløbet.
Umiddelbart ser det ud som den 3. If kan ændre indstillingen sat i 2. If.
Avatar billede cutehobbes Nybegynder
28. januar 2015 - 14:18 #2
Når jeg trykker F8 starter min form op - og ja jeg er enig med at en af de if sætninger ødelægger det.... jeg har dog brug for at få hjælp til at skrive det om :)
For If noget Then noget Else noget andet End er åbenlys ikke godt nok :)
Avatar billede supertekst Ekspert
28. januar 2015 - 14:39 #3
Eksempel:

Der er 4 optioner og en checkboks
Hvis op2 eller op4 & chk1 sat-> templ1

If (op2 = true or op4 = true) and chk1 = true then
  temp = temp1
else
    if op1 = true then
        temp = temp2
    else
        if op2 = true then
            temp = temp3
        end if
    end if
end f



end
Avatar billede cutehobbes Nybegynder
28. januar 2015 - 14:45 #4
Ok, jeg prøver mig lige lidt frem - ellers vender jeg tilbage :) Tak
Avatar billede supertekst Ekspert
28. januar 2015 - 15:04 #5
Fint - du giver blot signal..
Avatar billede cutehobbes Nybegynder
28. januar 2015 - 15:34 #6
Hmm, tror ikke jeg helt kan greje den :)
Fordi hvis op2 eller op4 og checkboks er true så er det faktisk 2 forskellige templates der skal åbnes - altså hvis op2 og checkboks så er det templateA og hvis det er op4 og checkboks er det templateB.

Jeg sætter lige den helt rigtige kode ind, måske det hjælper lidt på overskueligheden ...


If ArrivalOBtn.Value = True Then
        templateFile = "Arrival_Confirmation"
    End If
   
    If DAPOBtn.Value = True And DHLCheckBox.Value = True Then
        templateFile = "Arrival_Confirmation_DAP_DHL"
    Else
        templateFile = "Arrival_Confirmation_DAP"
    End If
   
    If DelieveryOBtn.Value = True And DHLCheckBox.Value = True Then
        templateFile = "Delivery_Confirmation_DHL"
    Else
        templateFile = "Delivery_Confirmation"
    End If
   
    If BrokerOBtn.Value = True Then
        templateFile = "Broker_requested"
    End If
Avatar billede supertekst Ekspert
28. januar 2015 - 23:17 #7
Jeg vil studere det lidt nærmere i morgen og vende tilbage
Avatar billede supertekst Ekspert
29. januar 2015 - 08:57 #8
I #6 hvor går det galt?
Avatar billede cutehobbes Nybegynder
29. januar 2015 - 12:45 #9
Hmm, jammen det går vel egentlig galt med alle - det der sker er at uanset hvilken Option Button jeg markerer så er det Delivery templaten der åbnes ....
Avatar billede supertekst Ekspert
29. januar 2015 - 13:56 #10
Er denne bedre:?

Private Sub visResultat()
    If ArrivalOBtn.Value = True Then
        templatefile = "Arrival_Confirmation"
    Else
        If DAPOBtn.Value = True Then
            If DHLcheckBox.Value = True Then
                templatefile = "Arrival_Confirmation_DAP_DHL"
            Else
                templatefile = "Arrival_Confirmation_DAP"
            End If
        Else
            If DelieveryOBtn.Value = True Then
                If DHLcheckBox.Value = True Then
                    templatefile = "Delivery_Confirmation_DHL"
                Else
                    templatefile = "Delivery_Confirmation"
                End If
            Else
                If BrokerOBtn.Value = True Then
                    templatefile = "Broker_requested"
                End If
            End If
        End If
    End If
         
    Label1 = templatefile    'Min Test
End Sub
Avatar billede cutehobbes Nybegynder
30. januar 2015 - 08:33 #11
Tak, det ser ud til at virke :) Nu bliver den lige gennemtestet af den afdeling der skal bruge den.... God weekend
Avatar billede supertekst Ekspert
30. januar 2015 - 09:26 #12
Selv tak - og i lige måde..
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
Kurser inden for grundlæggende programmering

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