voorwaarde om mail te sturen voldoen niet

Status
Niet open voor verdere reacties.

jo geuens

Gebruiker
Lid geworden
13 feb 2010
Berichten
190
hallo om mijn mail te versturen moet voldaan worden aan een paar voorwaarde anders melding krijgen
nu word mijn mail wel vertuurd als de LCase is voldaan maar wanneer deze niet voldoet had ik graag een melding gehad wat in het rood staat heb ik geprobeerd maar werkt niet
iemand een idee?
Code:
 Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")

    On Error GoTo cleanup
    For Each cell In Columns("C").Cells.SpecialCells(xlCellTypeConstants)
        If cell.Value Like "?*@?*.?*" And _
          LCase(Cells(cell.Row, "D").Value) = "ja" _
           And LCase(Cells(cell.Row, "P").Text) = "100%" _
           And LCase(Cells(cell.Row, "E").Value) <> "Inged." Then
           
           
    [COLOR="#FF0000"]      If Cells(cell.Row, "P").Text = Not "100%" Then
        MsgBox "aanvraag is niet 100% klaar"
        Cancel = True[/COLOR]

           
         
            
            
            Set OutMail = OutApp.CreateItem(0)
 
In de If staat als voorwaarde dat in kolom P 100% staat
Bij Then kijk je dan weer naar F daarvoor, moet er eerst een Else komen.
Dus na het mail gedeelte. Of omgedraaid:

Code:
    For Each cell In Columns("C").Cells.SpecialCells(xlCellTypeConstants)
        If Cells(cell.Row, "P").Text <> "100%" Then
                 MsgBox "aanvraag is niet 100% klaar"
                    Cancel = True
             Else
                 Set OutMail = OutApp.CreateItem(0)
                 'etcetera
        End If

Dit vul je natuurlijk aan met de voorwaarden, die voor jou noodzakelijk zijn.

Mvg Leo
 
nog een klein probleempje

de voorwaarde werkt maar als deze niet 100% is krijg ik de msxbox 4 keer achter elkaar tezien
en is het ook mogelijk om op de regel van mijn gekozen aanvraag nummer te kijken ( Set nr = Worksheets("Planning").Range("A:A").Find(Me.ComboBox4.Value, LookIn:=xlValues, lookat:=xlWhole)


Code:
Private Sub Mail_Click()

     Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range

   

    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")

    On Error GoTo cleanup
    For Each cell In Columns("C").Cells.SpecialCells(xlCellTypeConstants)
         If Cells(cell.Row, "P").Text <> "100%" Then
                 MsgBox "aanvraag is niet 100% klaar" & "Mail zal nog niet verstuurd worden"
                    Cancel = True
        Else
                    
       Set OutMail = OutApp.CreateItem(0)
       End If
     
     
        If cell.Value Like "?*@?*.?*" And _
           LCase(Cells(cell.Row, "D").Value) = "ja" _
           And LCase(Cells(cell.Row, "P").Text) = "100%" _
           And LCase(Cells(cell.Row, "E").Value) <> "Inged." Then

    
        
            Set OutMail = OutApp.CreateItem(0)
      
        
            On Error Resume Next
            With OutMail
                .To = cell.Value
                .Cc = Cells(cell.Row, "R") & "; " & Cells(cell.Row, "S") ' cell.Value '("R" & nr.Row) & cell.Value("S" & nr.Row) ' Cells(cell.Row, "R").Value_ & Cells(cell.Row, "S").Value_ ' 
                .Subject = "Werkaanvraag: " & Cells(cell.Row, "F").Value
                .Body = "Beste, " & Cells(cell.Row, "B").Value _
                & vbNewLine & vbNewLine & _
                    "  NR: " & Cells(cell.Row, "A").Value _
                & vbNewLine & _
                        "Uw werkaanvraag: " & Cells(cell.Row, "F").Value & " is uitgevoerd. " _
                & vbNewLine & _
                    "  " & "Omschrijving: " & Cells(cell.Row, "G").Value _
                & vbNewLine & _
                     "  " & "Opmerking: " & Cells(cell.Row, "H").Value _
                & vbNewLine & _
                     "  " & "Opmerking logistieker: " & Cells(cell.Row, "Q").Value _
                & vbNewLine & vbNewLine & _
                        "Groeten, Logistic Service."
                .Send
            End With
            On Error GoTo 0
            Cells(cell.Row, "E").Value = "Ready"
            Cells(cell.Row, "D").Value = "OK"
      
            Set OutMail = Nothing
   
        End If
    
    Next cell

cleanup:
    Set OutApp = Nothing
    Application.ScreenUpdating = True
    ActiveSheet.Protect
    End
    Aanvraagklaarmail.Hide
    
End Sub
 
Laatst bewerkt:
Zonder voorbeeld bestandje blijft het een beetje praten in het duister.
Bij een If Then is het zaak om de voorwaarden goed door te redeneren.
Je wilt alleen een mail als er aan alle voorwaarden wordt voldaan, zo niet dan een msgbox
Alle voorwaarden dienen in ieder geval voor of achter de Else staan, bij elkaar.
Bijvoorbeeld:

Code:
For Each cell In Columns("C").Cells.SpecialCells(xlCellTypeConstants)
           If  cell.Value Like "?*@?*.?*" And _
               LCase(Cells(cell.Row, "D")) = "ja" _
                    And LCase(Cells(cell.Row, "P")) = "100%" _
                        And LCase(Cells(cell.Row, "E")) <> "inged." Then
                              Set OutMail = OutApp.CreateItem(0)
                         'hier de verdere mailcode, tot de End If
                Else
                        MsgBox "aanvraag is niet 100% klaar" & "Mail zal nog niet verstuurd worden"
                             Cancel = True 
        End If
Next cell

Om het rijnummer van een item in een bepaalde range te weten te komen gebruik je Match
(zet agr3 op nul. Dan hoeven de gegevens niet gesorteerd te zijn)
 
Dat geeft wat meer duidelijkheid.

Ik heb de loop aangepast en de End If verplaatst.
Overigens getest met display, daar send niet werkt bij mij, w.s. doordat ik meerdere profielen gebruik.
Zie bijlage

Bekijk bijlage Kopie van mail2.xls

Mvg Leo
 
Dag Leo

heb deze geprobeerd maar dan kom ik ook met een foutmelding : compileerfout Else zonder if .
het is echter mijn bedoeling om enkel da aanvraag die ik op dat moment heb opgezocht te versturen dus kan ik in mijn code niet zetten dat enkel gezocht moet worden op rij nr Waarde en dan als 100% niet volledig is de melding dat mail niet verstuurd kan worden .
 
Laatst bewerkt:
Hallo jo geuens

Ik heb alleen aanpassingen gedaan in Private Sub Mail_Click
Er bleek ook een Sub mail te zijn.
Ik heb me geconcentreerd op de private sub.
Verder niet naar de rest van het werkboek gekeken, daar dat een te uitgebreid verhaal wordt.
Wel even de compileer fouten eruit gehaald.

Kijk ook even bij workbook_open
Deze regel zorgt ervoor dat je niet steeds hoeft te unprotecten:
Code:
Blad1.Protect (""), userinterfaceonly = True
Zie bijlage:
Bekijk bijlage Kopie van mail2.xls
 
Laatst bewerkt:
hallo leo

heb het voorbeeld uitgeprobeerd maar blijf telkens voor elke regel de melding krijgen dat de aanvraag niet 100% klaar is en deze word enkel meer naarmate ik regels toevoeg ook al is de aanvraag klaar dit is echter niet de bedoeling de meding zou enkel voor de opgevraagde aanraag moeten verschijnen .:confused:
 
Hallo Joke,
Als je alleen de mail_click macro laat lopen gaat het wel goed, zie ook mijn eerdere post.
Alleen de eerste keer. Daarna komt er OK te staan en wordt er niet meer voldaan aan de voorwaarde dat er ja moet staan.
Hopelijk heb je hier wel iets aan.

Mvg Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan