Microsoft Excel

Herbers Excel/VBA-Archiv

Daten sortieren

Betrifft: Daten sortieren von: Robin Sprenger
Geschrieben am: 13.11.2014 21:17:40

Moin Moin :)

Ich habe folgendes Problem:

Ist vll. etwas verholen, aber ich brauche nen Programmcode, aber für jemand Erfahrenes, wohl nen 3min Ding:

Aufgabe: Ich habe eine vierspaltige Tabelle, mit 4 verschiedenen Tabellen. Also getrennt durch leere Zellen.

1. Ich möchte von der ersten Zeile in Spalte 1 immer lesen, und die Zeile löschen, wenn diese nicht das Wort: Drehmoment aufweist. Bei dem Wort Drehmoment in Spalte 1 und Zeile x soll dann auch noch die Zeile mit dem Wort Drehmoment gelöscht werden.
2. Jetzt sollen alle Daten behalten werden, bis eine leere Zeile auftaucht, da ist die Tabelle zuende.
3. Alle Daten die jetzt kommen sollen gelöscht werden. Sodass nur die eine Tabelle stehen bleibt.
4. Jetzt sollen Spalte 1 und 2 ( A und B ) gelöscht werden, auch diese Daten brauche ich nicht. ( Nur Spalte 3 und 4 im Diagramm)
5. Als letztes müssen noch jeweils die Werte die jetzt in Spalte A und B stehen durch 1000 geteilt werden.
6. Jetzt sollten in Spalte A und B jeweils ca. 200 Werte stehen ( 1/1000 des Ursprungswertes) die man bequem in den Zwischenspeicher legen kann um sie in ein vorgefärtigtes Diagramm einzupflegen.

Zurzeit muss ich diese Daten immer per Hand, umformen und sortieren, es ist einfach sehr zeitraubend, dauert ewig.......leider hab ich noch wieder keine Routine in VBA und bin noch am lernen.

Vielen Dank im Vorraus!

mit freundlichen Grüßen Robin Sprenger

  

Betrifft: Alles löschen ;-)) von: Frank
Geschrieben am: 14.11.2014 12:30:29

Hallo Robin,

vielleicht geht's ja anderen genauso und Du hast deshalb noch keine Antwort - bei mir setzt das Verständnis schon hier aus:Ich habe eine vierspaltige Tabelle, mit 4 verschiedenen Tabellen. Aus (2.) könnte ich vielleicht entnehmen, dass Du 4 untereinanderstehende 4-spaltige Datenbereiche auf einem Blatt hast. Ein hochgeladenes Beispiel wäre da hilfreich.

Zu 1.
Das heisst, die Zeile soll gelöscht werden, wenn sie in Spalte 1 nicht das Wort "Drehmoment" enthält, und sie soll gelöscht werden, wenn sie dort das Wort "Drehmoment enthält. Das ist ganz einfach:

lZ = Sheets(1).UsedRange.Rows.Count
For i = lZ To 1 Step -1
   Sheets(1).Cells(i, 1).EntireRow.Delete
Next

Das Ergebnis ist ein leeres Blatt. Das kann man aber auch ohne VBA haben...

Zu 2.
OK, mal angenommen, bei 1. hast Du Dich vertan und es soll doch nicht alles gelöscht werden... Heisst das, Deine 'Tabellen' stehen untereinander, und Du willst überhaupt nur die erste auswerten? Erste leere Zelle in Spalte A:
lZ = Sheets(1).UsedRange.Rows.Count
Z1 = 1
Do While NOT Sheets(1).Cells(Z1, 1).value = ""
   Z1 = Z1 + 1
Loop
Zu 3.
Siehe (Zu 1.), nur dass Du den Zäher von lZ nur bis Z1 + 1 zurücklaufen lässt.

Zu 4.
Kann m.E. entfallen, wenn Du die Daten dann ja doch mittels Copy-Paste weiterverwendest. Wenn's aber unbedingt sein soll:
For i = 2 To 1 Step -1
   Sheets(1).Cells(1, i).EntireColumn.Delete
Next
Zu 5.
For i=1 to Z1
   For j = 1 to 2
      ZW=Sheets(1).cells(i,j).value/1000
      Sheets(1).cells(i,j).value=ZW
   next
next
Grüsse,
Frank


 

Beiträge aus den Excel-Beispielen zum Thema "Daten sortieren"