Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1292to1296
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellen mit Makro kopieren

Zellen mit Makro kopieren
14.01.2013 15:39:12
Matthäus
Hallo,
letztens wurde mir ja hier toll geholfen, hoffe dieses mal auch auf Rat, auch wenn die Aufgabe noch schwieriger ist wie ich finde.
Wenn ich Daten aus dem SAP HR System ziehe, kommen diese total unformatiert in Excel an. Leider gibt es keinen richtigen Export. Teilweise steht die Mitarbeteiterstammnummer (sechsstellig) in der Spalte J, mal in der spalte I, mal ist in der Spalte davor der dazugehörige Mitarbeitername, mal zwei Spalten davor. Es gibt noch ein paar andere Zellen, aber zur Vereinfachung lass ich diese mal weg. Das Kernproblem ist, ob ich eine Makro erstellen kann, die bspw. die sechsstellige Stammnummer erkennt, diese in ein anderes Tabellenblatt kopiert und die nicht leeren links davon stehenden Zellen (also Ma-Name, usw.) mitkopiert. Bin über jede Hilfe dankbar!!!

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Musterblatt hochladen!
14.01.2013 15:44:25
Klaus
Hallo Matthäus,
lad bitte mal ein chaotisches Musterblatt hoch, vielleicht mit 10-15 Einträgen.
Realnamen kannst du ja gegen "Max Mustermann1" usw ersetzen.
Grüße,
Klaus M.vdT.

AW: Musterblatt hochladen!
14.01.2013 16:20:08
Matthäus
https://www.herber.de/bbs/user/83389.xls
Ok, habe mal einen Ausschnitt anonymisiert ;)
Ganz rechts mit 999xxx beginnend sieht man die Stammnummer, nur die Datensätze wären zu kopieren. Genauergesagt der Name und indirekt/direkt (befindet sich immer über den Datensätzen. Mit SVERWEIS kann man das ja zu den Datensätzen zuordnen oder gibt es noch einen einfacheren Weg?) genau wie Kostenstelle ganz links.
PS: Bei den obersten Daten fehlen die Angaben ganz links, was aber aufs ausschneiden zurückzuführen ist.

Anzeige
AW: Musterblatt hochladen!
15.01.2013 08:20:09
Klaus
Hi,
lass mal bitte dieses Makro über deine Musterdatei laufen.
Option Explicit
Sub TestGoLeft()
Dim iCols As Integer
Dim lRows As Long
Dim i As Integer
Dim l As Long
iCols = ActiveSheet.UsedRange.Columns.Count
lRows = ActiveSheet.UsedRange.Rows.Count
For i = iCols To 1 Step -1
For l = 1 To lRows
If Cells(l, i).Value = "" Then Cells(l, i).Delete Shift:=xlToLeft
Next l
Next i
End Sub
Ich meine zu verstehen, dass danach noch Fehler in der Auflistung sind:
Bitte schau dir das Ergebnis an, und erklär mir was noch geändert werden muss (und nach welcher Logik!)
Beispiel: IN C22 steht jetzt "AT", das gehört da sicher nicht hin (und alles rechts davon eingerückt, richtig?)
Grüße,
Klaus M.vdT.

Anzeige
AW: Musterblatt hochladen!
15.01.2013 12:12:08
Matthäus
genau, sieht schon sehr gut aus. Die Zeilen 11,16,22 müssten noch eine Zelle nach links verschoben werden. Und statt der Positionsbezeichnung müsste in jeder Zeile die darüberliegende Kostenstelle stehen. (Aber das kann man ja mit Sverweis ziehen).
Was jetzt genau die Logik ist, kann ich gar nicht genau sagen. Scheinbar ist bei manchen Positionen ein Zusatz wie 40-Stündler, Altersteilzeit enthalten. Dieser ist jedoch nicht erforderlich und stört zumindest in der Position. Also am besten ganz weg oder ganz nach rechts.
Ganz grundsätzlich wird pro Zeile nur Kostenstelle, Name, Baujahre (also diese 1 oder 0) und die ID ganz hinten. Alle anderen Angaben (wie bspw. Abteilung) werden nicht gebraucht.

Anzeige
AW: Musterblatt hochladen!
15.01.2013 12:31:16
Klaus
Hi Matthäus,
Was jetzt genau die Logik ist, kann ich gar nicht genau sagen.
Das ist doof. Wenn DU es nicht sagen kannst, kann ICH es nicht programmieren :-)
Die Zeilen 11,16,22 müssten noch eine Zelle nach links verschoben werden
Ich kann wieder nur raten:
in Zeile 11 ist es Spalte C (40h)
in Zeile 16 ist es Spalte A (Nachtschicht)
in Zeile 21 ist es Spalte B (E)
Und statt der Positionsbezeichnung müsste in jeder Zeile die darüberliegende Kostenstelle stehen. (Aber das kann man ja mit Sverweis ziehen).
Gut, dann ignoriere ich das erstmal. Bastelst dir die SVERWEISE rein, wenn die Datei fertig ist.
Ganz grundsätzlich wird pro Zeile nur Kostenstelle, Name, Baujahre (also diese 1 oder 0) und die ID ganz hinten. Alle anderen Angaben (wie bspw. Abteilung) werden nicht gebraucht.
Mit der Information kann ich leider nichts anfangen, da ja pro Zelle nicht bekannt ist was in der Zelle steht ...
Meine Idee soweit währ:
ich schreibe in eine Extra Tabelle eine "Blacklist" von Begriffen. Bisher umfasst diese die Werte:
"40h", "Nachtschicht", und "E". Alles was auf der Blacklist steht wird gelöscht.
Dann müsstest du das ganze ein paar mal laufen lassen und überprüfen, wenn noch einrückfehler bestehen die Blacklist händisch erweitern.
Ohne definierte Logik dahinter wirst du um "Handarbeit" nicht herumkommen! Aber ich bin zuversichtlich, das wir jene um gute 95% reduzieren können.
Ok, hier kommts:
mach in dem Blatt eine neue Tabelle, nenne diese "Blacklist" (exakt so!).
Schreibe in die Tabelle Blacklist in Spalte A die Begriffe "40h", "Nachtschicht", "E", und "AT" (natürlich jeweils ohne Anführungszeichen)
Dann diesen Code:
Option Explicit
Sub TestGoLeft()
Dim iCols As Integer
Dim lRows As Long
Dim i As Integer
Dim l As Long
Application.ScreenUpdating = False
iCols = ActiveSheet.UsedRange.Columns.Count
lRows = ActiveSheet.UsedRange.Rows.Count
For i = iCols To 1 Step -1
For l = 1 To lRows
If Cells(l, i).Value = "" Then Cells(l, i).Delete Shift:=xlToLeft
If Application.WorksheetFunction.CountIf(Sheets("Blacklist").Columns("A:A"), Cells(l,  _
i).Value) > 0 Then Cells(l, i).Delete Shift:=xlToLeft
Next l
Next i
Application.ScreenUpdating = True
End Sub
Ich hab mal screenupdating ausgeschaltet, um das Bildschirmflackern zu verhindern.
Grüße,
Klaus M.vdT.

Anzeige
AW: Musterblatt hochladen!
15.01.2013 12:55:07
Matthäus
ja, damit lässt sich arbeiten, vielen Dank. falls ich noch fragen hab, melde ich mich grad :)

Danke für die Rückmeldung! owT
15.01.2013 13:19:41
Klaus
.

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige