CSV bzw. txt-Datei in Excel expotieren

Hatte ich vergessen. Im Anhang ist die Auswertevorlage.
Unter Daten 01 habe ich Daten geladen und die rot markiert, die für mich relevant sind.

Dein Makro muss ich mir erst mal in Ruhe anschauen.
Unter Makro dachte ich immer, das ist etwas zu essen.:lol:


Anhang anzeigen 179134

Nachtrag:

Habe jetzt mit deiner Tabelle ein paar Test´s gemacht und habe die Funktion verstanden.
Schau Dir mal meine Tabelle an. Spalte B sind Diagramm 1, Spalte B Diagramm 2 usw.

Die Messwerte in schwarz möchte ich in dem Diagramm nicht dargestellt haben.

Was ist der Makrorekorder bzw. die Funktion-weise? Habe ich noch nie gehört.


Sorry, heute klappt es nicht auf Anhieb meine Probleme auf den Punkt zu bringen.
 
Zuletzt bearbeitet:
Was ist denn das Kriterium für die Daten, die ins Diagramm sollen? Ich erkenne da eigentlich keinen Zusammenhang (oder gibt's in dem Beispiel auch keinen?)


Mit dem Makrorekorder (ich nenn den jetzt mal MR) kannst du Makros aufzeichen ohne den Code selbst schreiben zu müssen. D.h. du klickst auf Aufzeichen, führst mit der Maus/Tastatur deine Aktionen aus (bspw. Spalte B, Zeile 40-175 markieren, Diagramm einfügen etc.) und beendest die Aufzeichnung. Das Makro kannst du dann mit einem Mausklick ausführen und erhälst immer ein Diagramm aus den Daten.

Den MR startest und stoppst du über das Symbol unten links: makrorekorder.JPG


Der MR kann aber nur das nachmachen, was du aufgezeichnet hast. Wenn du also in deiner Spalte B Zeile 40-175 für ein Diagramm markierst, dann wird der Makrorekorder das in Zukunft auch machen. Wenn die Zeilen sich ändern und nicht immer 40-175 sind, dann muss man dafür eben ein Kriterium festlegen (bspw. Werte größer X) und das dann aber selbst schreiben; das kann man dem Rekorder nicht eintrichtern.


Aber beim Importieren von Daten dürfte die Aktion immer die gleiche sein (Daten importieren | Trennzeichen angeben, fertig), was mit dem MR funktioneren sollte.
 
das Kriterium für die Daten?
Schau Dir mal das 1 Diagramm an. Bis Punkt 50 passiert nichts und ab Punkt 169 ist die Messung vorbei. Aufzeichnen tue ich mit 25Hz laut Messprogramm.
Jedes Blatt ist eine Messung.
Davor und danach sind Daten wo nicht passiert, überflüssige Daten.
Ich habe bei den Messprogramm nicht die Möglichkeit, wenn ich die Messung "Start" drücke, das sofort die Testperson startet (ist die Verzögerung).

Zu deiner Exceltabelle: Mein Vorschlag (oder geht es noch einfacher)

Ich bräuchte ja in meiner Tabelle nur noch 5 Blätter einfügen (Daten 6-10), wo ich die Rohdaten rein lade und dort den Filter festlege (zu exportierenden Zeilen).
Blatt 1 -> Rohdaten Blatt 6 usw. Das Diagramm holt sich ja die Daten von Blatt 1-5.

Angenehme Nachtruhe, muss morgen wieder um 6 raus.


Update

Habe noch eine Möglichkeit gefunden, um das Problem zu lösen.
Mit Hilfe von dynamischen Diagrammen.
 
Zuletzt bearbeitet:
Ja, da passiert nicht viel. Aber du hast manuell festgelegt, wo das Diagramm beginnt. Das ist im Beispiel scheinbar nicht bei Werten die größer X sind, sondern mehr oder weniger nach belieben ("jetzt gehts langsam los"). Da muss man eben irgendwie festlegen, ab wann das sein soll. Sonst kann man das ja nicht automatisieren.
 
Sorry Mr. Snoot, gestern war mal Ruhetag.

Habe es mal über dynamische Diagramme versucht nach dieser Beschreibung.

Code:
https://www.redmark.de/Auftritte/ShopData/media/attachmentlibraries/rp/Excel/Dynamisches_Diagramm.pdf

Ist aber für meinen Umfang zu umständlich und mit sehr viel Aufwand verbunden.

Da muss man eben irgendwie festlegen, ab wann das sein soll. Sonst kann man das ja nicht automatisieren.

Habe ich mir auch überlegt. Diese Reihenfolge wäre schon eine Erleichterung:

1. Daten in Tabelle laden (Tabellen 2-6, jeder Datensatz in die Tabelle einzeln)
2. Daten im Diagramm anschauen (Tabelle 1) und Zeile man. Festlegen für Anfang und Ende
3. nicht benötigte Zeilen löschen
4. Diagramm sollte sich an die restliche Zeilenlänge anpassen

Habe noch eine Möglichkeit gefunden, wie ich das Problem lösen könnte.
Wir nutzen noch Diadem. Leider ist die Erfahrung mit Autosequenz noch sehr gering und wenn müsste noch eine Lizenz gekauft werden.

Ich sehe ja bei Dir eine "SSD-Chart-Liste". Ich und mein Chef habe heute die SSD für den Videorechner ausgesucht (120GB).
Code:
http://www.ocztechnology.com/products/solid_state_drives/ocz_colossus_series_sata_ii_3_5-ssd
 
Hab mal was gebastelt (die Textdateien haben alle den gleichen Inhalt; spielt ja erstmal keine Rolle).

Ist noch nicht optimal - nur damit du mal siehst, was möglich ist und ob du dir sowas vorgestellt hast.
 

Anhänge

Zuletzt bearbeitet:
Bekomme die Datei im moment von Dir nicht zum laufen. Muss ich heute Abend zu Hause testen.

Update

Bekomme dein Beispiel auch hier nicht zum laufen.

Habe mal die Beispiel-Datei überarbeitet. Ablauf müsste so aussehen. Geht das überhaupt so, wie ich es mir vorstelle?
Ist leider sehr schwer etwas zu beschreiben als etwas zu zeigen.

1. Daten in Blatt Rohdaten 1 man. kopieren und notwendige Daten überprüfen
2. benötigte Daten "ab und bis" Zelle definieren (nicht bei jeden Blatt bzw. allen Blättern gleich)
3. Benötigte Daten werden Automatisch in Blatt "Daten 01" kopiert (Rohdaten Messung 1-> Daten 01, Rohdaten Messung 2-> Daten 02 usw.)
4. "Aktualisieren" drücken und Skalierung passt sich Automatisch der X-und Y Achse an bei jeden Datenblatt

Anhang anzeigen 179589
 
Zuletzt bearbeitet:
Ja, eigentlich macht genau das alles die Datei :)


Was funktioniert denn bei dir nicht, kommt ein Fehler oder so? Makros aktiviert?
 
Makros aktiviert, Datei geladen, Schalter gedrückt...nichts passiert.
Makros aktiviert, Datei geladen und markiert, Schalter gedrückt...nichts passiert.
Makros aktiviert und Schalter gedrückt...nichts passiert.

Oder mache ich etwas falsch?
 
Hm,

öffne mal die Datei, geh mit Alt + F11 in den VBA-Editor, wähle links das Modul 1, klicke dann rechts in den Code unter Sub diagramm_pre() und drücke F5, dann müsste das Makro losrattern.
 

Anhänge

  • makro_starten.JPG
    makro_starten.JPG
    80,4 KB · Aufrufe: 119
Ja, jetzt funktioniert es und sieht sehr gut aus. Bekomme aber am Ende eine Fehlermeldung.


Anhang anzeigen 179593
 
Zuletzt bearbeitet:
Ja, kann passieren, wenn du 0, 1 oder mehr als 5 Dateien angegeben hast. Da weiß ich im Moment keine Lösung.

Wenn du immer eine feste Anzahl Dateien hast ist das kein Problem, dann stellt man das einfachein.




Mach mal einen Rechtsklick auf den Button und dann Makro zuweisen, da sollte in der Liste diagramm_pre ausgewählt sein.
 
Habe es jetzt 6 -mal versucht, jedoch ohne Erfolg.
Aus den VBA-Editor läuft es sofort.

Trotzdem nicht schlecht für den Anfang.

Update

Habe mal Makro´s mit der Aufzeichnungsfunktion erstellt und getestet, laufen alle wunderbar.
Jetzt hatte ich versucht, an Hand deines Makro´s einem Datenimport zu erstellen. War ein volles Desaster.
Wie würde den das Makro nur für den Datenimport aussehen (nur Datenimport mit unterschiedlichen Speicherpfad in ein Blatt laut meiner Vorlage)?
Gehe morgen noch ein Buch für Excel VBA kaufen. Laut Kundenbewertung bei Amazon soll dieses gut sein.

http://www.amazon.de/gp/product/382...&pf_rd_t=101&pf_rd_p=463375173&pf_rd_i=301128
 
Zuletzt bearbeitet:
Dazu brauchst du zwei Dinge:

  • 1. Öffnen-Dialog
    Code:
    [COLOR="green"]' Optional in den Ordner wechseln, in dem sich diese Excel-Datei befindet[/COLOR]
    sLwBuchstb = Left(ThisWorkbook.Path, 1)   [COLOR="Green"]' Pfad ermitteln und alles bis auf 1. Buchstaben (= Laufwerksbuchstabe) abschneiden[/COLOR]
    sPfad = ThisWorkbook.Path                 [COLOR="Green"]' Ordner in dem diese Datei liegt[/COLOR]
    ChDrive sLwBuchstb                        [COLOR="green"]' Wechselt auf Laufwerk, auf dem sich diese Datei befindet[/COLOR]
    ChDir sPfad                               [COLOR="green"]' Wechselt in Verzeichnis, in dem sich diese Datei befindet[/COLOR]
    
    [COLOR="Green"]' Datei-öffnen-Dialog für txt-Dateien[/COLOR]
    sDatei = Application.GetOpenFilename("Textdatei (*.txt),*txt,", , "Datei öffnen", , False) [COLOR="Green"]' Datei öffnen; Kompletter Pfad + Dateiname in sDatei gespeichert für Import[/COLOR]
    If sDatei = "Falsch" Then Exit Sub
  • 2. Dateiimport
    Code:
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & sDatei, Destination:=Range("$A$1"))    [COLOR="green"]' Dateityp Text, Datei = sDatei (aus Öffnen-Dialog), einfügen in A1[/COLOR]
      .TextFileOtherDelimiter = "|"                                                               [COLOR="green"]' Trennzeichen[/COLOR]
      .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
      .Refresh BackgroundQuery:=False
    End With


Hast du das mit dem Button nochmal überprüft? Das muss funktionieren wenn er dem Makro zugewiesen ist.
 
Funktioniert, Super.
Eine Frage habe ich aber trotzdem noch. In deinem Makro ist nicht enthalten "erste Zeile abschneiden bzw nicht mit importieren" (Textzeile über den Zahlen). Sehe ich das richtig?

Habe gestern auf Arbeit und am Abend zu Hause dein Makro noch mal probiert.
Auf Arbeit bekomme ich es absolut nicht zum laufen. Liegt das vielleicht an den Adminrechten?
Wir haben dort Office 2003.

Zu hause nutze ich Office 2007. Habe auch vorher Makro´s auf "Automatisch Starten" gestellt.

Update

Habe es jetzt bei mir zu Hause noch mal getestet, dein Makro funktioniert aus dem Makro ohne Probleme.
Ich verstehe das nicht, ......oder hängt der Virenscanner mit drin?
 
Zuletzt bearbeitet:
Die erste Zeile könnte man nach dem Import einfach wieder löschen:
Range("A1:A6").Value = "" ' Zellwerte in A1 bis A6 löschen
oder
Range("A1").EntireRow.Delete ' Komplette Zeile 1 löschen


Das mit dem Makro versteh ich nicht. Ein Virenscanner oder Adminrechte können da glaube ich kaum dahinterstecken. Den Button hast du mal bzgl. der Makrozuweisung überprüft?

Wenn das erste Makro mit dem Import fertig ist, gibt es ja auf dem Tabellenblatt Auswertung einen neuen Button für das zweite Makro. Funktioniert der denn auch nicht?
 
[QWenn das erste Makro mit dem Import fertig ist, gibt es ja auf dem Tabellenblatt Auswertung einen neuen Button für das zweite Makro. Funktioniert der denn auch nicht? UOTE][/QUOTE]

Der funktioniert genau 1-mal.

Auf Arbeit kann ich mir nur vorstellen, das wir mit sehr geringen Benutzerrechten arbeiten.
Habe deinen Anhang jetzt zum 8-mal geladen und immer das selbe. Auf Button in Excel und Makro zuweisen geht nicht.
In Excel 2007->auf Ansicht->Makro´s anzeigen->diagramm_pre auswählen->ausführen-> geht ohne Probleme

Range("A1").EntireRow.Delete ' Komplette Zeile 1 löschen

Wo muss die Zeile in den Makro stehen?
Hatte Sie nach dem ".Refresh BackgroundQuery:=False" eingefügt.


Update

Das gibt es nicht!!!
Habe jetzt in deiner Auswertung den Button durch einen anderen Ersetzt und und mit deinem Makro verknüpf und die Auswertung startet.
Das soll einer verstehen.:freak:
 
Zuletzt bearbeitet:
Ja, da kannst du's hinpacken.

Aber du willst ja vermutlich eine andere Überschrift haben, oder?

Dann lösch erst das Importierte (nur die Werte, nicht die komplette Zeile) und schreib gleich die neuen Werte rein:
Code:
Range("A1").EntireRow.Value = "" [COLOR="Green"]' löscht alles, was in Zeile 1 steht[/COLOR]
Range("A1").Value = "Überschrift1"
Range("B1").Value = "Überschrift2"
Range("C1").Value = "Überschrift3"
 
Mit der anderen Überschrift ist ein guter Tipp, dann werde ich mal weiter üben.

Noch Gratulation zu deinem 20.000 Beitrag :)
 
Zurück
Oben