If you have the folder separator included in the savefolder definition, you don't also need it in the saveas string
If the filenames match your description with blocks separated by hyphens then the following should save the attachments in the subfolder associated with the account name in the filename. If the account folder may not exist you must create it - see the CreateFolders function. This will create an missing folder.
Option Explicit
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "C:\"
For Each objAtt In itm.Attachments
If InStr(1, objAtt.fileName, "-") > 0 Then
saveFolder = saveFolder & Split(objAtt.fileName, "-")(1) & "\"
CreateFolders saveFolder
End If
objAtt.SaveAsFile saveFolder & objAtt.DisplayName
Set objAtt = Nothing
Next
End Sub
Private Function CreateFolders(strPath As String)
'An Office macro by Graham Mayor - www.gmayor.com
Dim strTempPath As String
Dim lngPath As Long
Dim vPath As Variant
Dim oFSO As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
vPath = Split(strPath, "\")
strPath = vPath(0) & "\"
For lngPath = 1 To UBound(vPath)
strPath = strPath & vPath(lngPath) & "\"
If Not oFSO.FolderExists(strPath) Then MkDir strPath
Next lngPath
lbl_Exit:
Set oFSO = Nothing
Exit Function
End Function