Anzeige
Archiv - Navigation
1032to1036
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

Makro Namen ersetzten

Makro Namen ersetzten
16.12.2008 17:00:00
Christian
Hallo, da mir letztens hier so perfekt geholfen wurde nun ein weiteres Problem:
Ich habe eine Spalte mit Auftragsnummern, diese soll analysiert werden und wenn die Auftragsnumemr falsch geschrieben ist soll es geändert werden automatisch:
Die daten werden aus einer anderen Liste importiert wo arbeiter reinschreiben.. das heißt es gibt verschiedene varianten der auftragsnummern die ich jetzt alle hier poste an einen beispiel:
Auftag wie es richtig sein soll:
28.1234/10 (/10 bedeutet position 10 es kann auch 20 30 usw sein)
L001419 (das sind Lager Aufräge die so sind und müssen ignoriert werden da man da nicht viel flasch schreiben kann)
so und so kommen die nummern bei mir in meiner liste an...
anmerkung: in php würde ich alle aufträge scannen nach trennzeichen ung dann wieder zusammen bassteln.. aber hier in excel.. keine ahnung:
28.1234 (wenn nichts dahinter steht soll es immer position 10 am ende sein)
28.1234/1
28.1234/10
281234
281234/1
281234/10
wenn mir hier noch jemand helfen könnte wäre das klasse...!!!!
im vorraus vielen dank
christian a

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Namen ersetzten
16.12.2008 17:02:00
Christian
eine anmerkung noch. die spalte in der die aufträge stehen ist spalte B!! nur falls jemand da schon was fertiges hat...!!! mfg
christian
AW: Makro Namen ersetzten
16.12.2008 17:45:39
Peter
Hallo Christian,
das Makro geht davon aus, dass die Daten ab Zeile 1 in Spalte B stehen und gibt zum Test die neuen Auftragsnummern in Spalte C aus.
Option Explicit

Public Sub Auftragsnummer()
Dim lZeile   As Long
Dim iLaenge  As Integer
Dim sZeichen As String
Dim Ziffern  As String
Dim sAusgabe As String
With ThisWorkbook.Worksheets("Tabelle1") ' den Tabellenblattnamen ggf. anpassen !
For lZeile = 1 To .Cells(Rows.Count, 2).End(xlUp).Row
For iLaenge = 1 To Len(.Cells(lZeile, 2).Value)
sZeichen = Mid(.Cells(lZeile, 2).Value, iLaenge, 1)
If sZeichen >= "0" And sZeichen 


Gruß Peter

Anzeige
AW: Makro Namen ersetzten
16.12.2008 18:17:00
Christian
hallo peter,
danke funktioniert super bis auf es soll die Auftragsnummern die mit L anfangen (bsp. L001993) so übernehmen mit /10 am ende (immer)
im moment macht das makro bei den L nummern folgendes daraus: 00.1993/10 und das ist noch falsch...
wenn du mir da noch helfen könntest....
mfg christian
AW: Makro Namen ersetzten
16.12.2008 21:25:49
Peter
Hallo Christian,
wenn die Lager-Nummern unverändert bleiben sollen, dann so:
Option Explicit

Public Sub Auftragsnummer()
Dim lZeile   As Long
Dim iLaenge  As Integer
Dim sZeichen As String
Dim Ziffern  As String
Dim sAusgabe As String
With ThisWorkbook.Worksheets("Tabelle1") ' den Tabellenblattnamen ggf. anpassen !
For lZeile = 1 To .Cells(Rows.Count, 2).End(xlUp).Row
If Left(.Cells(lZeile, 2).Value, 1) = "L" Then
sAusgabe = .Cells(lZeile, 2).Value
Else
For iLaenge = 1 To Len(.Cells(lZeile, 2).Value)
sZeichen = Mid(.Cells(lZeile, 2).Value, iLaenge, 1)
If sZeichen >= "0" And sZeichen 


Gruß Peter

Anzeige
AW: Makro Namen ersetzten
16.12.2008 21:38:46
Peter
Hallo Christian,
sollen die L-Nummern immer mit /10 enden, dann so:
Option Explicit

Public Sub Auftragsnummer()
Dim lZeile   As Long
Dim iStrich  As Integer
Dim iLaenge  As Integer
Dim sZeichen As String
Dim Ziffern  As String
Dim sAusgabe As String
With ThisWorkbook.Worksheets("Tabelle1") ' den Tabellenblattnamen ggf. anpassen !
For lZeile = 1 To .Cells(Rows.Count, 2).End(xlUp).Row
If Left(.Cells(lZeile, 2).Value, 1) = "L" Then
iStrich = InStr(.Cells(lZeile, 2).Value, "/")
If iStrich = 0 Then
sAusgabe = .Cells(lZeile, 2).Value & "/10"
Else
sAusgabe = Left(.Cells(lZeile, 2).Value, iStrich - 1) & "/10"
End If
Else
For iLaenge = 1 To Len(.Cells(lZeile, 2).Value)
sZeichen = Mid(.Cells(lZeile, 2).Value, iLaenge, 1)
If sZeichen >= "0" And sZeichen 


Gruß Peter

Anzeige
Danke
16.12.2008 21:49:00
Christian
vielen vielen dank für deine hilfe hast mich gerettet ;-) das mit der /10 hab ich sogar selber noch geschaft!!
danke nochmal
gruß christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige