19.2k 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 exceluser91 Mitglied (103 Punkte)
also Lasche Reichweite habe ich selber geschafft, genauso wie eine neue Lasche mit der Bezeichnung Summe
0 Punkte
Beantwortet von exceluser91 Mitglied (103 Punkte)
Ok, leider hat sich ja noch niemand gemeldet und ich arbeite viel mit irgendwelchen Codes aus dem Inet
aber hier komme ich zu absolut keiner Lösung,
bei der txt datei würde ich gerne das Trennzeichen "tabstopp" noch in dieses Makro integrieren, weil sonst lauter vierecke rumschwirren :)
Bitte weiterhin um Hilfe und wäre sehr sehr dankbar!

das ist das verwendete Makro
Sub Datei_importieren()

Dim Datei As String, Text As String
Dim Zeile As Long

On Error GoTo Fehler

'Quelldatei festlegen
Datei = ThisWorkbook.Path & "\z0min110_20121002.txt"

Open Datei For Input As #1 ' Quelldatei öffnen.
Zeile = 1

Do While Not EOF(1) ' Schleife bis Dateiende
Line Input #1, Text ' Text lesen
ActiveSheet.Cells(Zeile, 1) = Text
Zeile = Zeile + 1
Loop

Close #1 'Quelldatei schließen

Exit Sub

Fehler:
Close #1
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "da ist leider ein Fehler aufgetreten"
End Sub
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Excel-User,

mit deinem Makro Datei_importieren liest du aus einer Textdatei jede Zeile einzeln so in deine Excel-Datei ein, sodass in Zelle A1 die komplette 1. Zeile deiner Text-Datei steht.
Wäre es nicht sinnvoller, die Text-Datei zu importieren, so dass die Werte gleich getrennt in Zellen übernommen werden.

Ein Makro könnte so aussehen:

Sub Datei_importieren_neu()

Dim Datei As String

On Error GoTo Fehler

'Quelldatei festlegen
Datei = "TEXT;" & ThisWorkbook.Path & "\z0min110_20121002.txt"

With ActiveSheet.QueryTables.Add(Connection:=Datei, Destination:=Range("$A$1"))
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.AdjustColumnWidth = True
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierNone
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With

Exit Sub

Fehler:
Close #1
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "da ist leider ein Fehler aufgetreten"
End Sub


Das Makro zum Kopieren der Zeilen mit Summe in Spalte C könnte z.B. so aussehen:

Sub Summe_kopieren()

Dim zeile, szeile As Long

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

'letzte Zeile im Arbeitsblatt Summe ermitteln
szeile = Worksheets("Summe").UsedRange.SpecialCells(xlCellTypeLastCell).Row

For zeile = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row

If Cells(zeile, 3).Value = "Summe" Then
szeile = szeile + 1
Rows(zeile).EntireRow.Copy Destination:=Worksheets("Summe").Cells(szeile, 1)
'Zeile mit Summe wird gelöscht
Rows(zeile).EntireRow.Delete xlShiftUp
End If

Next zeile

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub



Leere Zeilen kannst du z.B. so löschen

Sub Leer()
Dim Zeile As Variant
For Zeile = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
'Hier wird der Arbeitsbereich (Anzahl der Spalten) angegeben
With Range(Cells(Zeile, 1), Cells(Zeile, 14))
If Application.WorksheetFunction.CountBlank(.Cells) = .Cells.Count Then
Rows(Zeile).Delete
End If
End With
Next
End Sub


Das musst du entsprechend anpassen. In dem Makro wird die Zeile gelöscht, wenn die Spalten A bis N leer sind.
Was du mit den doppelten Einträgen willst, verstehe ich leider nicht.

Bei dem 5. Makro hilft dir der Makrorekorder :-).

Gruß

M.O.
0 Punkte
Beantwortet von exceluser91 Mitglied (103 Punkte)
Hallo erneut, leider hat es nicht funktioniert die Zeilen mit Summe auszuschneiden und in die 2. Lasche Summe einzufügen!

das 2. Problem stellt das mit den leeren Zeilen löschen da,
leider werden sie durch dein makro nicht gelöscht,

ich haette gerne, dass wenn von zeile A bist Zeile H eine Zeile nicht befüllt ist, dass sie komplett gelöscht wird!


ist das iwie möglich? :)
vielen dank!
Super hilfe
0 Punkte
Beantwortet von exceluser91 Mitglied (103 Punkte)
Mit wiederholung meinte ich,

dass ich gerne alle Zeilen in der ein "Dis" vorkommt gelöscht werden außer in der 1-3 Zeile,
das gleiche gilt für die Bezeichnung "A2P:Z0MINxxx "

da diese als Überschriften gelten!

Kann mir da jmd helfen?Ab naechstem Semester habe ich eine Excel intensivierung und dann sollte ich das auch hinbekommen, aber solange hoffe ich dass ihr mir weiterhelfen könnt :)
vielen dank
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Benjamin,

warum das Kopier-Makro bei dir nicht geklappt, kann ich nicht sagen. Am besten lädst du mal eine Beispielmappe hoch, z.B. hier, und postet den Link.

Gruß

M.O.
0 Punkte
Beantwortet von exceluser91 Mitglied (103 Punkte)
Das is schwer, bin in der Arbeit und die Daten sind leider top secret!

aber kann gerne Zuhause nochmal eine anfertigen und die dann hochladen!
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Benjamin,

keiner verlangt die Datei richtigen Daten :-). Aber die Beispieldaten sollten den richtigen Daten ähnlich sein, damit gerade das Löschen und kopieren auch in der richtigen Datei klappt.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo nochmal
hier wäre das Beispiel!

http://www.file-upload.net/download-6704878/beispiel.xls.html

Klasse Support, werde ich jederzeit weiterempfehlen!




Gruß
Ben
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Benjamin,

ich habe mir mal deine Beispieldatei angeschaut.

wenn ich dich richtig verstehe, willst du alle doppelten Überschriften löschen,
das wären dann in deiner Beispieldatei die Zeilen 11 bis 16. Die Zeilen 1 bis 5 bleiben erhalten.
Was soll mit der Zeile geschehen, in der Gesamtsumme steht?

Ich werde aber voraussichtlich erst am Wochenende dazu kommen, dir ein entsprechendes Makro zu schreiben.

Gruß

M.O
...