Makro bzw. Formel für Korrektur von Fehlern nach Datenimport (F2+Enter)
#1
Nach einem Datenimport, der mir extern zur Verfügung gestellt wird, werden mir in den Spalten "N" und "O" Zahlen, Formate und Umlaute aus der importierten Datei als Text angezeigt, z.B.: aus +Schlüssel (original) wird {\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Arial;}}\viewkind4\uc1\pard\lang1031\fs20 +Schlussel\par}
 
Diese Fehler lassen sich durch F2 und Enter leicht beheben. Aber bei 20.000 Werten dauert das ewig.
 
Deshalb habe ich es mit folgendem Makro versucht:
 
Public Sub Test_f2()
'Alle Werte in Zahlenwerte umwandeln
Dim zelle2 as Object
Sheets(1).Range("N2:O20000").select
For Each zelle2 In Selection
   SendKeys "{F2}", True
   SendKeys "{ENTER}", True
Next zelle2
End Sub
 
Das dauert aber auch sehr lange und läuft nicht bis zum Ende fehlerfrei durch.
 
Deshalb meine Frage: Gibt es ein anderes Makro, eine Formel oder sonst etwas, was diese Fehlerkorrektur nach Datenimport beschleunigt? Es muss nicht unbedingt VBA sein.
 
Für Tipps bedanke ich mich im Voraus.
Top
#2
Moin

Da kommen mir gleich tausende Fragen in den Sinn.

Welcher Dateityp wird importiert?
Wie wird importiert?
Du bist also der Ansicht das Excel aus +Schlüssel (was im übrigen Text und nicht Zahl ist) {\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Arial;}}\viewkind4\uc1\pard\lang1031\fs20 +Schlussel\par} macht? Das kann ich nicht glauben.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#3

Hallo,


Danke für die Antwort. Wie ich schon schrieb, bekomme ich den Datenimport extern und habe keinen Einfluss darauf, wie er entsteht.

Vielleicht kann ich dem Datenlieferanten Tipps über Power Query geben (ich weiß aber nicht, ober darauf eingeht). Was wäre bei PQ diesbezüglich zu beachten?

Viele Grüße

Hallo,

der Import stammt aus einer Datenbank des Datenlieferanten, an welche ich nicht rankomme. Ich kann  nur bestätigen, dass ich es so bekomme, wie oben beschrieben. Nach F2 wird daraus +Schlüssel

Viele Grüße
Top
#4
Wenn man nichts über den Import weiß kann man auch keine Tipps geben außer: "Mache es richtig.".
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#5
Hallo,

teste mal

Code:
Public Sub Test_f3()
  'Alle Werte in Zahlenwerte umwandeln
  Sheets(1).Range("N2:N20000").TextToColumns
  Sheets(1).Range("O2:O20000").TextToColumns
  'und/oder
  Sheets(1).Range("N2:N20000").Formula = Sheets(1).Range("N2:N20000").Value
  Sheets(1).Range("O2:O20000").Formula = Sheets(1).Range("O2:O20000").Value
End Sub

Gruß Uwe
Top
#6
Hallo shift-del,

ja so ist das. Manchmal bekommt man etwas nach dem Motto "Friss oder stirb" und muss das beste draus machen. 

Die manuelle  Fehlerbehebung durch F2 + Enter funktioniert ja, ich möchte nur, dass es schneller geht.

Viele Grüße

Hallo Kuwer,

danke für das Makro. Leider bekomme ich aber beim Ausführen des Makros die Fehlermeldung 400.

Viel Grüße
Top
#7
Mulitplizieren mit 1

Zitat:Public Sub Test_f2()
'Alle Werte in Zahlenwerte umwandeln

    Range("A1").Value2 = 1
    Range("A1").Copy
    Range("N2:O20000").PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
        SkipBlanks:=False, Transpose:=False

End Sub
Das geht auch über die Oberfläche, A1 mit 1 befüllen, in die Zwischenablage kopieren, N2:020000 markieren und dann Inhalte einfügen/Mulitplizieren
Top
#8
Danke DeltaX,

Danke für das Makro. Das funktioniert wohl nur richtig, wenn es sich bei den importierten Dateien um reine Zahlenformate handelt. In meinem Fall sind es aber Zahlen und Texte.

Viele Grüße
Top
#9
Das ist egal und BTW ich werde ungehalten, wenn man etwas behauptet, ohne es überhaupt versucht zu haben.
Top
#10
Hallo DeltaX, ich habe es ausprobiert, bevor ich geantwortet hatte. Es kommt überall 0 heraus.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste