CSV Import mit Gleichzeichen #NAME? verhindern
#1
Ich importiere eine CSV Datei und wenn ein Text mit "=" anfängt, versucht Excel daraus eine Formel zu machen, 
das Ergebnis ist ein #NAME? in der Zelle.

Der Import der CSV Datei erfolgt über ein Makro und führt im weiteren Verlauf zum Fehler (die Tabelle wird in eine Datenbank geschrieben,
der SQL Befehl schlägt fehl, weil ich die Zelle offenbar nicht als Text auslesen kann).


Hat jemand eine Idee wie man diesen Fehler schnell und unkompliziert behandeln kann?
Antworten Top
#2
Moin

Entferne die = oder ersetzte sie durch ein anderes Zeichen.
Wir sehen uns!
... Detlef

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

Antworten Top
#3
Hallo ExcelEnte,

warum arbeitest Du nicht mit Haltepunkten im Excelmakro?
- da kann man an beliebigen Stellen die Makro-Abarbeitung stoppen
- sich das Resultat bis zu diesem Zeitpunkt anschauen, Zustand von Variablen kontrollieren usw.
- und mit der F8-Taste zum nächsten Makrobefehl weitersteppen
- vielleicht ist das '='-Zeichen gar nicht  in der csv-Datei, sondern wird vom Makro reingeschrieben!?!
- wenn doch, dann kann man dieses Zeichen auch gegen nix austauschen
- sollte es nicht Dein Makro sein und 1 Vba-Kennwort-Schutz das Makro vor Bearbeitung schützen
- dann kann i.d.R. nur der Vba-Entwickler weiterhelfen.

Gruß von Luschi
aus klein-Paris
Antworten Top
#4
Hallo,

lade eine Beispiel CSV, welche das passende UTF-Format + anonymisiert den Inhalt aller möglichen Probleme enthält und eine Demo .xlsx hoch.

Sonst wird es zum Ratespiel.

Gruß Uwe
Antworten Top
#5
Ich würde mir überlegen, den Import über Power Query laufen zu lassen.
[-] Folgende(r) 2 Nutzer sagen Danke an ws-53 für diesen Beitrag:
  • derHoepp, Jockel
Antworten Top
#6
Das Ergebnis der Zelle ist

? Workbooks(Datenseite).Sheets(1).Cells(k, 26)
Fehler 2029

? Instr(Workbooks(Datenseite).Sheets(1).Cells(k, 26),"=")
> Laufzeitfehler 13 Typen unvergänglich
Antworten Top
#7
Moin!
Eine Zelle hat diverse Eigenschaften.
Wenn man keine angibt, wird der default .Value genommen …
Der Wert von #Name! ist in VBA nunmal Fehler 2029

Nimm die .Formula-Eigenschaft, dann funktionieren beide Direktfenster-Befehle!
Das = bekommst Du mittels Replace-Methode weg:
ActiveCell.Replace "=", ""

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • ExcelEnte
Antworten Top
#8
Hi
wie importierst du denn?
wenn du die Datei mit Workbooks.Open öffnest, dann solltest du auf Workbooks.OpenText um stellen.
das kombiniert das Öffnen der Datei mit TEXT IN SPALTEN, dh du kannst dann hier die Parameter wie Trennzeichen und Spaltenformat selber vorgeben (beim Workbook.Open bist du darauf angewiesen, was Excel automatisch anwendet).

du müsstest also für diese Spalte das Format TEXT vorschreiben.
wie das im Code aussieht, zeigt dir der Makrorecorder, wenn du das beim TEXT IN SPALTEN anwendest.

oder du legst dir manuell einen festen CSV-Import an,hier hast du auch Möglichkeiten von TEXT IN SPALTEN und kannst die betroffenen Spalten im Textformat importieren und aktualisierst dann diesen nur.

Gruß Daniel
[-] Folgende(r) 1 Nutzer sagt Danke an slowboarder für diesen Beitrag:
  • ExcelEnte
Antworten Top
#9
Hatte die Tabelle geschlossen, alle Fehlermeldungen / Rückmeldungen STORNO Wink
Sorry

Mit Formula oder Replace komme ich nicht weiter, leider.

Code:
?  Workbooks(Datenseite).Sheets(1).Cells(k, 26).Formula
#NAME?

? Workbooks(Datenseite).Sheets(1).Cells(k, 26).value
Fehler 2029

Workbooks(Datenseite).Sheets(1).Cells(k, 26).replace "=",""

? Workbooks(Datenseite).Sheets(1).Cells(k, 26).value
Fehler 2029

Die Tabelle wird tatsächlich mit OpenText geöffnet, also daran liegt es nicht.
UPDATE: Ich hatte die Tabelle zwischenzeitlich gespeichert, da hat sich dann er Inhalt verändert.
Aus der "kaputten Formel" wurde ein Klartext "#NAME?".
Also die Testbedingungen waren nicht korrekt. Ich melde mich wieder, wenn ich eine brauchbare Testdatei habe....

So, hier nun das Ergebnis:

Code:
            ' Sonderfall: der Kurztext beginnt mit einem Gleich-Zeichen, dann will Excel eine Formel daraus machen und streikt
            If Workbooks(Datenseite).Sheets(1).Cells(k, 26).HasFormula Then
              Workbooks(Datenseite).Sheets(1).Cells(k, 26).Value = "'" & Workbooks(Datenseite).Sheets(1).Cells(k, 26).Formula
            End If

Ist darin eine vermeintliche Formel, wird ein einfaches Apostroph am Anfang hinzugefügt, so dass es ein Text wird. 
Funktioniert! Danke für eure Unterstützung!
Antworten Top
#10
Ein Feld in einem DataBase das mit "=" anfängt ?
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


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