Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
368to372
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
368to372
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

dim wert as ????

dim wert as ????
23.01.2004 10:31:16
soulfood
Hallo miteinander.
Hab folgendes makro im excell:
Private Sub cbspeichern_Click()
Dim wert As Integer
If (Val(ufverbrauch.cbbestellnr) <> 0) And (Val(ufverbrauch.tbanzahl) > 0) Then
'Bestellnummer und Artikelanzahl sind eingegeben worden:
Range("C1").Select 'Wählt erstes Feld
Do
ActiveCell.Offset(1, 0).Select 'Ein Feld nach unten
If Val(ActiveCell.Value) = 0 Then Exit Do 'Artikel nicht gefunden: verlasse Loop
'ELSE
If Val(ActiveCell.Value) = ufverbrauch.cbbestellnr Then
'Artikel gefunden: Anzahl dazuzählen
ActiveCell.Offset(0, 3).Select 'In die F-Spalte gehen
ActiveCell.Value = Val(ActiveCell.Value) - Val(ufverbrauch.tbanzahl) 'Anzahl dazuzählen
MsgBox "Wahrenbestand des Artikels " & ufverbrauch.cbbestellnr & " ist neu: " & ActiveCell.Value, vbOKOnly
ufverbrauch.cbbestellnr = 0 'Bestellnummer löschen
ufverbrauch.tbanzahl = 0 'Mind. 0 wird geliefert!
If Val(ActiveCell.Value) <> 0 Then ActiveCell.Offset(0, 3).Select
If ActiveCell.Value < 0 Then MsgBox " Achtung von diesem Artikel gibt es weniger als im Mindestbestand vorgesehen! Bitte Bestellen Sie mindestens " & ActiveCell.Offset(0, 2).Value & " Stück, um den Mindestbestellwert einzuhalten. Danke !!! http:\\ www.XXXXXXXXXX.ch oder http:\\ www.XXXXXXXXXX.ch"
Exit Sub
End If
Loop
'Artikel nicht gefunden:
MsgBox "Bestellnummer gibt es nicht!" & vbCrLf & "Bitte überprüfen...", vbOKOnly, vbExclamation
Mein Problem ist das die Bestellnummer (cbbestellnummer" nicht aus nur logischen zahlen besteht sondern mit buchstaben (bsp. rjk-2344-sda) besteht. nun erkenndt dies das makro nicht und bringt fehler : msgbox: "Bestellnummer gibt es nicht!" & vbCrLf & "Bitte überprüfen...", vbOKOnly, vbExclamation
ich habe schon mit dim wert as variant versucht aber es gelang mir nicht. kann mir jemand helfen ?
Ich benutze excell 2000 unter win 2000
MFG
Soulfood

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

Betreff
Datum
Anwender
Anzeige
AW: dim wert as ????
23.01.2004 11:13:37
Jürgen Schaetzke
Hallo Soulfood,
Als erstes fällt mir auf, das im Codeablauf die Schleifenbedingung nicht schön programmiert ist.
Entweder solltest du die Abbruchbedingung am Anfang oder am Ende der Schleife definieren und nicht mitten im Code.
Do [{While | Until} Bedingung]
[Anweisungen]
[Exit Do]
[Anweisungen]
Loop
oder
Do
[Anweisungen]
[Exit Do]
[Anweisungen]
Loop [{While | Until} Bedingung]
Wenn du Val verwendest werden die Ziffern von links beginnend bis zum ersten nicht numerischen Zeichen eingelesen. Mit der Bestellnummer rjk-2344-sda wird also nichts gefunden. Du müsstest also deine Abfrage etwas umgestalten. Ich würde anstatt der Abfrage auf 0 die Abfrage "if ufverbrauch.cbbestellnr<>"" then" verwenden.
Und wenn du bereits weißt, das da alphanumerische Werte darin stehen, würde ich den Typ string verwenden.
Ciao Jürgen
Anzeige
AW: dim wert as ????
23.01.2004 11:28:52
Dan
Hallo, hier ein Beispiel, wie man den Wert in eine Variable von Typ Variant speichern koennte. Dann kann man sich weiter entscheiden, was fur einen Wert die VArable enthalt und was damit passieren sollte....... Gruss D.
'*************************************************************************************
Option Explicit

Private Sub cbspeichern_Click()
Dim vntWert As Variant
' vntWert = ufverbrauch.cbbestellnr ' falls :
vntWert = "rjk-2344-sda"            ' passiert 2/
' oder :
vntWert = 155                       ' passiert 1/
' oder :
vntWert = 159159159
' oder :
vntWert = 15.15
If (IsNumeric(vntWert) = True) Then
' haben eine Zahl, passiert 1/
MsgBox "Eine Zahl ..."
Else
' keine Zahl, passiert 2/
MsgBox "Keine Zahl ..."
End If
' oder man kann auch die VarType Function benutzen, um den SubType der Variant Variable
' festzustellen :
If (VarType(vntWert) = vbInteger) Then MsgBox "Subtype Integer ..."
If (VarType(vntWert) = vbLong) Then MsgBox "Subtype Long ..."
If (VarType(vntWert) = vbDouble) Then MsgBox "Subtype Double ..."
Set vntWert = Application.ActiveSheet
If (VarType(vntWert) = vbObject) Then
MsgBox "Und jetzt enthalt es Referentz an das Active Sheet Object ..." & vbCrLf & _
"Und es ist Object von Typ : " & TypeName(vntWert)
End If
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige