Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
544to548
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
544to548
544to548
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA-Problem

VBA-Problem
11.01.2005 08:32:00
Christian
Hallo liebe Leute,
habe mit Herbert (Danke soweit) mein Problem schon teilweise durchgekaut, aber da ich dem VBA nicht mächtig bin, brauche ich hier fachdienliche Hilfe.
Folgendes Problem:
Ich habe ein Excel-Template, in das von extern Daten geschrieben werden. (Protokollierung)
Jetzt hat das externe Programm aber ein Problem. Es schreibt das Datum im Format DD/MM/YYYY in die Zelle, zumindestens vom 1.-12. jeden Monats. Danach dreht das Programm, und schreibt das Datum im Format MM/DD/YYYY. Das ergibt natürlich ein hässliches Problem. Nun zu meiner Frage: Gibt es die Möglichkeit, mit VBA zu überprüfen, ob der Monat größer als 12 wird, und dann quasi einen Tausch vornehmen? Beziehungsweise in einer anderen Zelle mit DATE das richtige Datum eintragen?
Für eure Mühe vielen Dank!
LG
Christian

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Problem
Wolfgang
Hi Christian,
möglich ist das sicherlich. Allerdings ergeben sich dann weitere Probleme:
1. Wann müßte die Routine zur Datumskorrektur ablaufen? Beim Öffnen des Template, alle 5 Minuten, manuell durch Starten der Routine...?
2. Bist Du sicher, daß nicht auch Datumsangaben vor dem 12 eines Monats mit MM/DD/YYYY formatiert sind?
Ich nehme mal an, daß Du das alles bereits gecheckt hast. Anbei ein kleines Listing, das vielleicht helfen könnte. 's gibt sicherlich elegantere Varianten. Aber womöglich tut's das ja schon.
Zeile und Spalte in dem Listing entsprechend Deinen Bedürfnissen anpassen und ausprobieren.
Viel Glück, Wolfgang
Sub Dateconvert() zeile = 1 spalte = 1 Do Cells(zeile, spalte).Select If Selection.NumberFormat = "mm/dd/yyyy" Then Selection.NumberFormat = "dd/mm/yyyy" zeile = zeile + 1 Loop Until Cells(zeile, spalte) = "" End Sub
Anzeige
Kein VBA, aber Formel
Harald
Hallo Christian,
da das externe Programmgenau bei 12 wechselt, und es zum Glück nur 12 Monate gibt, geht es mit einer einfachen Abfrage. Im Beispiel steht das extern geschriebene Datum in A2:
=WENN(LINKS(A2;2)&lt13; DATUM(RECHTS(A2;4);TEIL(A2;4;2);LINKS(A2;2)); DATUM(RECHTS(A2;4);LINKS(A2;2);TEIL(A2;4;2)))
Gruß Harald
Korrektur
Harald
Sorry,
=WENN(WERT(LINKS(A2;2))&lt13; DATUM(RECHTS(A2;4);TEIL(A2;4;2);LINKS(A2;2)); DATUM(RECHTS(A2;4);LINKS(A2;2);TEIL(A2;4;2)))
Gruß Harald
AW: Korrektur
11.01.2005 09:44:44
Christian
Hallo Harald,
danke für deinen Tip, aber irgendwie funzt das nicht. Da kommen ganz wilde Daten raus, die mit dem ursprünglichen nichts mehr zu tun haben. Beispielsweise wird aus dem 13.01.2005 der 05.04.68. Mir ist auch nicht ganz klar warum.....
Anzeige
AW: Korrektur
11.01.2005 10:19:52
HermannZ
Hallo Christian,
wenn du beide Formate in einer Spalte hast geht auch folgendes;
Beispiel;
Tabelle14
 AB
62  
6312.12.200412.12.2004
6413.12.200413.12.2004
6512.14.200414.12.2004
6612.15.200415.12.2004
6712.16.200416.12.2004
6812.17.200417.12.2004
6912.18.200418.12.2004
7012.19.200419.12.2004
71  
Formeln der Tabelle
B63 : =WENN(MONAT(A63)<13;TEXT(A63;"TT.MM.JJJJ");TEXT(DATUM(JAHR(A63);MONAT(A63);TAG(A63));"MM.TT.JJJJ"))
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Gruß HermannZ
Anzeige
AW: VBA-Problem
11.01.2005 11:24:19
Peter
Hallo Christian,
wenn deine Datumswerte formatiert kommen, dann nutze das doch mit der Formel
=TAG(A1)&"."&MONAT(A1)&"."&JAHR(A1)
wobei A1 deiner Spalte anzupassen ist.
als VBA-Lösung:


Sub Dateconvert()
Dim lZeile   As Long
Dim iSpalte  As Integer
   lZeile = 1
   iSpalte = 1
   
   Do
      Cells(lZeile, iSpalte).Value = Day(Cells(lZeile, iSpalte).Value) & "." & _
                                   Month(Cells(lZeile, iSpalte).Value) & "." & _
                                    Year(Cells(lZeile, iSpalte).Value)
      lZeile = lZeile + 1
   Loop Until Cells(lZeile, iSpalte) = ""
   
End Sub


Gruß Peter
Anzeige
AW: VBA-Problem
Christian
Problem gelöst, ohne VBA sondern mit Formel von Peter!
Danke für die Hilfestellung, ihr seid klasse, und ich wieder ein Stück weiter. ;-)
Gruß
Christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige