Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Iemand met VB skills? Automatische actie in outlook.

Pagina: 1
Acties:

  • gabn88
  • Registratie: Februari 2005
  • Laatst online: 14:56
Ik zoek iemand die het volgende kan inpassen in de volgende code. Zelf heb ik geen VB-skills, maar heb wel veel geprogrammeert met matlab, en dit zou met matlab wel werken. Het gaat maar om 3 regels, dus laat je niet afschrikken door de lengte van de code;)

Het probleem: Na synchronisatie met mijn telefoon heeft outlook ongeveer de helft van de achternamen in het vak "tussenvoegsel" geplaatst, dit vak wordt ook wel "Middelste Naam" genoemd. Ik wil dus een code hebben die voor elke contactpersoon kijkt:
1. Of er een achternaam is,
2. zo nee: is er een middelste naam?
3. zo ja: achternaam = middelste naam.
4. verwijder middelste naam.

Dit heb ik alsvolgt gedaan:
Visual Basic: ThisOutlookSession
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 

Public Sub ChangeFileAs() 
    Dim objOL As Outlook.Application 
    Dim objNS As Outlook.NameSpace 
    Dim objContact As Outlook.ContactItem 
    Dim objItems As Outlook.Items 
    Dim objContactsFolder As Outlook.MAPIFolder 
    Dim obj As Object 
    Dim strFirstName As String 
    Dim strLastName As String 
    Dim strFileAs As String 

    On Error Resume Next 

    Set objOL = CreateObject("Outlook.Application") 
    Set objNS = objOL.GetNamespace("MAPI") 
    Set objContactsFolder = objNS.GetDefaultFolder(olFolderContacts) 
    Set objItems = objContactsFolder.Items 

    For Each obj In objItems 
        'Test for contact and not distribution list 
        If obj.Class = olContact Then 
            Set objContact = obj 

            With objContact 
            ' Uncomment the  strFileAs line for the desired format  



                If .isempty(.LastName) Then          %%%Geen idee of outlook dit begrijpt? In matlab werkt het wel 
               
                    If .isempty(.MiddleName)==0 Then   %%%ik wil dus dat dit geld als hij dus niet leeg is 

                    .LastName=.Middlename 
                    .Middlename = []              &&&Ook geen idee hoe ik de middlename dan leeg moet maken? 
                     End If 

                 End If 

                .Save 
            End With 
        End If 

        Err.Clear 
    Next 

    Set objOL = Nothing 
    Set objNS = Nothing 
    Set obj = Nothing 
    Set objContact = Nothing 
    Set objItems = Nothing 
    Set objContactsFolder = Nothing 

End Sub 

  • steffex
  • Registratie: Augustus 2003
  • Laatst online: 12-08 00:24
in .Net kun je gewoon het volgende doen:
Visual Basic:
1
if( .LastName == String.Empty )


De rest kun je wel vinden door even een simpele zoektocht op google!

offtopic:
En door het twee keer te vragen gaat het echt niet sneller! ;)

gabn88 in "Outlook sorteren contactpersonen met tus..."

  • jip_86
  • Registratie: Juli 2004
  • Laatst online: 16:07
Dingen als string leeg maken kan je wel op google vinden. Waar wil je onze hulp bij hebben? Wat heb je geprobeerd en wat gaat fout? Het is geen scriptvoorkauwsite hier.

  • gabn88
  • Registratie: Februari 2005
  • Laatst online: 14:56
steffex schreef op donderdag 09 december 2010 @ 09:27:
in .Net kun je gewoon het volgende doen:
Visual Basic:
1
if( .LastName == String.Empty )


De rest kun je wel vinden door even een simpele zoektocht op google!

offtopic:
En door het twee keer te vragen gaat het echt niet sneller! ;)

gabn88 in "Outlook sorteren contactpersonen met tus..."
Bedankt! Ik heb al van alles geprobeert... Dit hieronder werkt bijv ook niet, krijg de melding: Compileer fout, het argument is niet optioneel (bij IsEmpty). Ik heb geen idee wat dan het argument moet zijn. Als ik het zo doe zoals u aangaf, dan kom ik uit op de volgende melding: Compileerfout: Syntaxis fout.

Visual Basic: ThisOutlookSession
1
2
3
4
5
6
7
8
9
10
11
                If .LastName(IsEmpty) Then
                

              
                    If .MiddleName(IsEmpty) = False Then

                    .LastName = .MiddleName
                    .MiddleName = []
                     End If

                 End If


EDIT: Het volgende geeft geen foutmelding, maar voert ook niet uit wat ik wil:

Visual Basic: ThisOutlookSession
1
2
3
4
5
6
7
8
9
10
11
                If IsEmpty(.LastName) Then
                

              
                    If IsEmpty(.MiddleName) = False Then

                    .LastName = .MiddleName
                    TextBox.Clear (MiddleName)
                    End If

                 End If

[ Voor 20% gewijzigd door gabn88 op 09-12-2010 09:51 . Reden: iets toegevoegd ]


  • gvdh
  • Registratie: December 2009
  • Laatst online: 18:07
Testen of iets leeg is:
Visual Basic:
1
If .LastName = "" Then


Testen of iets niet leeg is:
Visual Basic:
1
If .LastName <> "" Then


Iets leegmaken:
Visual Basic:
1
.LastName = ""

  • LegacyCode
  • Registratie: Maart 2002
  • Laatst online: 16-11 20:10

LegacyCode

De crack van de division

(jarig!)
Je kan natuurlijk ook kijken naar de lengte van de waarde
Visual Basic:
1
If Len(.LastName) = 0 Then

legacycode.net


  • gabn88
  • Registratie: Februari 2005
  • Laatst online: 14:56
gvdh schreef op donderdag 09 december 2010 @ 09:54:
Testen of iets leeg is:
Visual Basic:
1
If .LastName = "" Then


Testen of iets niet leeg is:
Visual Basic:
1
If .LastName <> "" Then


Iets leegmaken:
Visual Basic:
1
.LastName = ""
Super mooi! Bedankt! Het werkt als een tierelier:)
Echt heel erg bedankt! Scheelt me een snelcursus VB ;)
Pagina: 1