Probleme mit Abfrage

  • Excel

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von maybebaby.

    Probleme mit Abfrage

    Hallo ich habe ein Problem mit einer Abfrage!
    Und zwar will ich Abfragen, ob die Daten für einen Artikel, der in einer Userform eingetragen wird schon in der Tabelle vorhanden ist. Dies funktioniert auch nur ist das Problem, dass ich bei Eingabe von Weinen nicht den selben Wein mit unterschiedlichem Jahrgang eintrgaen kann. Als zusatz habe ich eine MsgBox eingefügt, die eine Fehlermeldung hervorbringen soll, wenn der Artikel der eingetragen werden soll, bereits in der Tabelle steht.
    Anbei noch der Quelltext bitte helft mir!
    Der Fett gedruckte Teil bereitet mir Probleme.

    Visual Basic-Quellcode

    1. Dim Wert1 As String: Wert1 = WaGruppe
    2. Dim Wert2 As String: Wert2 = Untergruppe
    3. Dim Wert3 As Integer: Wert3 = Jahrgang
    4. Dim Wert4 As String: Wert4 = Sorte
    5. Dim Wert5 As String: Wert5 = Qualität
    6. Dim Wert6 As String: Wert6 = Geschmack
    7. Dim Wert7 As Integer: Wert7 = Menge
    8. Dim Wert8 As String: Wert8 = Lagerort
    9. Dim Wert9 As Integer: Wert9 = Erstgenuss
    10. Dim Wert10 As Integer: Wert10 = Lagerfähigkeit
    11. Dim lngFlagName As Boolean: lngFlagName = False
    12. z = 2 'Freie Zeile ermitteln
    13. Do While Cells(z, 2) <> ""
    14. z = z + 1
    15. Loop
    16. For b = 2 To z 'Überprüfung ob Artikel bereits vorhanden?
    17. Tabelle2.Cells(b, 3).Select
    18. If (Tabelle2.Cells(b, 3) = WaGruppe.Value And Tabelle2.Cells(b, 4) = Untergruppe.Value And Tabelle2.Cells(b, 6) = Sorte And Tabelle2.Cells(b, 7) = Qualität And Tabelle2.Cells(b, 8) = Geschmack And [B]Tabelle2.Cells(b,5) = Jahrgang.Value[/B] ) Then
    19. lngFlagName = True
    20. MsgBox "Fehler: Artikel bereits Vorhanden!" 'Fehlermeldung da Artikel bereits vorhanden
    21. End If
    22. Next b
    23. If lngFlagName = False Then 'Wert(e) übertragen
    24. Tabelle2.Cells(z, 1) = Tabelle3.Cells(2, 8)
    25. Tabelle2.Cells(z, 2) = z - 1
    26. Tabelle2.Cells(z, 3) = WaGruppe.Value
    27. Tabelle2.Cells(z, 4) = Untergruppe.Value
    28. Tabelle2.Cells(z, 5) = Jahrgang.Value
    29. Tabelle2.Cells(z, 6) = Sorte.Value
    30. Tabelle2.Cells(z, 7) = Qualität.Value
    31. Tabelle2.Cells(z, 8) = Geschmack.Value
    32. Tabelle2.Cells(z, 9) = Menge.Value
    33. Tabelle2.Cells(z, 10) = Lagerort.Value
    34. Tabelle2.Cells(z, 11) = Erstgenuss.Value
    35. Tabelle2.Cells(z, 12) = Lagerfähigkeit.Value
    36. End If
    37. End Sub


    Edit by Agent: VB-Tag eingefügt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Agent“ ()

    Hallo Agent
    Vielen Dank für deine Hilfe das Programm funktioniert jetzt genau wie es soll.
    Aber eine Frage? Warum Jahrgang.Text wenn Jahrgang ne Textbox? z.B. Untergruppe ist auch ne Textbox und da gehts mit Untergruppe.value
    Oder Liegt des daran, das alle Werte die Abgefragt werden bis auf den Jahrgang Texte und keine Zahlen sind?
    Aber dann wäre Jahrgang.Text doch schwachsinn weils ne Zahl ist oder?
    Naja schon mal vielen Dank für die Lösung aber eine kleine Erklärung zum Verständniss würde mich freuen
    hierzu eine weitere frage:


    ich durchlaufe alle zellen in meinem excel sheet und merke mir die spalte und die zeile aus der ich was addieren möchte, was wie folgt aussieht:

    For xRows = 1 To 4 'Anzahl Zeilen
    For xCols = 1 To 17 'Anzahl Spalten
    sWert = .Cells(xRows, xCols)
    If sWert = "P1" Then
    Zeile = z
    Spalte = 5
    Do While Spalte < 17
    temp = .Cells(Zeile, Spalte) '?wie greife ich auf die zelle zu, deren Zeile und Spalte ich weiss ?
    MsgBox ("Temp : " & temp)
    ergebnis = ergebnis + temp
    MsgBox ("ergebnis lautet : " & ergebnis)
    Spalte = Spalte + 3
    Loop
    'Dreisatz um Prozentsatz pro Woche zu berechnen :
    prozentsatzwoche = 100 / 500 * ergebnis
    MsgBox ("Die Auslastung betraegt " & prozentsatzwoche)
    End If
    s = s + 1
    Next xCols
    z = z + 1
    Next xRows



    nun würde ich in temp gerne den inhalt der zelle schreiben, von der ich mir spalte und zeile gemerkt hab... ? an dieser stelle funktioniert es quasi nicht : temp = .Cells(Zeile, Spalte)

    kann mir da bitte jemand helfen ich bin der verzweifelung nahe...

    Edit by LaMa5: Das nächste Mal nur 1 Mal den Beitrag posten UND keine fremden Themen für eigene Fragen "missbrauchen" (siehe Boardregeln)!!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „LaMa5“ ()