Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Systemeinstellungen per VBA Aendern

Forumthread: Systemeinstellungen per VBA Aendern

Systemeinstellungen per VBA Aendern
08.08.2002 00:16:06
Bruno
Hallo zusammen
Habe ein Problem und hoffe jemand von Euch kann mir weiterhelfen:
Habe in einem früheren Beitrag gesehen, wie man die Währung aus den Settings ändern kann. Habe dies bei mir nachvollzogen und es funktioniert auch einwandfrei. Nur möchte ich nicht Die Währung ändern, sondern auf dem Reiter 'Datum' möchte ich gerne den 'Datum Separator' ändern. Da er bei einigen Rechnern auf / anstelle auf . ist und ebenfalls das Datumsformat sollte überall auf tt.MM.jj geändert werden. kann mir jemand sagen wie dafür die konstanten wären oder wo ich diese herausfinden kann. Merci - Nachfolgend das Beispiel für die Aenderung der Währung:
Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, _
ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, _
ByVal LCType As Long, ByVal lpLCData As String) As Boolean
Declare Function GetUserDefaultLCID% Lib "kernel32" ()

Public Const LOCALE_SCURRENCY = &H14 'Konstante für Währung

Private Sub Set_locale() 'Ändern der Ländereinstellungen als Beispiel
Dim Symbol As String
Dim iRet As Long
Dim Locale As Long

Locale = GetUserDefaultLCID() 'LICD
Symbol = "ITL" 'neues Währungssymbol
iRet = SetLocaleInfo(Locale, LOCALE_SCURRENCY, Symbol)
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Systemeinstellungen per VBA Aendern
08.08.2002 00:56:54
Thomas Risi
Hallo Bruno

Na, das kenne ich doch ; ))

Versuch's mal so (o. es probiert zu haben) ...


Public Const LOCALE_SDATE = &H1D
 


Gruß

Thomas

Risi Thomas Softwareentwicklung


Anzeige
Re: Systemeinstellungen per VBA Aendern
08.08.2002 11:08:35
Bruno
Hallo Thomas
Vielen Dank....funktioniert wunderbar!

Vielleicht darf ich dich noch fragen wie der Code aussehen müsste für das: Short Date Style (Datumanzeige), denn ich vermute auch hier haben einige User ein anderes Format vielleicht eingestellt anstelle des bei uns üblichen (dd.MM.jj).. wäre Dir sehr dankbar.

Herzliche Grüsse
Bruno

Anzeige
Re: Systemeinstellungen per VBA Aendern
08.08.2002 11:38:15
Thomas Risi
Hallo Bruno

Probier es mal so ...


Public Const LOCALE_SSHORTDATE = &H1F

Private Sub Set_locale() 'Change the regional setting
Dim Symbol As String
Dim iRet As Long
Dim Locale As Long
      
    Locale = GetUserDefaultLCID() 'Get user Locale ID
    Symbol = "d.M.y" 'New character for the locale
    iRet = SetLocaleInfo(Locale, LOCALE_SSHORTDATE, Symbol)
    
End Sub
 

     Code eingefügt mit Syntaxhighlighter 1.15



Gruß

Thomas

Risi Thomas Softwareentwicklung


Anzeige
Re: Systemeinstellungen per VBA Aendern
08.08.2002 13:48:02
Bruno
Hallo Thomas
Nochmals vielen Dank. Funkioniert alles Prima!

Gruss
Bruno

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Systemeinstellungen in Excel mit VBA anpassen


Schritt-für-Schritt-Anleitung

Um die Systemeinstellungen in Excel über VBA zu ändern, kannst Du die folgenden Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11 in Excel.
  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Deklariere die benötigten Funktionen und Konstanten:

    Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
    Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean
    Declare Function GetUserDefaultLCID% Lib "kernel32" ()
    
    Public Const LOCALE_SDATE = &H1D 'Konstante für Datumstrennzeichen
    Public Const LOCALE_SSHORTDATE = &H1F 'Konstante für kurzes Datumsformat
  4. Erstelle eine Subroutine zur Änderung der Systemeinstellungen:

    Private Sub Set_locale()
       Dim Symbol As String
       Dim iRet As Long
       Dim Locale As Long
    
       Locale = GetUserDefaultLCID() 'Ländercode abrufen
       Symbol = "." 'Neues Datumstrennzeichen setzen
       iRet = SetLocaleInfo(Locale, LOCALE_SDATE, Symbol)
    
       Symbol = "dd.MM.yy" 'Neues Kurzdatumformat setzen
       iRet = SetLocaleInfo(Locale, LOCALE_SSHORTDATE, Symbol)
    End Sub
  5. Führe die Subroutine aus:

    • Klicke in den VBA-Editor mit der rechten Maustaste in das Modul und wähle Ausführen oder drücke F5.

Häufige Fehler und Lösungen

  • Fehler: "Zugriff verweigert"
    Lösung: Stelle sicher, dass Excel mit Administratorrechten ausgeführt wird.

  • Fehler: Änderungen werden nicht übernommen
    Lösung: Überprüfe, ob die Subroutine korrekt aufgerufen wird und keine vorherigen Einstellungen die neuen überschreiben.


Alternative Methoden

Falls Du keine VBA-Programmierung verwenden möchtest, kannst Du die Systemeinstellungen auch manuell über die Windows-Systemsteuerung ändern:

  1. Gehe zu Systemsteuerung.
  2. Wähle Region und Sprache.
  3. Ändere die Formateinstellungen für Datum und Währung.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die VBA-Funktion anpassen kannst:

  • Ändern des Datumstrennzeichens auf einen Schrägstrich (/):

    Symbol = "/" 'Neues Datumstrennzeichen
  • Festlegen eines anderen Datumsformats (MM/dd/yyyy):

    Symbol = "MM/dd/yyyy" 'Neues Datumsformat

Tipps für Profis

  • Verwende Option Explicit am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden, was zu weniger Fehlern führt.
  • Dokumentiere Deinen Code mit Kommentaren, um die Nachvollziehbarkeit zu verbessern.
  • Teste Deine Änderungen in einer sicheren Umgebung, bevor Du sie in produktiven Arbeitsblättern anwendest.

FAQ: Häufige Fragen

1. Frage
Wie kann ich die Währungseinstellungen ebenfalls über VBA ändern?
Antwort: Du kannst die Konstante LOCALE_SCURRENCY verwenden und den Währungswert ähnlich wie bei den Datumseinstellungen setzen.

2. Frage
Gibt es eine Möglichkeit, die Änderungen rückgängig zu machen?
Antwort: Ja, Du kannst die ursprünglichen Werte, die Du geändert hast, erneut setzen. Stelle sicher, dass Du die vorherigen Einstellungen dokumentierst, um sie wiederherzustellen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige