Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1068to1072
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

Ab letztem Wert weiterzählen

Ab letztem Wert weiterzählen
16.04.2009 12:40:52
Manuel
Hallo zusammen,
ich habe eine große 5000 Zeilen lange und 46 Spalten breite Excel-Liste mit Artikeldaten usw. Jetzt habe ich mir ein UserForm gebastelt womit ich neue Artikel eingebe. Dabei hatte ich die glorreiche Idee, wenn ich im Feld für die Artikelnummer den Text einzugeben, dass er mir beim "Change-Ereignis" schon Vorschläge macht und das Userform entsprechend ausfüllt. Mein Problem ist nun, dass er jedesmal bei Zeile 2 wieder anfängt nach ähnlichkeiten zu suchen und das ziemlich viel Zeit in Anspruch nimmt.

Private Sub ComboBox5_Change()
'Überprüft die Zeichenlänge im Feld "Artikelnummer".
CB5 = ComboBox5.Value 'Artikelnummer
Dim i As Integer
If Len(ComboBox5.Text) > 25 Then GoTo Ueberlaenge
Me.CommandButton3.Enabled = True
Worksheets("Einzelteile").Activate
For nZaehler1 = 2 To 8000
Range("B" & Trim(Str(nZaehler1))).Select
If ActiveCell.Value = CB5 = True Then GoTo Ausfüllen
Next nZaehler1
Exit Sub
Ausfüllen:
ComboBox3.Style = fmStyleDropDownCombo
ComboBox4.Style = fmStyleDropDownCombo
TextBox4.Enabled = True
Worksheets("Einzelteile").Activate
Range("C" & Trim(Str(nZaehler1))).Select
Me.TextBox2 = ActiveCell.Value
Range("D" & Trim(Str(nZaehler1))).Select
Me.TextBox3 = ActiveCell.Value
Range("E" & Trim(Str(nZaehler1))).Select
Me.ComboBox1 = ActiveCell.Value
Worksheets("Einzelteile").Activate
Range("F" & Trim(Str(nZaehler1))).Select
Me.ComboBox2 = ActiveCell.Value
Range("H" & Trim(Str(nZaehler1))).Select
Me.ComboBox3 = ActiveCell.Value
Worksheets("Einzelteile").Activate
Range("K" & Trim(Str(nZaehler1))).Select
Me.TextBox5 = ActiveCell.Value
Range("L" & Trim(Str(nZaehler1))).Select
Me.TextBox6 = ActiveCell.Value
Range("M" & Trim(Str(nZaehler1))).Select
Me.TextBox7 = ActiveCell.Value
Range("P" & Trim(Str(nZaehler1))).Select
Me.ComboBox4 = ActiveCell.Value
Range("AD" & Trim(Str(nZaehler1))).Select
Me.TextBox8 = ActiveCell.Value
Range("AH" & Trim(Str(nZaehler1))). _
Select
Me.TextBox9 = ActiveCell.Value
Range("AI" & Trim(Str(nZaehler1))). _
Select
Me.TextBox10 = ActiveCell.Value
Range("AJ" & Trim(Str(nZaehler1) _
)).Select
Me.TextBox11 = ActiveCell.Value
Range("AM" & Trim(Str( _
nZaehler1))).Select
Me.TextBox12 = ActiveCell. _
Value
Range("AP" & Trim(Str( _
nZaehler1))).Select
Me.TextBox13 =  _
ActiveCell.Value
Range("AQ" & Trim( _
Str(nZaehler1))).Select
Me.TextBox14 =  _
ActiveCell.Value
Range("AR" &   _
Trim(Str(nZaehler1))).Select
Me.TextBox15 =  _
ActiveCell.Value
TextBox4.Enabled =  _
False
If CB5 = "" = False  _
Then GoTo Ändern
Exit Sub
Ändern:
CB1 = ComboBox1.Value 'Produktnummer
CB2 = ComboBox2.Value 'Unternummer
CB3 = ComboBox3.Value 'Herstellerlangname
CB4 = ComboBox4.Value 'Montageort
ComboBox3.Style = fmStyleDropDownCombo
ComboBox4.Style = fmStyleDropDownCombo
Dim h As Variant
h = CB2
If CB1 = "0" Then Me.ComboBox1 = "Allgemeine"
If CB1 = "1" Then Me.ComboBox1 = "Relais , Schütze"
If CB1 = "2" Then Me.ComboBox1 = "Klemmen"
If CB1 = "3" Then Me.ComboBox1 = "Stecker"
If CB1 = "4" Then Me.ComboBox1 = "Umsetzer"
If CB1 = "5" Then Me.ComboBox1 = "Schutzeinrichtungen"
If CB1 = "6" Then Me.ComboBox1 = "Röhren,  _
Halbleiter"
If CB1 = "7" Then Me.ComboBox1 = "  _
Meldeeinrichtungen"
If CB1 = "8" Then Me.ComboBox1 = "Motoren"
If CB1 = "9" Then Me.ComboBox1 = " _
Messgeräte , Prüfeinrichtungen"
If CB1 = "10" Then Me.ComboBox1 = " _
Widerstände"
If CB1 = "11" Then Me.ComboBox1  _
= "Schalter , Wähler"
If CB1 = "12" Then Me. _
ComboBox1 = "Transformatoren"
If CB1 = "13" Then Me. _
ComboBox1 = "Modulatoren"
If CB1 = "14" Then Me.ComboBox1 = _
"El.Betat.mech.Einrichtungen"
If CB1 = "15" Then Me.ComboBox1 = " _
Sonderbauteile"
If CB1 = "16" Then Me.ComboBox1 = " _
Verschiedenes"
If CB1 = "17" Then Me.ComboBox1 = " _
Kondensatoren"
If CB1 = "18" Then Me.ComboBox1 = "Digitale  _
Elemente"
If CB1 = "19" Then Me.ComboBox1 = "Generatoren,  _
Stromversorgungen"
If CB1 = "20" Then Me.ComboBox1 = "Induktivitäten"
If CB1 = "21" Then Me.ComboBox1 = "Verstärker , Regler"
If CB1 = "22" Then Me.ComboBox1 = "Starkstrom -Schaltgeräte" _
_
If CB1 = "23" Then Me.ComboBox1 = "Abschlüsse , Filter"
If CB1 = "24" Then Me.ComboBox1 = "Übertragungswege"
'Ändert die Felder der Untergruppe vom ausgeschriebenem Text in Zahlen für den   _
_
Import.
If h = "0" Then Me.ComboBox2 = "Allgemeine"
If h = "40" Then Me.ComboBox2 = "Klemme"
If h = "41" Then Me.ComboBox2 = "Tragschiene"
If h = "42" Then Me.ComboBox2 = "Endwinkel"
If h = "51" Then Me.ComboBox2 = "Klemmenschild"
If h = "52" Then Me.ComboBox2 = "Weitere Schilder"
If h = "53" Then Me.ComboBox2 = "Leistenschild"
If h = "61" Then Me.ComboBox2 = "Querverbinder"
If h = "63" Then Me.ComboBox2 = "Schienen"
If h = "71" Then Me.ComboBox2 = "  _
Abdeckung"
If h = "72" Then Me.ComboBox2 = "Abschluß"
If h = "73" Then Me.ComboBox2 = "Trennwand"
If h = "81" Then Me.ComboBox2 = "Steckergehäuse"
If h = "82" Then Me.ComboBox2 = "Steckerzubehör"
If h = "91" Then Me.ComboBox2 = "Werkzeug"
If h = "92" Then Me.ComboBox2 = "Testzubehör"
If h = "11" Then Me.ComboBox2 = "Schütze"
If h = "21" Then Me.ComboBox2 = "Hilfsblock"
If h = "" Then Else
'Ändert die Felder des Montageorts vom ausgeschriebenem Text in Zahlen für den  _
Import.
If CB4 = "1" Then Me.ComboBox4 = "Montageplatte"
If CB4 = "2" Then Me.ComboBox4 = "Schwenkrahmen"
If CB4 = "3" Then Me.ComboBox4 = "Tür"
If CB4 = "4" Then Me.ComboBox4 = "Seitenteil"
If CB4 = "5" Then Me.ComboBox4 = "Dach"
If CB4 = "6" Then Me.ComboBox4 = "Nicht definiert"
ComboBox3.Style = fmStyleDropDownList
ComboBox4.Style = fmStyleDropDownList
Exit Sub
Ueberlaenge:
i = MsgBox("Die Textlänge der Artikelnummer ist auf 25 begrenzt!", 1 + vbOKOnly, "")
Me.CommandButton3.Enabled = False
End Sub


1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Du meinst doch nicht wirklich, dass sich da...
16.04.2009 22:25:30
Luc:-?
...einer durchwühlt, Manuel...?!
Nur soviel als Tipps:
1. Deine _Change-Proz startet in der For...Next-Schleife immer mit nZaehler1 = 2 To 8000. Da das die Zeilennr zu sein scheint, solltest du mit einer Static-Variablen arbeiten. Die behält ihren Wert zwischen den Aufrufen der Proz. Ob du nun Static nZaehler1 As Long deklarierst, hier hast du diese Variable wohl überhpt nicht deklariert, oder eine zusätzl Variable einführst, die immer auf den aktuellen Stand gebracht wdn muss (bspw Static aktZeile As Long ... nZaehler1 = aktZeile To 8000, ist deine Sache...
Achtung! Static-Variablen verlieren erst mit dem Ende einer xlSitzung ihren Wert; es sei denn, man löscht ihn zwischenzeitlich.
2. Select ist in aller Regel verzichtbar! Spart auch Zeit.
3. Alle Variablen sollten deklariert wdn (am PgmAnfang). Dazu im VBE-Menü Extras - Optionen - Editor Variablendeklaration erforderlich anhaken. Dann fängt jedes (neue) Modul stets mit Option Explicit an, was dazu führt, dass jede undeklarierte Variable automatisch "angemeckert" wird.
Viel Erfolg! Luc :-?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige