Überprüfen Wenn ...... dann.....
Hallo, habe folgendes Problem ich bekomme als Rohdatei eine .xls mit mehreren Spalten.
Als erstes sollen nur die Spalten C,I,J,K stehen bleiben der Rest wird nicht benötigt.
sprich Spalte:
C-> A
I-> B
J-> C
K-> D
2. Nun sind Artikelnummern noch mehrfach vorhanden, dies sollen so überprüft werden, dass wenn der Inhalt aus Spalte A-E identisch mit einer folgenden sind, diese Artikelposition nur einmal auftaucht.
3. Sollte ich ein Makro haben, das überprüft, ob in einer Spalte z.B. 'B2' das Suchwort "*Blech*" enthalten ist, wenn ja dann soll in 'F2' ein x stehen ansonsten '-'.
4. Ein Makro, welches aus Spalte B, alle Positionen löscht die das Suchwort "*Bogen*" enthalten.
Gibt es eine Möglichkeit nach einer bestimmten Formatierung zu suchen z.B. Zeichnungsnr. 933602305 000 sprich 9 Zahlen blank 3 Zahlen? vor und hinter dieser Zahl können aber noch Textelemente stehen.
Bin für jede Hilfe dankbar. Eine kompl. Lösung wäre ganz nett, aber einzelne Sachen können mir auch schon weiterhelfen.
Mit freundlichen Grüßen
CJACKSON
Als erstes sollen nur die Spalten C,I,J,K stehen bleiben der Rest wird nicht benötigt.
sprich Spalte:
C-> A
I-> B
J-> C
K-> D
2. Nun sind Artikelnummern noch mehrfach vorhanden, dies sollen so überprüft werden, dass wenn der Inhalt aus Spalte A-E identisch mit einer folgenden sind, diese Artikelposition nur einmal auftaucht.
3. Sollte ich ein Makro haben, das überprüft, ob in einer Spalte z.B. 'B2' das Suchwort "*Blech*" enthalten ist, wenn ja dann soll in 'F2' ein x stehen ansonsten '-'.
4. Ein Makro, welches aus Spalte B, alle Positionen löscht die das Suchwort "*Bogen*" enthalten.
Gibt es eine Möglichkeit nach einer bestimmten Formatierung zu suchen z.B. Zeichnungsnr. 933602305 000 sprich 9 Zahlen blank 3 Zahlen? vor und hinter dieser Zahl können aber noch Textelemente stehen.
Bin für jede Hilfe dankbar. Eine kompl. Lösung wäre ganz nett, aber einzelne Sachen können mir auch schon weiterhelfen.
Mit freundlichen Grüßen
CJACKSON
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 79913
Url: https://administrator.de/contentid/79913
Ausgedruckt am: 26.11.2024 um 05:11 Uhr
10 Kommentare
Neuester Kommentar
'Es muss eine Schaltfläche mit Namen Schaltfläche_1 eingefügt werden.
Option Explicit
Sub Schaltfläche1_BeiKlick()
Dim reihe As Integer
Dim spalte As Integer
reihe = 1
spalte = 1
While Not (Tabelle1.Cells(reihe, spalte)) = ""
Tabelle2.Cells(reihe, 1) = Tabelle1.Cells(reihe, 3)
Tabelle2.Cells(reihe, 2) = Tabelle1.Cells(reihe, 9)
Tabelle2.Cells(reihe, 3) = Tabelle1.Cells(reihe, 10)
Tabelle2.Cells(reihe, 4) = Tabelle1.Cells(reihe, 11)
'Statt blech kann man auch auf eine Axcelzelle oder auf ein Textfeld verweisen. Bspl
'Tabelle2.Cells(1,15) Nur zur Erläuterung am Rande die erste zahl gibt die Reihe und die zweite
'Zahl die spalte des Excelsheets wieder.
If InStr(Tabelle2.Cells(reihe, 2), "blech") Then
Tabelle2.Cells(reihe, 6) = "+"
Else
Tabelle2.Cells(reihe, 6) = "-"
End If
reihe = reihe + 1
Wend
End Sub
'Es muss natürlich der Name Tabelle1 und Tabelle2 an die entprechenden Dokumente die bei
'einem vorhanden sind angepasst werden
Das schreibt dir schonmal die Daten aus der einen in die andere Zelle.
Wenn du nun nach begriffen suchen willst machst du DIr noch eine Textbox und durchläufst deine Zellen und suchst nach dem Ausdruck den du haben willst.
Die funktion checkt auch schon nach Blech. Du kannst das auch über ein Textfeld dynamisch machen. Den Rest wirst du wohl alleine hinbekommen oder?
Gruß
Sven
Hallo CJackson!
So kannst Du dann auch Deine "Zeichnungsnr." finden - dazu ist nur die "Pattern"-Zeile auf
zu ändern.
Grüße
bastla
nur gezielt nach dem Wort/ Schreibweise "BLECH" zu suchen bsp. Blech soll stehen bleiben BLECH aber net?
Sollte eigentlich ohnehin unterschieden werden - wenn Du ganz auf Nummer sicher gehen willst:If InStr(1, Tabelle2.Cells(reihe, 2), "BLECH", 0) Then
gibts ne Möglichkeit nach mehreren Sachen zu suchen? in einer Zeile oder muss ich dafür jeweils eine neue Bedingung aufmachen?
In diesem Fall könntest Du auf die RegEx-Suche ausweichen:Set regAusdr = CreateObject("VBScript.RegExp")
regAusdr.Pattern = "Holz|HOLZ|Blech|BLECH"
regAusdr.IgnoreCase = False
regAusdr.Global = False
If regAusdr.Test(Tabelle2.Cells(reihe, 2).Value) Then
regAusdr.Pattern = "\d{9,9} \d{3,3}"
Grüße
bastla
Hallo CJackson!
"\d" steht für eine Ziffer (findest Du auch in der verlinkten Aufstellung).
Grüße
bastla
Wo kann man denn so etwas lernen?
Nachschlagen zumindest zB hier (bzw original in der VBScript-Doku bei MS) ..."\d" steht für eine Ziffer (findest Du auch in der verlinkten Aufstellung).
Grüße
bastla