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. "Bedingte Formatierung" durch kopieren und verschieben "zerpflückt"?

    in Microsoft Excel Hilfe
    "Bedingte Formatierung" durch kopieren und verschieben "zerpflückt"?: Hallo Ich habe eine Arbeitsmappe, wo ich mehrere Tabellen für Bareinzahler habe. Da gibt es eine Tabelle für Barzahler, eine für EC-Zahlungen und eine für einen Kollegen, der in meiner Abwesenheit...
  3. Tabellenverzeichnis erstellen - individuelle Formatierung

    in Microsoft Word Hilfe
    Tabellenverzeichnis erstellen - individuelle Formatierung: Hallo zusammen, ich suche nach einer Möglichkeit, mein Tabellenverzeichnis individuell und damit unabhängig von der Formatierung des Abbildungsverzeichnisses zu formatieren. Ich habe das...
  4. Hilfe meine Fusszeile nimmt viel platz ein!

    in Microsoft Word Hilfe
    Hilfe meine Fusszeile nimmt viel platz ein!: Hallo liebe Community, Ich schreibe gerade eine Facharbeit und benötige dringend hilfe! Morgen muss ich diese Datei ausgedruckt abgeben, jedoch ist mir ein Fehler passiert und nun sind die...
  5. Bedingte Formatierung funktioniert nicht

    in Microsoft Excel Hilfe
    Bedingte Formatierung funktioniert nicht: Hallo, ich habe eine Excel Datei erstellt und es funktioniert alles, bis auf eine bedingte Formatierung. Ich verstehe einfach nicht wieso. Habe in der Liste schon andere Formatierungen, die sehr...
  6. Externe Mails mit bedingter Formatierung farbig hervorheben

    in Microsoft Outlook Hilfe
    Externe Mails mit bedingter Formatierung farbig hervorheben: Hallo zusammen! Ich möchte externe Mails (also Mails von Versendern, die nicht von der Domain @geanvas.com kommen) in meinem Posteingang farbig hervorheben. Dazu habe ich in der bedingten...
  7. (Excel) Dynamische Tabelle, VBA, fehlende Formatierung?

    in Microsoft Excel Hilfe
    (Excel) Dynamische Tabelle, VBA, fehlende Formatierung?: Liebe Experten, Gefilterte Daten sollen in ein Listobject übertragen werden. Für das Listobject habe ich ein Template angelegt, dass alle Formatierungen (u.a. bedingte Formatierung etc.) enthält....
  8. Bedingte Formatierung, Leere Zelle ab best. Zeit einfärben und bei Eintrag Farbe weg.

    in Microsoft Excel Hilfe
    Bedingte Formatierung, Leere Zelle ab best. Zeit einfärben und bei Eintrag Farbe weg.: Guten Tag, ich habe, eigentlich, ein simples Problem und bekomme einfach nicht die Funktion korrekt geschrieben. Ich würde gerne eine Bedingte Formatierung durchführen für eine Zelle, die Bezug...
  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