Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1676to1680
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

VBA Problematik Argument nicht optional

VBA Problematik Argument nicht optional
18.02.2019 08:50:03
MaxT
Hallo,
Ich bin neu hier und nicht sehr vba versiert...
Ich habe die ehrenvolle Aufgabe eine bestehende xls umzuarbeiten. Diese hat ein ehemaliger Praktikant erstellt und nun sind einige Änderungen eingeflossen, die ich gro
Grobe Fakten: die Liste enthält verschiedene Werkzeug-Daten. Um ein Werkzeug nach Spezifikation suchen zu können gibt es eine nette Eingabe-Maske über die man per Dropdown auswählt, was man sucht (bspw. 3/8" auf T40 mit 90er Länge).
Beim Aufruf dieser Funktion steigt aber nun Excel mit der Fehlermeldung: Argument nicht optional aus. Ein debuggen lief bis jetzt schief.
Markiert wird in diesem Aufruf

'Textboxen füllen
Select Case j
Case 1:
BeschriftungFeld = Worksheets(TabellenblattName).Cells(i,  _
ArtikelnrSpalte).Value
Case 2:
If NummerErkennen(Worksheets(TabellenblattName).Cells(i,  _
ArtikelnrSpalte).Value, Zeile, Blatt) = True Then
Call BuchungsdatenErkennen(Zeile, Blatt, fach, Bezeichnung,   _
_
_
_
_
_
_
_
_
Bestand, Werkzeugart)
BeschriftungFeld = fach
Else
BeschriftungFeld = "-"
End If
Case 3:
BeschriftungFeld = Worksheets(TabellenblattName).Cells(i,  _
AntriebsSpalte).Value
Case 4:
BeschriftungFeld = Worksheets(TabellenblattName).Cells(i,  _
AbtriebsSpalte).Value
Case 5:
BeschriftungFeld = Worksheets(TabellenblattName).Cells(i, LaengenSpalte) _
_
_
_
_
_
_
_
_
.Value
Case 6:
If Sonderwerkzeug = 1 Then
BeschriftungFeld = Worksheets(TabellenblattName).Cells(i,  _
LackschutzSpalte).Value
Else
BeschriftungFeld = ""
End If
Case 7:
Select Case Sonderwerkzeug
Case 1:
BeschriftungFeld = Worksheets(TabellenblattName).Cells(i,  _
MagnetSpalte).Value
Case 0:
If InStr(Worksheets(TabellenblattName).Cells(i,  _
SpalteVerbrauchBesonderheit), "magnetisch") > 0 Then
BeschriftungFeld = "x"
Else
BeschriftungFeld = ""
End If
End Select
Case 8:
If NummerErkennen(Worksheets(TabellenblattName).Cells(i,  _
ArtikelnrSpalte).Value, Zeile, Blatt) = True Then
BeschriftungFeld = Bestand
Else
BeschriftungFeld = "-"
End If
Case 9:
If Sonderwerkzeug = 0 Then
If Worksheets(TabellenblattName).Cells(i,  _
SpalteVerbrauchBesonderheit).Value  "" Then
BeschriftungFeld = Worksheets(TabellenblattName).Cells(i,  _
SpalteVerbrauchBesonderheit).Value
Else
BeschriftungFeld = "-"
End If
Else
BeschriftungFeld = "-"
End If
End Select
Set txtB1 = UF_WzFindenNachSpezifikation.Frame2.Controls.Add("Forms.TextBox.1")
With txtB1
.Name = "TextBox" & AnzahlErgebnisse & j
.Height = 18
.Width = Breite
.Left = Links
.Top = AnzahlErgebnisse * 24
.Locked = True
.Text = BeschriftungFeld
.TextAlign = 2
End With
Next j
End If
Next i

Die aufgerufene Funktion lautet:

Public Function BuchungsdatenErkennen(Zeile As Integer, Blatt As Integer, fach As String,  _
Bezeichnung As String, Bestand As Integer, Werkzeugart As String, Artikelnummer As String)       _
_
_
_
_
_
_
_
'Funktion bekommt die Zeile und das Tabellenblatt des Werkzeuges übergeben und gibt alle benö  _
_
_
_
_
_
_
tigten Daten aus!
Select Case Blatt
Case 1:
fach = Worksheets("Ekatec Werkzeug").Cells(Zeile, SpalteEkaTecFach).Value
Bezeichnung = "-"
Artikelnummer = Worksheets("Ekatec Werkzeug").Cells(Zeile, SpalteEkaTecArtikelnr).   _
_
_
_
_
_
_
_
_
Value
Bestand = Worksheets("Ekatec Werkzeug").Cells(Zeile, SpalteEkaTecBestand).Value
Werkzeugart = "EkaTec"
Case 2:
fach = Worksheets("Verbrauchswerkzeug").Cells(Zeile, SpalteVerbrauchFach).Value
Bezeichnung = Worksheets("Verbrauchswerkzeug").Cells(Zeile,  _
SpalteVerbrauchBezeichnung).Value
Bestand = Worksheets("Verbrauchswerkzeug").Cells(Zeile, SpalteVerbrauchBestand). _
Value
Werkzeugart = "Verbrauchswerkzeug"
Case 3:
fach = 0
Bezeichnung = Worksheets("Akkus").Cells(Zeile, SpalteAkkuBezeichnung).Value & " - "  _
_
_
_
_
_
_
_
_
& Worksheets("Akkus").Cells(Zeile, SpalteAkkuMaterialnummer).Value
Bestand = Worksheets("Akkus").Cells(Zeile, SpalteAkkuBestand).Value
Werkzeugart = "Akku"
End Select
End Function

Ich lande immer wieder bei Argument nicht optional, auch wenn ich als optional definiere oder als ByVal.
Eventuell sieht ja hier einer eher durch als ich. Falls Bedarf besteht, kann ich auch gern die xls zukommen lassen. Ist wahrscheinlich leichter als mit den Codefetzen hier.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Problematik Argument nicht optional
18.02.2019 09:08:38
PeterK
Hallo
BuchungsdatenErkennen erfordert 7 Parameter, Du übergibst aber nur 6
AW: VBA Problematik Argument nicht optional
18.02.2019 09:30:32
MaxT
Uff. Manchmal sieht man den Baum vor lauter Wäldern nicht.
Vielen Dank.
Anzeige

33 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige