Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
420to424
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
420to424
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wer kann helfen?

Wer kann helfen?
Klaus
Hallo Excel-Spezialisten,
ich habe folgendes Problem.
Ich übernehme mit folgendem Macro aus der Zwischenablage aufbereitete Daten aus einer externen Quelle in Excel.

Private Sub C1()
Sheets("Data").Select
Range("A1:AU156").Select
Selection.ClearContents
Sheets("Data").Select
ActiveSheet.Paste
Range("A1").Select
End Sub

Ich habe den Ablauf für den Datenimport mit dem Macrorecorder aufgezeichnet.
Bei der Datenübernahme aus der Zwischenablage von Hand (Strg/V) werden die Zahlen ordentlich als Zahlen erkannt. Sobald der Import dann über Macro oder VBA erfolgt ändert Excel die Daten.
Kann mir jemand anhand der Beispieldatei eine Lösung aufzeigen?
https://www.herber.de/bbs/user/5588.xls
Gruß Klaus

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Wer kann helfen?
Heinz
Hallo Klaus,
sind das die Daten die du übernimmst oder sind das die importierten Daten?
Gruß Heinz
AW: Wer kann helfen?
28.04.2004 11:47:31
Klaus
Hallo Heinz,
die Daten in der Beispieldatei, sehen im Format nach dem Datenimport per VBA/Macro so aus!
Gruß Klaus
AW: Wer kann helfen?
Oberschlumpf
Hi Klaus
Wenn es sich bei den Bsp-Daten um die importierten, also fehlerhaft übertraqgenen handelt, dann musst Du auf Deinem PC das Dezimalzeichen ändern, vermute ich.
Bei Dir wird der Punkt (.) und nicht das Komma (,) als Dezimalzeichen eingetragen sein.
Aus diesem Grund werden die als Text gelieferten Zahlenwerte (mit Komma) eben nicht als solche erkannt.
Dies ist eine Vermutung von mir, daher lass ich den Thread geöffnet.
Hatte ich denn Recht? :-)
Ciao
Thorsten
Anzeige
AW: Wer kann helfen?
Klaus
Hallo Thorsten,
die entsprechenden Einstellungen an meinem PC sind korrekt definiert.
Solange ich die Daten nicht per VBA oder Macro, sondern über STRG/V in das Excel-Sheet übernehme funktioniert alles.
Gruß Klaus
AW: Wer kann helfen?
Oberschlumpf
Schade :)
Dann setz doch auch mal DIE Dateien ins Forum, die importiert werden sollen.
Manchmal besser is, zur Problemlösung auch die Ursache zu kennen/zu sehen ;-)
Ciao
Thorsten
AW: Wer kann helfen?
Klaus
Hallo Thorsten,
ich habe hier mal die Orginaldaten zum Test!
https://www.herber.de/bbs/user/5794.txt
Kopieren und einfach mal per Macro in ein Excel-Sheet einfügen!
Gruß Klaus
Anzeige
AW: Wer kann helfen?
Oberschlumpf
Hi Klaus
Habe soeben Deine txt-Datei gespeichert und dann in Excel importiert.
(Datei/Öffnen/Dateityp Textdateien (*.prn,*.txt,*csv) ) und eben die txt-Datei geöffnet.
Es erschien der Import-Dialog, den ich durchlief, und dann erschienen auf meinem PC die Daten.....in der richtigen Schreibweise.
An den Stellen DA ein Komma, wo es auch in der txt-Datei steht und da Datum-Einträge, wie in der txt-datei.
Bei mir ist als Dezimalzeichen das Komma eingestellt.
Habe dann als Dezimalzeichen den Punkt eingetragen.
Und als ich dann den Import wiederholte, traten genau die Fehler auf, mit denen Du diesen Thread eröffnet hast.
Hast Du auch an der richtigen Stelle geschaut, ob das Komma als Dezimalzeichen eingetragen ist?
Unter Win XP musst Du so vorgehen:
Start/Einstellungen/Systemsteuerung
- darin dann auf "Regions- und Sprachoptionen" doppelt klicken
- dann in der ersten Registerkarte auf "Anpassen" klicken
- und gleich die erste Zeile "Dezimaltennzeichen", da musst Du dann das Komma eintragen
Auf OK klicken, und Excel erneut starten.
hmm...wenn es das aber auch nicht war, dann weiß ich im Moment leider nicht, woran es noch liegen könnte.
Ciao
Thorsten
Anzeige
AW: Wer kann helfen?
Klaus
Hallo Thorsten,
sorry, aber ich habe für die orginal Daten die Textdatei nur als Trägermedium verwendet.
Ich bekomme die Daten über die Zwischenablage bereitgestellt, und möchte diese Daten per VBA oder Macro in ein Excel-Sheet einfügen und dort weiterverabeiten.
Ich möchte nun bei diesem automatisierten Datenimport die Daten im "Deutschen Datenformat" weiterbearbeiten.
Ich möchte auch nicht alle PC's aus der "Deutschen Grundeinstellung" für Dezimalzahlen manipulieren an denen diese Daten verarbeitet werden.
Mein Problem ist, daß Mr. Gates die automatische Datenübernahme per VBA nicht zulässt, da VBA offensichtlich alle Zahlen im "Amerikanischen Zahlenformat" händelt.
Übernehme ich die Daten von Hand mit STRG/V von Hand in meine Excel-Datei habe ich mit Mr. Gates kein Problem.
Es gibt auch Werkzeuge in Excel, die diese Datenkorrektur vornehmen (Fehlerüberprüfung im Menü / Extras) jedoch läßt sich die Umwandlung der "Als Text formatierten Zahlen" mit dem Makrorekorder nicht aufzeichnen.
Gibt es eine Möglichkeit diese Umwandlung per VBA durchzuführen?
Gruß Klaus
Anzeige
AW: Wer kann helfen?
Oberschlumpf
Hallo Klaus
Sorry, hatte es gestern nicht mehr geschafft.
Und nun, nach Deinem letzten Eintrag habe auch ich Dich, glaube ich, verstanden.
(hat ein wenig bei mir gedauert :-) )
Und wenn ich Dich verstanden habe, dann möchtest Du...
...Werte in Zwischenablage kopieren (bzw die Werte befinden sich in der selben)
...eine Exceltabelle öffnen
...und mit Hilfe eines Makros die Werte aus der Zwischenablage RICHTIG einlesen, und dann vielleicht noch im selben Makro weiter bearbeiten
oder?
Wenn dem so ist, dann versuch es mal so:
Voraussetzung:
der Inhalt der Zwischenablage entspricht immer dem, was Du als Bsp gepostet hattest
in der ersten Zeile steht immer das Datum
es kommen keine Textwerte mit Komma vor (Bsp "Hamburg, 28.04.04", oder so)
Füge diesen Code so in das Makro ein, dass dieser Code zuerst ausgeführt wird.


Sub PasteAndConvert()
    
    Dim lrZelle As Range
    Application.ScreenUpdating = False
    
    'Zelle A1 wird ausgewählt, damit Inhalt aus Zwischenanblage in A1 beginnt
    Range("A1").Select
    
    'Zwischenablage wird in Tabelle eingelesen
    ActiveSheet.Paste
        'die noch Textwerte in der ersten Zeile mit Datumseinträgen werden in DATUMSwerte konvertiert
        For Each lrZelle In Range("A1:AE1")
            lrZelle.Value = CDate(lrZelle.Value)
        Next
        
    'Zellformat wird in "TT.MM.JJ" umgewandelt und rechtsbündig platziert
    Range("a1:ae1").NumberFormat = "dd/mm/yy;@"
    Range("a1:ae1").HorizontalAlignment = xlRight
        'alle anderen Zellinhalte werden geprüft
        'wenn im Wert ein Komma vorkommt, handelt es sich um einen Textwert mit Dezimalzahlen als Inhalt
        'mit x Stellen nach dem Komma und werden in DEZIMALwerte konvertiert
        For Each lrZelle In Range("A2:AE22")
            If InStr(1, lrZelle.Value, ",") <> 0 Then
                lrZelle.Value = CDbl(lrZelle.Value)
            End If
        Next
    Range("A1").Select
    Application.ScreenUpdating = True
    
End Sub


(die erste und letzte Zeile löschen, wenn dieses Makro Bestandteil eines anderen Makros werden soll)
Konnte ich Dir helfen?
Ciao
Thorsten
Anzeige
AW: Wer kann helfen?
Klaus
Hallo Thorsten,
recht herzlichen Dank. :-))
Das war genau die Lösung für mein Problem, funktioniert hervorragend!!
Gruß Klaus
isch liebe dat,wenn (m)ein Plan funktioniert:-)o.T
30.04.2004 14:45:30
Oberschlumpf
AW: Wer kann helfen?
Heinz
Hallo Klaus,
lass mal nach dem Import folgenden Code laufen oder baue ihn in deinen Impoercode ein:

Sub Importkorrektur()
' Import Makro
' Makro am 28.04.2004 von  Heinz aufgezeichnet
Range("A65536").Select
ActiveCell.FormulaR1C1 = "1"
Range("A65536").Select
Selection.Copy
Range("A1:AE23").Select 'hier ev. Bereich abändern
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Range("A65536").ClearContents
End Sub

Anzeige
AW: Wer kann helfen?
28.04.2004 12:33:40
Klaus
Hallo Heinz,
sorry, aber dein Macro bringt nicht das gewünschte Ergebnis.
Ich habe hier mal die Orginaldaten zum Test!
https://www.herber.de/bbs/user/5794.txt
Kopieren und einfach mal per Macro in ein Excel-Sheet einfügen!
Gruß Klaus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige