Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Überprüfen Wenn ...... dann.....

Frage Entwicklung VB for Applications

Mitglied: CJackson

CJackson (Level 1) - Jetzt verbinden

05.02.2008, aktualisiert 08.02.2008, 4317 Aufrufe, 10 Kommentare

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
Mitglied: CJackson
05.02.2008 um 13:09 Uhr
Sollte dringend Hilfe kriegen. Kann mir denn niemand hierbei helfen?

Danke schon einmal im Voraus.

Mit freundlichen Grüßen CJACKSON
Bitte warten ..
Mitglied: SvenGuenter
05.02.2008 um 13:46 Uhr
Benutze mal die Boardsuche. Ich bin mir sicher das so ein Problem hier schonmal beschrieben wurde udn ich sogar dazu eine Lösung geschrieben hatte.


Gruß

Sven Günter
Bitte warten ..
Mitglied: SvenGuenter
05.02.2008 um 14:11 Uhr
01.
'Es muss eine Schaltfläche mit Namen Schaltfläche_1 eingefügt werden. 
02.
 
03.
Option Explicit 
04.
 
05.
 
06.
Sub Schaltfläche1_BeiKlick() 
07.
 
08.
Dim reihe As Integer 
09.
Dim spalte As Integer 
10.
 
11.
reihe = 1 
12.
spalte = 1 
13.
 
14.
While Not (Tabelle1.Cells(reihe, spalte)) = "" 
15.
 
16.
 
17.
Tabelle2.Cells(reihe, 1) = Tabelle1.Cells(reihe, 3) 
18.
Tabelle2.Cells(reihe, 2) = Tabelle1.Cells(reihe, 9) 
19.
Tabelle2.Cells(reihe, 3) = Tabelle1.Cells(reihe, 10) 
20.
Tabelle2.Cells(reihe, 4) = Tabelle1.Cells(reihe, 11) 
21.
'Statt blech kann man auch auf eine Axcelzelle oder auf ein Textfeld verweisen. Bspl  
22.
'Tabelle2.Cells(1,15) Nur zur Erläuterung am Rande die erste zahl gibt die Reihe und die zweite  
23.
'Zahl die spalte des Excelsheets wieder. 
24.
 
25.
If InStr(Tabelle2.Cells(reihe, 2), "blech") Then 
26.
Tabelle2.Cells(reihe, 6) = "+" 
27.
Else 
28.
Tabelle2.Cells(reihe, 6) = "-" 
29.
End If 
30.
 
31.
 
32.
reihe = reihe + 1 
33.
Wend 
34.
End Sub 
35.
'Es muss natürlich der Name Tabelle1 und Tabelle2 an die entprechenden Dokumente die bei  
36.
'einem vorhanden sind angepasst werden 
37.
 
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
Bitte warten ..
Mitglied: CJackson
05.02.2008 um 18:18 Uhr
01.
> If InStr(Tabelle2.Cells(reihe, 2), 
02.
> "blech") Then 
03.
> Tabelle2.Cells(reihe, 6) = "+" 
04.
> Else 
05.
> Tabelle2.Cells(reihe, 6) = "-" 
06.
> End If 
07.
>  
08.
>  
09.
> reihe = reihe + 1 
10.
> Wend 
11.
> End Sub 
12.
> 

ah ok das funktioniert ja wunderbar. Dankeschön!!!

Gibt es auch die Möglichkeit nur gezielt nach dem Wort/ Schreibweise "BLECH" zu suchen bsp. Blech soll stehen bleiben BLECH aber net?

gibts ne Möglichkeit nach mehreren Sachen zu suchen?
in einer Zeile oder muss ich dafür jeweils eine neue Bedingung aufmachen?

Mit freundlichen Grüßen CJACKSON
Bitte warten ..
Mitglied: bastla
05.02.2008 um 19:54 Uhr
Hallo CJackson!

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:
01.
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:
01.
Set regAusdr = CreateObject("VBScript.RegExp") 
02.
regAusdr.Pattern = "Holz|HOLZ|Blech|BLECH" 
03.
regAusdr.IgnoreCase = False 
04.
regAusdr.Global = False 
05.
If regAusdr.Test(Tabelle2.Cells(reihe, 2).Value) Then
So kannst Du dann auch Deine "Zeichnungsnr." finden - dazu ist nur die "Pattern"-Zeile auf
01.
regAusdr.Pattern = "\d{9,9} \d{3,3}"
zu ändern.

Grüße
bastla
Bitte warten ..
Mitglied: CJackson
05.02.2008 um 20:03 Uhr
hi Bastla du mal wieder ist echt nett. Thx hat funktioniert. Wo kann man denn so etwas lernen?

regAusdr.Pattern = "\d{9,9} \d{3,3}"

Wofür stehen heir die \d´s 9,9 sagt Neun Char aber wie kann ich das format festlegen?

Bin grad a bissl Planlos.

Mit freundlichen Grüßen CJACKSON
Bitte warten ..
Mitglied: bastla
05.02.2008 um 20:11 Uhr
Hallo CJackson!

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
Bitte warten ..
Mitglied: CJackson
05.02.2008 um 20:16 Uhr
ah ok thx wunderbar dann kan n ich mich selbst mal n bissl schlau machen. Sollte ich nochmal etwas haben meld ich mich bei dir thx.
Bitte warten ..
Mitglied: CJackson
08.02.2008 um 08:17 Uhr
So weit hat alles funktioniert, hab alles für unsere Wünsche abgeändert. Nun sollte ich noch wissen ob es die möglichkeit gibt zu sagen: z.B. wenn..... dann "+" in Spalte 6 aber erst ab Zeile 2? damit meine Überschrift nicht Überschrieben wird.

Oder noch Besser n makro, welches eine Zeile am Anfang hinzufügt und gleich die Zellen befüllt.

Lg Jackson
Bitte warten ..
Mitglied: CJackson
08.02.2008 um 08:19 Uhr
hat sich erledigt habs gefunden. Einfach den Wert reihe = 2 am Anfang.
Lg Jackson
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...