[VBA in Excel] Zeilen sortieren/suchen und kopieren

diabolo150973

Level-2
Beiträge
1.075
Reaktionspunkte
404
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe hier mein nächstes Projekt laufen und bin schon wieder an meinen Grenzen angekommen:

Wir haben 3 Messtaster (X-Achse, Y-Achse, Z-Achse), die mit einer Software (nicht meine!) abgefragt werden. Die gemessenen Werte kann man nun als *.CSV exportieren.
Schön wäre es gewesen, wenn diese CSV-Datei nun eine Spalte für die X-Werte, eine für Y und eine für Z hätte. Aber wo ich bin, gibt kein schön! ;-)
Deswegen wechseln sich nun die X-,Y- und Z-Werte in jeder Zeile ab.
Nun steht z.B. in Zelle

  • A1= "X-Achse", in Zelle B1=der gemessene Wert, in Zelle C1=Datum und Uhrzeit der Messung
  • A2= "Y-Achse", in Zelle B2=der gemessene Wert, in Zelle C2=Datum und Uhrzeit der Messung
  • A3= "Z-Achse", in Zelle B3=der gemessene Wert, in Zelle C3=Datum und Uhrzeit der Messung
  • A4= "X-Achse", in Zelle B4=der gemessene Wert, in Zelle C4=Datum und Uhrzeit der Messung
  • ...
  • ...
  • ...
Nun habe ich mir gedacht: Schmeiß mal den Makro-Recorder an und zeichne das Suchen, Sortieren und kopieren auf. Aber wie schon oben erwähnt: Es gibt kein schön! Das klappt nicht!

Nun meine Frage: Wie kann ich alle Zeilen, in denen in Spalte A "X-Achse" steht rausfiltern, markieren und in auf ein neues Blatt kopieren. Das Markieren und Kopieren bekomme ich hin, aber das Suchen und markieren aller "X-Achsen" schaffe ich nicht. Leider ist die Anzahl der Messwerte nicht immer die Selbe, sonst könnte ich ja einfach alles, was ich will mit "STRG+LM" markieren damit machen, was ich will.

Hat da jemand eine Idee?

Schönen Gruß,

dia
 
So auf die schnelle würde ich sagen mache einen AutoFilter.
Per Makro kannst du den so ansprechen
Code:
*
[LEFT]Sub StelleAutoFilterEin()
Selection.AutoFilter Field:=1, Criteria1:="[COLOR=#333333]X-Achse[/COLOR]"
End Sub
[/LEFT]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du hättest besser eine Beispiel csv Datei in den Anhang gepackt.
Die Aufgabe an sich klingt leicht lösbar aber eben nicht mit aufzeichnen, sondern klassisch programmiert.
 
Und dann evtl. mit

Code:
*
ActiveSheet.Range("A2:C" & ActiveSheet.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Copy 
Workbooks("Messwerte.xls").Sheets("Sheet2").Activate 
Range("A2").Activate 
Activesheet.Paste
Wenn die Werte in Zeile 2 anfagen und in Zeile 1 die Überschriften stehen.
Ist ungetestet aus einem anderen Makro bei mir kopiert.
Musste evtl. noch was anpassen
 
Danke! Ich spiele damit mal etwas rum. Wenn es so klappt, kann ich es ja auf Y- und Z- erweitern.
Das wäre ja super, wenn dieser 3-Zeiler reichen würde. Ich hatte schon Angst, dass irgendwas riesiges kommt.

Gruß,

dia
 
Hiermit sollte es gehen
Code:
*
Sub CopyXAchse()
'
' Macro1 Macro
'


'
     Selection.AutoFilter Field:=1, Criteria1:="M01 - X-Achse"
    ActiveSheet.Range("A1:C" & ActiveSheet.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Copy
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Paste
End Sub


Sub CopyZAchse()
'
' Macro1 Macro
'


'
    Selection.AutoFilter Field:=1, Criteria1:="M02 - Z-Achse"
    ActiveSheet.Range("A1:C" & ActiveSheet.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Copy
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Paste
End Sub
 
Zuletzt bearbeitet:
Zurück
Oben