Avatar billede jesper_n Novice
12. april 2013 - 15:09 Der er 4 kommentarer og
1 løsning

Jeg søger hjælp til at udvikle en rigtig god makro til Outlook til en super makro

Hejsa

Jeg har en meget stor Outlook postkasse med rigtig mange mapper/foldere (1000+). Outlook gør det ikke let at finde den rigtige mappe. Men jeg har for nogen tid siden fundet en fin kode, som jeg bruger i en makro. Den kan finde en mappe med en søgning i alle niveauer, og den returnerer mappens navn med fuld sti og kan flytte til mappen. Det er yderst fremragende. Jeg bringer koden nedenfor.

Jeg har 2 forbedringsønsker.

1. Hvis man f.eks. leder efter en mappe, der hedder "Invitationer", og man har flere af dem. Så søger man efter "Invitati*", og så finder makroen den første. Her kan man vælge at hoppe til mappe eller ikke. Hvis ikke, så stopper den. Forbedringen kunne være, at makroen søger videre indtil man finder den rigtige. Eller indtil man stopper den.

2. Når man har fundet mappen, så hopper den til mappen og gør den aktiv. Det kunne være super, hvis man som alternativ kunne vælge, at den ikke hopper til mappen, men placerer den ønskede mappe i (midten af) navigationsruden, mens det fortsat er den aktuelt valgte mappe (oftest Indbakken fra Foretrukne mapper), der fortsat er den aktive mappe. Alternativt at den mappe, som man finder, placeres øverst i den menu, der fremkommer, når man venstre klikker på en mail og vælger Flyt.

Det er ikke vigtigt om makroen samlet set ender på dansk eller engelsk.

Kan det lade sig gøre?

De allerbedste hilsner og god weekend

Jesper

=========================

Her kommer koden:

Public Sub FindFolder()
  Dim Name$
  Dim Folders As Outlook.Folders

  Set m_Folder = Nothing
  m_Find = ""
  m_Wildcard = False

  Name = InputBox("Find Name:", "Search Folder")
  If Len(Trim$(Name)) = 0 Then Exit Sub
  m_Find = Name

  m_Find = LCase$(m_Find)
  m_Find = Replace(m_Find, "%", "*")
  m_Wildcard = (InStr(m_Find, "*"))

  Set Folders = Application.Session.Folders
  LoopFolders Folders

  If Not m_Folder Is Nothing Then
    If MsgBox("Activate Folder: " & vbCrLf & m_Folder.FolderPath, vbQuestion Or vbYesNo) = vbYes Then
      Set Application.ActiveExplorer.CurrentFolder = m_Folder
    End If
  Else
    MsgBox "Not Found", vbInformation
  End If
End Sub

Private Sub LoopFolders(Folders As Outlook.Folders)
  Dim F As Outlook.MAPIFolder
  Dim Found As Boolean

  For Each F In Folders
    If m_Wildcard Then
      Found = (LCase$(F.Name) Like m_Find)
    Else
      Found = (LCase$(F.Name) = m_Find)
    End If

    If Found Then
      Set m_Folder = F
      Exit For
    Else
      LoopFolders F.Folders
      If Not m_Folder Is Nothing Then Exit For
    End If
  Next
End Sub
Avatar billede MadsHaupt Juniormester
14. april 2013 - 19:33 #1
Jeg vil gerne hjælpe dig, men kan du ikke sende et print screen af programmet, så kan jeg moske bedre hjælpe dig.
Avatar billede jesper_n Novice
21. april 2013 - 20:31 #2
Hejsa

Tusind tak.

Hvad er det, du ønsker skærmdump af? Det er en helt almindelig MS Office Outlook 2010 med en makro, der er som den du kan se i mit spørgsmål.

Mange venlige hilsner

Jesper
Avatar billede MadsHaupt Juniormester
10. juli 2013 - 11:37 #3
Jeg ved ikke nogen om MS Office Outlook, men jeg ved hvordan man kan søge i en array i vb.net.

Code:

Public Function søg(ByVal array() As String, ByVal søgeord As String) As String()
    Dim list As New List(Of String)
    Dim søgeord_ As String = søgeord.Replace("*", "")
    Dim bool As Boolean = False
    If søgeord(søgeord.Length - 1) = "*" Then
        bool = True
    End If
    For Each Item As String In array
        If bool Then
            If Item.Length >= søgeord_.Length Then
                If Item.Substring(0, søgeord_.Length) = søgeord_ Then
                    list.Add(Item)
                End If
            End If
        Else
            If Split(Item, søgeord_).Length > 1 Or Item = søgeord_ Then
                list.Add(Item)
            End If
        End If
    Next
    Return list.ToArray
End Function
Avatar billede jesper_n Novice
09. september 2013 - 08:37 #4
Tak!
Avatar billede jesper_n Novice
05. januar 2015 - 08:58 #5
Jeg fik løst opgaven via en konsulent. Tak for hjælpen!
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

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