Office: (Office 2013) Formatierung mit Macros

Helfe beim Thema Formatierung mit Macros in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich hab mal wieder eine Herausforderung und da ich blutiger Anfänger bin was Macros angeht benötige ich eure Hilfe. Ich bekomm jeden Donnerstag... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Spitzbart, 27. Mai 2015.

  1. Formatierung mit Macros


    Hallo, ich hab mal wieder eine Herausforderung und da ich blutiger Anfänger bin was Macros angeht benötige ich eure Hilfe.

    Ich bekomm jeden Donnerstag eine xml als Export aus einem Programm. Diese geht bin Spalte BV.

    In einigen Spalten ist ein Datum, was aber nicht als solches erkannt wird.

    Es steht zum beispiel 02.03.2013 dort. Die Zelle wird als Text erkannt.

    Kann ein Macro die Formatierung ändern auf "Datum kurz"?

    Bisher muss ich immer eine Spalte anwählen, format auf Datum kurz um dann im Bereich Daten auf "text in Spalten" . Das ist sehr müseelig.
     
    Spitzbart, 27. Mai 2015
    #1
  2. fette Elfe Erfahrener User
    Hallo Spitzbart,

    du könntest es ja mal so in der Art probieren:
    Code:
    Option Explicit
    
    Public Sub test()
    
    Dim strZellwert As String
    Dim objZelle As Object
    Dim objBereich As Object
    
        With Me         ' Verweis auf das Arbeitsblatt wenn im Modul des Arbeitsblattes
                        ' eventuell auf "ActiveWorksheet" oder konkreten Blattnamen ändern
            Set objBereich = Intersect(.UsedRange, .Range("A:A"))
            For Each objZelle In objBereich
                strZellwert = objZelle
                objZelle.NumberFormat = "m/d/yyyy"
                If IsDate(strZellwert) Then objZelle = CDate(strZellwert)
            Next objZelle
        End With
        
    End Sub
    Was meinst Du eigentlich mit "Datum kurz" ?
     
    Zuletzt bearbeitet: 28. Mai 2015
    fette Elfe, 27. Mai 2015
    #2
  3. Unter Start kann das Zellformat festgelegt werden.

    Oh man, sieht kompliziert aus, kannst du das mal beispielhaft fü die Zellen A1-A10 machen?
     
    Spitzbart, 28. Mai 2015
    #3
  4. fette Elfe Erfahrener User

    Formatierung mit Macros

    Hallo Spitzbart,

    entweder verstehe ich Dich nicht, oder Du mich nicht.
    Ich kenne verschieden Datumsformate, aber den Begriff "Datum kurz" kenne ich nicht. Deshalb wäre es hilfreich, wenn Du mir mal ein datum in diesem Format aufschreibst, damit ich sehe was ich mir darunter vorstellen soll.



    Keine Sorge, da täuscht gewaltig. ;O)
    in Deinem Eingangspost hast Du geschrieben: "In einigen Spalten ist ein Datum, was aber nicht als solches erkannt wird."
    Also habe ich mir eine Lösung überlegt, die man spaltenweise arbeiten lassen kann.
    Code:
    Option Explicit
    
    Public Sub test()
    
    Dim strZellwert As String
    Dim objZelle As Object
    Dim objBereich As Object
    Bis hierher ist eigentlich alles nur "Einleitung", quasi ein "Vorwort".
    "Option Explicit" sorgt dafür, dass Variablen definiert werden müssen, bevor der Code das erste Mal läuft. Ansonsten bekommt man sofort einen Laufzeitfehler. Das hilft ungemein Programmierfehler zu vermeiden, und sollte in den Optionen immer eingeschaltet sein.

    "Public Sub test()" ist einfach nur der Name der Prozedur (des Makros).

    "Dim strZellwert As String Dim objZelle As Object Dim objBereich As Object" Hier werden drei Variablen initiert und einem Datentyp zugeordnet. Dabei bedeutet "String", dass die Variable Daten im Textformat aufnimmt, und "Object" dass die Variable ein Object repräsentiert.

    "With Me" Verweist auf das Arblatt, in dessen Modul der Code steht. Je nachdem wo Dein Code später steht, oder wie Dein Makro am Ende aufgebaut ist, muss man diesen Verweis halt noch anpassen. In Deinem Code must Du Excel halt auch immer genau sagen worauf Du Dich beziehst, quasi Stadt, Strasse, Hausnummer und Etage angeben.

    "Set objBereich = Intersect(.UsedRange, .Range("A:A"))" Hier wird der Variablen objBereich ein Zellbereich zugewiesen. (Durch die Referenzierung eine Zeile höher ist auch klar, in welchem Blatt.) "UsedRange" beschreibt den kompletten Bereich aller benutzten Zellen, "Range("A:A")" beschreibt die komplette Spalte A, und "Intersect" bildet die Schnittmenge aus beiden Bereichen, allso alle benutzten Zellen in Spalte A. genau hier müsste also an Deine tabelle angepasst werden, aber da ich nicht weiß in welchen Spalten Deine falsch formatierten Daten stehen, kann ich da momentan nichts machen. Vor allem weiß ich auch nicht, ob die Spalten immer gleich sind, oder ob die sich ändern.

    "For Each objZelle In objBereich - Next objZelle" Dies ist die Kopf- und Fusszeile einer Schleife. Sie arbeitet nach dem Prinziep: "Für jede Zelle im definierten Bereich... - nächste Zelle"

    "strZellwert = objZelle" hier wird der Wert der aktuellen Zelle an eine Variable übergeben.

    "objZelle.NumberFormat = "m/d/yyyy"" hier wird die aktuelle Zelle im normalen Datumsformat formatiert, also = 28.05.2015. Im Makro wird zwar die englische Schreibweise benutzt, aber durch die lokalen Einstellungen auf Deinem Rechner wird das deutsche/europäische Datumsformat angezeigt.

    "If IsDate(strZellwert) Then" hier wird geprüft, ob der Zellwert überhaupt ein Datum ist, damit die nächste Zeile keinen Fehler verursacht. (die Zelle könnte leer sein, oder es steht "Hallo" drinn...). Die Prüfung ist eine einfache "Wenn - Dann" Prüfung.

    "objZelle = CDate(strZellwert)" hier wird der gespeicherte Wert der Textvariablen wieder in die aktuelle Zelle zurückgeschrieben. Diesmal aber durch das "CDate" definitiv im Datums- und nicht im Textformat.

    Noch Fragen?
    Spiel doch einfach mal ein bischen damit rum.
    Und wenn Du eine Beispieldatei mit Dummydaten hier im Forum hochlädst, kann ich das Makro auch auf die entsprechenden Spalten einstellen.
     
    fette Elfe, 28. Mai 2015
    #4
  5. Ok ich werde das mal ausprobieren. Als Datumsformat soll dd/mm/yyyy verwendet werden. Wenn ich es nicht hin bekomme erstell ich morgen ne Dummidatei.

    Bis dahin erstmal vielen Dank für deine Unterstützung. Ich melde mich. Egal ob es geklappt hat oder nicht.
     
    Spitzbart, 28. Mai 2015
    #5
  6. So ich hab mal getestet. Habe Active.worksheet genommen.

    Bei .usedRange kommt dann die Meldung "Unzulässiger oder nicht ausreichend definierter Bereich" Range hab ich auf A:K gesetzt
     
    Spitzbart, 3. Juni 2015
    #6
  7. fette Elfe Erfahrener User
    Hallo Spitzbart,

    sry, mein Fehler. Es muss "ActiveSheet" heißen. (vielleicht lerne ich das irgendwann mal, den Fehler mache ich dauernd)
    Habs damit mal kurz getestet, klappt bei mir mit mehreren Spalten.
    Wenns bei Dir nicht klappt, bitte mal Deinen Code posten, am besten allerdings direkt eine Beispieldatei hochladen.
     
    fette Elfe, 3. Juni 2015
    #7
  8. Formatierung mit Macros

    Ich probier es morgen. Zur not erstell ich ne Dummydatei mit einem Tatensatz.
     
    Spitzbart, 3. Juni 2015
    #8
Thema:

Formatierung mit Macros

Die Seite wird geladen...
  1. Formatierung mit Macros - Similar Threads - Formatierung Macros

  2. Formularsteuerelement Textfeld: Selbe Formatierung wie verlinkte Zelle?

    in Microsoft Excel Hilfe
    Formularsteuerelement Textfeld: Selbe Formatierung wie verlinkte Zelle?: Hallo, ich bin ja gerade dabei ein Bestellformular mit Excel zu realisieren. Das ganze sieht soweit auch schon sehr gut aus und funktioniert weitgehendst. Die Textfelder sind nun alle verlinkt...
  3. Probleme mit bedingter Formatierung

    in Microsoft Excel Hilfe
    Probleme mit bedingter Formatierung: Hallo ihr Lieben, folgende Herausforderung: Ich möchte die Formatierung des Wertes in B7 (bzw. auch alle weiteren Werte in Spalte B) nach folgenden Bedingungen anpassen: 1. WENN C7<0,05 DANN...
  4. Probleme mit Formatierung in geschütztem Word-Dokument – Schriftstil nicht änderbar

    in Microsoft Word Hilfe
    Probleme mit Formatierung in geschütztem Word-Dokument – Schriftstil nicht änderbar: Hallo zusammen, ich habe ein Word-Dokument erstellt, das als Vorlage dient und entsprechend geschützt ist. Dabei sollen folgende Anforderungen erfüllt werden: Schriftart: Die Schriftart darf...
  5. Formatierungsprobleme mit mehreren Seiten im Format Gegenüberliegende Seiten

    in Microsoft Word Hilfe
    Formatierungsprobleme mit mehreren Seiten im Format Gegenüberliegende Seiten: Hallo liebe Expertinnen und Experten, beim Formatieren meiner Abschlussarbeit stoße ich aktuell auf einige Probleme. Ich habe mir eine eigene Dokumentenvorlage erstellt, die auf der nicht...
  6. Bedingte Formatierung basierend auf Wert anderer Zelle

    in Microsoft Excel Hilfe
    Bedingte Formatierung basierend auf Wert anderer Zelle: Hallo zusammen, beim Erreichen des 18. Lebensjahres (Geburtsdatum Spalte D, Alter automatisch in Spalte E kalkuliert) soll eine bedingte Formatierung den Namen und Vornamen der Teilnehmer (Spalte...
  7. Anfängerfrage zur bedingten Formatierung

    in Microsoft Excel Hilfe
    Anfängerfrage zur bedingten Formatierung: Mal eine echte Anfängerfrage: Wenn ich in Excel (Mac) als bedingte Formatierung eine Formel verwenden möchte, muss ich immer folgende Schritte durchführen: -Bedingte Formatierung -Neue Regel -...
  8. Exel Arbeitsblatt Formatierung nach Betriebssystemwechsel ändern

    in Microsoft Excel Hilfe
    Exel Arbeitsblatt Formatierung nach Betriebssystemwechsel ändern: Guten Tag zusammen, ich bin der Gahlen und würde mich sehr freuen wenn man mir hier bei einem Problem weiterhelfen könnte. Jüngst habe ich mich dazu entschieden das Betriebssystem von Windows auf...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden