• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Code om taal versie excel te bepalen

Status
Niet open voor verdere reacties.

Rommyke

Gebruiker
Lid geworden
29 mrt 2007
Berichten
357
Hallo allemaal ,

In een bepaald geval maak ik in mijn code gebruik van een Sendkey .

Is er een code of funktie waarmee ik kan zien of je met een Nederlandstalige versie van excel bezig bent of een Engelstalige versie ?


Bedankt !

Groet
Romain
 
Dat kan via volgende code:

Code:
application.LanguageSettings.LanguageID(msoLanguageIDUI)
Die msoLanguageIDUI kan je vervangen door 1 van onderstaande alternatieven:


Application.LanguageSettings.LanguageID(msoLanguageIDExeMode) -- The language mode that the application is using. This setting applies only to Microsoft Excel and Microsoft Access. This setting affects languages that can be displayed and edited, available language-specific features, number styles, currency settings, and so forth. If none of the languages supported by Excel and Access are used, the host application will not be configured to support right-to-left and East Asian languages. The supported languages are as follows: Arabic, Farsi, Hebrew, Japanese, Korean, Simplified Chinese, Traditional Chinese, Urdu, Yiddish.
Application.LanguageSettings.LanguageID(msoLanguageIDHelp) -- The language used for online Help.
Application.LanguageSettings.LanguageID(msoLanguageIDInstall) -- The language settings used by Microsoft Office to set up defaults. For example, Microsoft Word uses this setting to determine the layout of toolbars and the default types of bullets and numbers on a language-by-language basis.
Application.LanguageSettings.LanguageID(msoLanguageIDUI) -- The language used by the host application's user interface.
Application.LanguageSettings.LanguageID(msoLanguageIDUIPrevious) -- The language setting for the user interface when a given computer was last rebooted. A program or add-in can use this to determine whether the user interface language has changed.

Op onderstaande site vind je de language codes:

http://msdn2.microsoft.com/en-us/library/aa170976(office.11).aspx
 
Is die SendKeys wel nodig? Want over het algemeen wordt dat niet als "best practice" aanzien in Excel/VBA middens.

Wigi
 
Is die SendKeys wel nodig? Want over het algemeen wordt dat niet als "best practice" aanzien in Excel/VBA middens.

Wigi

Hoi Wigi ,

Ik gebruik hem liever ook niet maar ik zie geen alternatief en krijg er ook geen gevonden.
Ik verstuur via een knop een bijlage met outlook.

Gebruik ik outmail.Send dan krijg ik die vervelende popup waarschuwing dat iets of iemand een mail probeerd te versturen .
Gebruik ik nu Outmail.Display en daarbij Application.Wait (Now + TimeValue("0:00:01"))Application.SendKeys "%S" dan werkt alles perfect .

Enigste probleem was wat als ik met een Nederlandstalige versie werk.

Ga Finch zijn oplossing proberen te integreren;)

Ps. Wigi als je een andere oplossing hebt , met plezier dan :)
Nog bedankt
Groetjes
Romain
 
Ik heb een Engelse versie, en daar doet Alt-S niets.

Of moet ik eerst een mail display'en?

Wigi
 
Klopt wigi ,

Er moet al een email geregenereerd zijn om te verzenden .
Zal ff volledige code posten

Code:
Sub SendEmail()

 Dim TempFilePath As String
 Dim TempFileName As String
 Dim FileExtStr As String
 Dim FileFormatNum As Long
 Dim OutApp As Object
 Dim OutMail As Object
 Dim Admingroup As String
 
 'Bepaal hier de email adressen van de personen
 Admingroup = "Persoon1@telenet.be; persoon2@telenet.be; persoon3@telenet.be"
 
 
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With
 
    ThisWorkbook.Sheets(2).Copy
    
    FileExtStr = ".xls": FileFormatNum = -4143
    
    'Bewaar de nieuwe Werkboek/Mail het/en Delete het
    TempFilePath = Environ$("temp") & "\"
    TempFileName = "Naam gekopieerde file " & Sheet1.Range("E3") & " op " & Sheet1.Range("E4")

    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
    Set OutMail = OutApp.CreateItem(0)
    
    
    With ActiveWorkbook
        .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
        On Error Resume Next
        With OutMail
            .To = Admingroup
            .CC = ""
            .BCC = ""
            .Subject = "Uw email titel"     '"Lijn voor de Subject"
            .Body = "Dit is een automatisch geregenereerd rapport " & vbCrLf & "" & vbCrLf & "" & vbCrLf & ""
            .Attachments.Add ActiveWorkbook.FullName
            'Kunt op onderstaande manier ook files toevoegen
            '.Attachments.Add ("C:\test.txt")
            .Display  'gebruik .Send voor rechtstreeks te verzenden (warning popup krijg je wel )
            Application.Wait (Now + TimeValue("0:00:02"))
            Application.SendKeys "%S" 'Met sendkeys %s uw mail manueel versturen (enkel Engelse versie)

        End With
        On Error GoTo 0
        .Close SaveChanges:=False
    End With
    
    Kill TempFilePath & TempFileName & FileExtStr
    
    Set OutMail = Nothing
    Set OutApp = Nothing
    
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With

End Sub

Als ik nu met Finch zijn code iets kan maken van

Code:
 If Application.LanguageSettings.LanguageID(msoLanguageIDExeMode) = Application.LanguageSettings.LanguageID(msoLanguageIDEnglishUS) Then 
Application.SendKeys "%S" 'Met sendkeys %s uw mailversturen (enkel Engelse versie)
  Else
        If Application.LanguageSettings.LanguageID(msoLanguageIDExeMode) = Application.LanguageSettings.LanguageID(msoLanguageIDUI) Then 
Application.SendKeys "%S"  'Nederlanse Sendkey voor verzenden  ( nog opzoeken)
         End If
 End If
Ben hier nog niet uit , nog een beetje opzoekingen doen
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan