19.7k Aufrufe
Gefragt in WindowsXP von exceluser91 Mitglied (103 Punkte)
Hallo und feinen Nachmittag zusammen,

ich bin derzeit in der Arbeit als Werkstudent mit einem Project involviert.
Excel!

Um einen schnelleren Arbeitsfluss zu ermöglichen, sollten manche Vorgänge per Makros funktionieren..
Jetzt zu der Aufgabe und ich hoffe ihr könnt mir helfen sonst, bin ich verloren^^

1. Jedes Monat werden aus einer txt datei ( monatl. wird eine neue txt datei angelegt) die Daten in eine Excel-datei eingelesen.
kann man dafür ein Makro erstellen?


2. Die Lasche "Tabelle 1" sollte sich per Makro in "Reichweite" umändern lassen, ebenso sollte gleichzeitig dann eine neue Lasche mit Titel "Summe" zusätzlich hinzugefügt werden.

3, Per Makro: Aus der oben genannten txt (oder aus der fertig importierten) müssen dann, alle Zeilen ausgeschnitten, welche in der Spalte C "Summe" stehen haben und in das erstellte Tabellenblatt "Summe" eingefügt werden.

4. Per Makro würde ich dann gerne alle leeren Zeilen, sowie Zeilen
welche doppelt genannt werden löschen, außer in der ersten Zeile, Quasi eine Doppelnennung dieser Zeile vermeiden!

Test Inventur: Reichweiten-/Abwertsatzermittlung 02.10.2012 10:59:25 Seite: 2

das 5. und letzte Makro

a)Spalte einfügen in das erste Tabellenblatt mit dem Namen "Dispo_Name"
b) Spalte löschen WFG


Ob mir hier jmd helfen kann, das wäre der Knüller!
Leider habe ich erst ab kommenden März eine Excel spezifische Weiterbildung in meiner Uni.. und leisten kann ich Sie mir bis dato schwer!
Vielen vielen Dank im voraus und ich freue mich über jede produktive Antwort!

Viele Grüße
Ben

81 Antworten

0 Punkte
Beantwortet von
Wie ich gerade sehe kopiert er nicht nur die Summen sondern auch alle Zeilen mit Materialnummer usw.
brauche ja lediglich die Summe und Gesamtsumme :)
ich probier schon ständig rum, aber mir fehlt einfach das Fachwissen!
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Benjamin,

ich glaube, so langsam verstehe ich, was du willst.
Habe ich das richtig verstanden:
Es soll der Bereich am Ende des Arbeitsblattes kopiert werden, in dem in Spalte C Summe bzw. Gesamtsumme steht bzw. die Zeilen, in denen in Spalte G ein Wert steht?

Gruß

M.O.
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Benjamin,

ich habe das Makro wie folgt geändert:
- Kopieren des unteren Bereichs mit den Summen
- Löschen der nicht benötigten Zeilen im Blatt "Reichweite"
- Löschen der Zeilen mit "---" im Blatt Summe.

Schau mal, ob das jetzt so passt:

Sub kopieren_loeschen_neu()

Dim anfang, ende, zeile, lzeile, szeile As Integer

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

'letzte Zeile im aktiven Arbeitsblatt "Reichweite" ermitteln
lzeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row

'Anfang des zu kopierenden Bereichs suchen
For zeile = 6 To lzeile
'Summen kopieren
If Left(ActiveSheet.Cells(zeile, 3).Value, 5) = "Summe" And Left(ActiveSheet.Cells(zeile - 1, 1).Value, 1) = "-" Then
anfang = zeile
Exit For
End If
Next zeile

For zeile = 6 To lzeile
'Gesamtsumme
If Left(ActiveSheet.Cells(zeile, 3).Value, 11) = "Gesamtsumme" Then
ende = zeile
Exit For
End If
Next zeile

'gefundenen Bereich kopieren
ActiveSheet.Range(Cells(anfang, 1), Cells(ende, 1)).EntireRow.Copy Destination:=Worksheets("Summe").Cells(6, 1)

For zeile = lzeile To 6 Step -1
'Zeile mit VD suchen und kopieren
If Left(ActiveSheet.Cells(zeile, 9).Value, 2) = "VD" Then
ActiveSheet.Cells(zeile, 1).EntireRow.Copy Destination:=Worksheets("Summe").Cells(6 + ende - anfang + 1, 1)
szeile = szeile + 1
End If
Next zeile

'Nun alle nicht benötigten Zeilen löschen
'Löschen von rückwärts
For zeile = lzeile To 6 Step -1
'alle Zeilen, die hinter Gesamtsumme stehen werden gelöscht
If zeile >= ende Then ActiveSheet.Rows(zeile).Delete

'Alle Zeilen mit Summe löschen
If Left(ActiveSheet.Cells(zeile, 3).Value, 5) = "Summe" Then ActiveSheet.Rows(zeile).EntireRow.Delete

'leere Zeilen löschen
With ActiveSheet.Range(Cells(zeile, 1), Cells(zeile, 19))
If Application.WorksheetFunction.CountBlank(.Cells) = .Cells.Count Then
Rows(zeile).EntireRow.Delete
End If
End With

'Zeilen, die mit - beginnen werden gelöscht
If Left(ActiveSheet.Cells(zeile, 1).Value, 1) = "-" Then ActiveSheet.Rows(zeile).EntireRow.Delete

'Zellen in denen in Spalte A keine Zahl steht werden gelöscht
If Not IsNumeric(ActiveSheet.Cells(zeile, 1)) Then ActiveSheet.Rows(zeile).EntireRow.Delete

'Zellen mit Leerzeichen in Spalte A werden gelöscht
If IsNumeric(ActiveSheet.Cells(zeile, 1)) And ActiveSheet.Cells(zeile, 1).Value = 0 Then ActiveSheet.Rows(zeile).EntireRow.Delete

Next zeile

'Spalte 2 mit WFG löschen
Sheets("Summe").Columns(2).Delete Shift:=xlToLeft

'Im Blatt Summe alle Zeilen löschen, die mit - anfagen
For zeile = 6 To Worksheets("Summe").UsedRange.SpecialCells(xlCellTypeLastCell).Row
If Left(Worksheets("Summe").Cells(zeile, 1).Value, 1) = "-" Then Worksheets("Summe").Rows(zeile).EntireRow.Delete
Next zeile

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von
Ja richtig, jedoch ist ein Wert in Spalte G auch in anderen Zeilen. Z.B neben materialnummer usw zu finden.
ich probier mal das makro, melde mich danach
0 Punkte
Beantwortet von
Hallo nochmal,
also ist richtig gut ausgeschnitten,
leider zuviel
Sprich: es wurden auch dinge in lasche Summe kopiert wie:

822 A5E00133304 WID_MET_SHT_1206_2
822 A5E00140363 IC_SCHMITT_TRIGGER
822 A5E00150958 DIO_SCHOTTKY_BAT54
822 A5E00204110 IC_SPANN_UEB_MAX80

anscheinend weil auch ein Wert in der Spalte G vorhanden ist?
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Benjamin,

in deiner Beispieldatei hat das Kopieren des unteren Bereichs geklappt.
Ob ein Wert in Spalte G prüft das Makro jetzt gar nicht.
Es wird in Spalte C die erste Summe gesucht, die nach einer Zeile mit "---" steht und dann von dort alles bis Gesamtsumme kopiert.
Warum jetzt mehr kopiert, kann ich ohne die Datei zu sehen nicht sagen.

Gruß

M.O.
0 Punkte
Beantwortet von
Hast du evtl nicht mit einberechnet, dass in den anfangszeilen auch mal
Summen mit drin sind
die aber nicht benötigt werden?
und sie dann von dort aus bis zu Gesamtsumme alles ausschneiden?
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Benjamin,

siehe meine Antwort 36.Die Summen in den Anfangszeilen werden ignoriert, wenn in der Zeile davor keine Trennstriche stehen.
Ich habe mich an deine Beispieldatei gehalten. Das Makro klappt umso besser, je mehr die Beispieldatei der Orginaldatei entspricht.

Falls die Summenbildung immer nach den doppelten Trennstrichen anfängt, könnte man das Makro entsprechend ändern und ausprobieren, ob es in der Orginaldatei klappt.

Gruß

M.O.
0 Punkte
Beantwortet von
ok, koenntest du mri das mit nach den ---- zeilen abgändert posten?
bzw is es ein hoher aufwand es dahingehend zu veraendern?

Viele liebe grüße!
klasse forum
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Benjamin,

ich werde das Makro entsprechend ändern. Kann aber ein oder zwei Tage dauern.

Gruß

M.O.
...