Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
760to764
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
760to764
760to764
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem Leerzeichen aus Download

Problem Leerzeichen aus Download
11.05.2006 08:46:09
PeterS
Guten Morgen
Letzte Hoffung - das Forum!
Mein Download von SAP nach Excel bewirkt (siehe Anhang), dass in der Spalte A alle Organisation in eine Spalte gefasst werden. Visualisiert wird das durch die unterschiedlichen Leerzeichen von Links. Nachdem ich die Daten filtern möchte, muss ich jede organisatorische Einheit in eine eigene Spalte bringen. Wie kann ich das automatisieren (da meine Liste über 1.000 Datensätze umfasst) ?
Besten Dank im Voraus
PeterS

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem Leerzeichen aus Download
11.05.2006 08:53:33
Harald
Moin Peter,
kein Anhang weit und breit ;-))
Aber versuch mal per Daten / Text in Spalten mit Leerzeichen als Trenner, die Daten aufzuteilen
Gruss Harald
AW: Problem Leerzeichen aus Download
11.05.2006 09:43:38
Harald
Hallo Elke, Peter
und was soll da jetzt genau passieren ? Was ist einen Organsationseinheit und woran könnte sie Excel erkennen ?
Was soll in die Spalten / Zeilen ?
Fragen über Fragen ;-))
Gruss Harald
AW: Problem Leerzeichen aus Download
11.05.2006 09:56:49
PeterS
Hallo Herbert!
Blatt Quelle ist die 1000 Datensätzeliste
Aus Blatt Ziel sollte eine Verknüpfung kommen zu Blatt Quelle in die 1. Spalte und Abfragen z.B. Wenn in der Spalte A (Quelle) 2 Leerzeichen (Beispiel UB International) vor dem 1.Zeichen innerhalb der Zelle dann zeige mir den Text im Blatt Ziel auch in der Spalte A / Wenn jedoch 5 Leerzeichen (Beispiel SBU Baustoffe) dann in die Spalte B / USW.
Ergebnis: Ich habe dann im Blatt Ziel alles gleich wie bei Blatt Quelle, jedoch mehr Spalten
Grüße
Peter
Anzeige
AW: Problem Leerzeichen aus Download
11.05.2006 09:56:56
PeterS
Hallo Herbert!
Blatt Quelle ist die 1000 Datensätzeliste
Aus Blatt Ziel sollte eine Verknüpfung kommen zu Blatt Quelle in die 1. Spalte und Abfragen z.B. Wenn in der Spalte A (Quelle) 2 Leerzeichen (Beispiel UB International) vor dem 1.Zeichen innerhalb der Zelle dann zeige mir den Text im Blatt Ziel auch in der Spalte A / Wenn jedoch 5 Leerzeichen (Beispiel SBU Baustoffe) dann in die Spalte B / USW.
Ergebnis: Ich habe dann im Blatt Ziel alles gleich wie bei Blatt Quelle, jedoch mehr Spalten
Grüße
Peter
AW: Problem Leerzeichen aus Download
11.05.2006 09:57:18
PeterS
Hallo Herbert!
Blatt Quelle ist die 1000 Datensätzeliste
Aus Blatt Ziel sollte eine Verknüpfung kommen zu Blatt Quelle in die 1. Spalte und Abfragen z.B. Wenn in der Spalte A (Quelle) 2 Leerzeichen (Beispiel UB International) vor dem 1.Zeichen innerhalb der Zelle dann zeige mir den Text im Blatt Ziel auch in der Spalte A / Wenn jedoch 5 Leerzeichen (Beispiel SBU Baustoffe) dann in die Spalte B / USW.
Ergebnis: Ich habe dann im Blatt Ziel alles gleich wie bei Blatt Quelle, jedoch mehr Spalten
Grüße
Peter
Anzeige
Passe
11.05.2006 10:09:17
Harald
Gruss HARALD ;-)
AW: Passe
11.05.2006 10:16:22
PeterS
Sorry für die Namensverwechselung!
Ich bin etwas unruhig, weil ich noch keine Lösung habe und mein Kunde ist ziemlich ungeduldig!
Beste Grüße
Peter
AW: Hausmannskost ;-)
11.05.2006 11:02:42
Harald
Hi,
damit dürftest Du der Lösung näher kommen.
Hoffe Du steigst besser durch den Code, als ich durch die Fragestellung ;-)

Sub Hausmannskost()
Dim i As Long, x As Long, y As Long
With Sheets("Quelle")
x = 1 'erste Zielzeile in Spalte 2 der Zieltabelle
y = 1 'erste Zielzeile in Spalte 1 der Zieltabelle
For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row 'letzte gefüllte Zelle in Spalte 1 der Quelltabelle
If Left(.Cells(i, 1), 5) = "     " Then 'wenn die ersten 5 Zeichen Leerstellen sind
Sheets("Ziel").Cells(x, 2) = Right(.Cells(i, 1), Len(.Cells(i, 1)) - 5) 'dann nach Spalte 2 ohne führende Leerstellen
x = x + 1
ElseIf Left(.Cells(i, 1), 2) = "  " Then 'oder die ersten 2 Stellen Leerstellen sind
Sheets("Ziel").Cells(y, 1) = Right(.Cells(i, 1), Len(.Cells(i, 1)) - 2)
y = y + 1
End If
Next i
End With
End Sub

Gruss Harald
Anzeige
AW: Passe
11.05.2006 15:24:47
PeterS
ICH BIN TOTAL BEGEISTERT !!!
ES HAT FUNKTIONIERT!!
SUPER!SUPER!SUPER!
Beste Grüße
PeterS
AW: Passe
11.05.2006 15:51:36
PeterS
Wirklich gut -
möglicherweise bin ich jetzt unverschämt, aber ich würde noch 3 Bedingungen mit Leerzeichen 6,7,8 haben und ich bin echt kein Makroüberfliefer.
Könntest Du mir bitte noch einmal helfen - Harald!
Danke
PeterS
AW: Passe
12.05.2006 09:05:22
Harald
Moin Peter,
oh mein Gott. Das geht garantiert eleganter. Bin mir sicher, das irgendein vba-Gott mir diesen Code abgrätscht ;-))
Wo was hinkommt, mußte aber selbst anpassen.

Sub HausmannskostdieZweite()
Dim i As Long, a As Long, b As Long, c As Long, d As Long, e As Long
'wenn absolut sicher ist, dass die Tabelle nicht mehr als 32000 Zeilen hat,
' ist es performanter, alle As Long Deklarationen in As Integer zu ändern
Application.ScreenUpdating = False
With Sheets("Quelle")
a = 1 'erste Zielzeile in Spalte 1 der Zieltabelle
b = 1 'erste Zielzeile in Spalte 2 der Zieltabelle
c = 1 'erste Zielzeile in Spalte 3 der Zieltabelle
d = 1 'erste Zielzeile in Spalte 4 der Zieltabelle
e = 1 'erste Zielzeile in Spalte 5 der Zieltabelle
For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row 'letzte gefüllte Zelle in Spalte 1 der Quelltabelle
If Left(.Cells(i, 1), 8) = "        " Then 'wenn die ersten 8 Zeichen Leerstellen sind
Sheets("Ziel").Cells(a, 2) = Right(.Cells(i, 1), Len(.Cells(i, 1)) - 8) 'dann nach Spalte 1 ohne führende Leerstellen
a = a + 1
End If
If Left(.Cells(i, 1), 7) = "       " Then 'wenn die ersten 5 Zeichen Leerstellen sind
Sheets("Ziel").Cells(b, 2) = Right(.Cells(i, 1), Len(.Cells(i, 1)) - 7) 'dann nach Spalte 2 ohne führende Leerstellen
b = b + 1
End If
If Left(.Cells(i, 1), 6) = "      " Then 'wenn die ersten 5 Zeichen Leerstellen sind
Sheets("Ziel").Cells(c, 2) = Right(.Cells(i, 1), Len(.Cells(i, 1)) - 6) 'dann nach Spalte 3 ohne führende Leerstellen
c = c + 1
End If
If Left(.Cells(i, 1), 5) = "     " Then 'wenn die ersten 5 Zeichen Leerstellen sind
Sheets("Ziel").Cells(d, 2) = Right(.Cells(i, 1), Len(.Cells(i, 1)) - 5) 'dann nach Spalte 4....
d = d + 1
End If
If Left(.Cells(i, 1), 2) = "  " Then 'oder die ersten 2 Stellen Leerstellen sind
Sheets("Ziel").Cells(e, 1) = Right(.Cells(i, 1), Len(.Cells(i, 1)) - 2) 'nach Spalte 5...
e = e + 1
End If
Next i
End With
Application.ScreenUpdating = True
End Sub

Gruss Harald
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige