Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

nicht vorhandenen Wert suchen erzeugt Laufzeitfehl

Betrifft: nicht vorhandenen Wert suchen erzeugt Laufzeitfehl von: kreiseltaucher
Geschrieben am: 10.09.2014 13:12:35

Hallo Zusammen
ich brauche mal wieder eure Hilfe. Mit unten stehendem Makro suche ich einen Wert in dem Exel Blatt "Bestand". Der Wert wird im Blatt "Aufträge Umsätze eingeben" "B23" eingegeben. Wenn der gesuchte Wert vorhanden ist, ist alles prima und das Makro läuft durch. Wenn der Wert nicht gefunden wird, wird Laufzeitfehler 9 erzeugt. Wie kann ich den Laufzeitfehler verhindern ?

Gruss Peter

Sub Auftrag_abrechnen()

Dim Suchbegriff As String
Dim Dropdown As String
Dim Namenspalte As String

Zeile = 0

Stammdatensheet = "Bestand"
Bearbeitungssheet = "Aufträge Umsätze eingeben"
Dropdown = "B23"
Namenspalte = "F:F"

Suchbegriff = ThisWorkbook.Sheets(Bearbeitungssheet).Range(Dropdown).Value  'Holt den ausgewä _
hlten Wert aus dem Dropdownfeld

If IsNumeric(Suchbegriff) Then
    Zeile = WorksheetFunction.Match(--Suchbegriff, Sheets(Stammdatensheet).Range(Namenspalte),  _
0) 'Ermittelt die Zeile, wo der Name steht
Else
    Zeile = WorksheetFunction.Match(Suchbegriff, Sheets(Stammdatensheet).Range(Namenspalte), 0)  _
'Ermittelt die Zeile, wo der Name steht
End If

Call Zeileholen_für_Abrechnung


End Sub

  

Betrifft: AW: nicht vorhandenen Wert suchen erzeugt Laufzeitfehl von: Hajo_Zi
Geschrieben am: 10.09.2014 13:15:06

if Zeile <>0Then
Zeileholen_für_Abrechnung
End if

GrußformelHomepage


  

Betrifft: AW: nicht vorhandenen Wert suchen erzeugt Laufzeitfehl von: Rudi Maintaire
Geschrieben am: 10.09.2014 13:20:12

Hallo,

Option Explicit

Public Zeile As Variant

Sub Auftrag_abrechnen()
 
  Dim Suchbegriff As String
  Dim Dropdown As String
  Dim Namenspalte As String
  
  Zeile = 0
  
  Stammdatensheet = "Bestand"
  Bearbeitungssheet = "Aufträge Umsätze eingeben"
  Dropdown = "B23"
  Namenspalte = "F:F"
  
  Suchbegriff = ThisWorkbook.Sheets(Bearbeitungssheet).Range(Dropdown).Value  'Holt den ausgewä  _
_
  hlten Wert aus dem Dropdownfeld
  
  If IsNumeric(Suchbegriff) Then
      Zeile = Application.Match(--Suchbegriff, Sheets(Stammdatensheet).Range(Namenspalte), 0)    _
'Ermittelt die Zeile, wo der Name steht
  Else
      Zeile = Application.Match(Suchbegriff, Sheets(Stammdatensheet).Range(Namenspalte), 0)   ' _
Ermittelt die Zeile, wo der Name steht
  End If
  If Not IsError(Zeile) Then
    Call Zeileholen_für_Abrechnung
  End If
 
End Sub

Gruß
Rudi


  

Betrifft: AW: nicht vorhandenen Wert suchen erzeugt Laufzeitfehl von: Daniel
Geschrieben am: 10.09.2014 13:37:43

Hi

wenn man MATCH oder auch VLOOPUP mit der option "genaue Übereinstimmung in unsortierten Daten" (letzer Parameter = 0) verwendet, dann ist es günstiger, die .FIND-Funktion stattdessen zu verwenden:

dim Zeile as Long
dim Zelle as Range
Set Zelle = Zeile = Sheets(Stammdatensheet).Range(Namenspalte).Find(what:=Suchbegriff, LookAt=  _
_
xlwhole, LookIn:=xlvalues)
If Zelle is Nothing then
    Msgbox "Begriff nicht vorhanden"
Else
   Zeile = Zelle.Row - Range(Namensspalte).Row + 1
End If 

oder man verwendet Application.Match, welches bei einem Fehler nicht abbricht, wenn die _ aufnehmende Variable vom Typ "Variant" ist:
dim Zeile as Variant
Zeile = Application.Match(Suchbegriff, Sheets(Stammdatensheet).Range(Namenspalte), 0)
If VarType(Zeile) = vbError Then
    Msgbox "nicht gefunden"
end if

Gruß Daniel


  

Betrifft: AW: nicht vorhandenen Wert suchen erzeugt Laufzeitfehl von: kreiseltaucher
Geschrieben am: 10.09.2014 20:00:23

Hallo Zusammen
erst einmal herzlichen Dank für eure Antworten. Ich eure Vorschläge morgen mal ausprobieren, melde mich dann wieder
Gruss Peter


  

Betrifft: AW: nicht vorhandenen Wert suchen erzeugt Laufzeitfehl von: kreiseltaucher
Geschrieben am: 11.09.2014 12:07:27

Also ich hab jetzt mal alles ausprobiert, leider funktioniert keiner eurer Vorschläge. Es kommt immer entweder Laufzeitfehler oder Fehler beim Kompilieren. Unten mal ein Beispiel

Fehler beim Kompilieren Variablen nicht definiert
Namensspalte ist markiert ( siehe FETT KURSIV )

Sub Auftrag_abrechnen()

Dim Suchbegriff As String
Dim Dropdown As String
Dim Namenspalte As String
Dim Zeile As Long
Dim Zelle As Range

Zeile = 0

Stammdatensheet = "Bestand"
Bearbeitungssheet = "Aufträge Umsätze eingeben"
Dropdown = "B23"
Namenspalte = "F:F"


Set Zelle = Zeile = Sheets(Stammdatensheet).Range(Namenspalte).Find(what:=Suchbegriff, LookAt:= _
xlWhole, LookIn:=xlValues)
If Zelle Is Nothing Then
    MsgBox "Begriff nicht vorhanden"
Else
   Zeile = Zelle.Row - Range(Namensspalte).Row + 1
End If

Call Zeileholen_für_Abrechnung


End Sub



  

Betrifft: AW: nicht vorhandenen Wert suchen erzeugt Laufzeitfehl von: Daniel
Geschrieben am: 11.09.2014 13:10:48

Hi
schreib einfach nur:

Set Zelle = Sheets(Stammdatensheet....
die "Namensspalte" wird dir angemeckert, weil du sie nicht deklariert hast.
Deklariert hast eine ganz andere Variable nämlich die "Namenspalte"

ich stell beide Begriffe nochmal direkt untereinander, dann sollte dir der unterschied auffallen:
Namensspalte
Namenspalte
Gruß Daniel


  

Betrifft: AW: nicht vorhandenen Wert suchen erzeugt Laufzeitfehl von: kreiseltaucher
Geschrieben am: 12.09.2014 10:46:39

Oh man bin ich blind .... Danke

aber es läuft trotzdem nicht, jetzt kommt Laufzeitfehler 424 und die Zeile "Set Zelle" ist gelb markiert

Gruss Peter


  

Betrifft: AW: nicht vorhandenen Wert suchen erzeugt Laufzeitfehl von: Daniel
Geschrieben am: 12.09.2014 10:59:36

Hi
hast du alle Korreturen, die ich in meinem Beitrag beschrieben habe ausgeführt?
da war nicht nur das mit der Variablen
gruß Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "nicht vorhandenen Wert suchen erzeugt Laufzeitfehl"