Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
708to712
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
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Plausibilitätskontrolle und Listenfeld

Plausibilitätskontrolle und Listenfeld
19.12.2005 09:32:55
Karl-Heinz
Guten Morgen,
ich habe 2 Fragen:
1.)Wenn ich in den (ca. 200) Zellen einer Zeile Daten eingebe, möchte ich, dass eine Plausibilitätskontrolle mit den alten Daten in den Zellen einer darüberliegenden Zeile erfolgt. Bei Abweichung von < > 10% soll eine Msgbox einen Hinweis z.B. "Abweichung über 10%" ausgeben.
2.) In einer Spalte z.B. "B" eines Tabellenblattes z.B. "Tabelle1" tauchen mit Unterbrechungen (Leerzellen) Auswertungen als Textinformationen auf. Ich möchte auf einem anderen Tabellenblatt dass durch Commandbutton Klick oder ähnlich eine Liste der zu Textinformationen gehörenden Artikelnummern aus Spalte "A" untereinander erscheint.
Wer kann mich unterstützen ?
Viele Grüße
Karl-Heinz

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Plausibilitätskontrolle und Listenfeld
19.12.2005 10:00:22
Josef Ehrensberger
Hallo Karl-Heinz!
Zum ersten Problem:
' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim varArray1 As Variant, varArray2 As Variant
Dim intIndex As Integer

With Target
  If .Row > 2 Then
    varArray1 = Range(Cells(.Row - 1, 1), Cells(.Row - 1, 256))
    varArray2 = Range(Cells(.Row, 1), Cells(.Row, 256))
    For intIndex = 1 To 256
      If varArray2(1, intIndex) <> "" Then
        If IsNumeric(varArray1(1, intIndex)) And IsNumeric(varArray2(1, intIndex)) Then
          If varArray2(1, intIndex) / varArray1(1, intIndex) < 0.9 Or _
            varArray2(1, intIndex) / varArray1(1, intIndex) > 1.1 Then
            MsgBox "Abweichung über 10% in Zelle " & Cells(.Row, intIndex).Address & " !"
            Cells(.Row, intIndex).Select
            Exit Sub
          End If
        End If
      End If
    Next
  End If
End With

End Sub


Ob allerdings eine MsgBox das richtige ist musst du selber entscheiden!
Kann ganz schön nervig werden! Vieleicht währe eine farbliche Kennzeichnung besser;-))
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Plausibilitätskontrolle und Listenfeld
19.12.2005 10:34:57
Karl-Heinz
Hallo Sepp,
ich habe den Code in das Codeblatt von Tabelle1 kopiert und getestet. Du hast recht, in dieser Konstellation ist es nervig. Ich möchte allerdings, dass bei Dateneingabe nur der Vergleich mit der direkt darüberliegenden Zelle einer Zeile erfolgt und nicht mit den anderen Zellen dieser Zeile. Was muß ich dann ändern ?
Gruß
Karl-Heinz
AW: Plausibilitätskontrolle und Listenfeld
19.12.2005 10:41:22
Josef Ehrensberger
Hallo Karl-Heinz!
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 2 And Target.Count = 1 Then
  If Target <> "" Then
    If IsNumeric(Target) And IsNumeric(Target.Offset(-1, 0)) Then
      If Target / Target.Offset(-1, 0) < 0.9 Or _
        Target / Target.Offset(-1, 0) > 1.1 Then
        MsgBox "Abweichung über 10% in Zelle " & Target.Address & " !"
        Exit Sub
      End If
    End If
  End If
End If
End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Plausibilitätskontrolle und Listenfeld
19.12.2005 11:09:45
Karl-Heinz
Hallo Sepp,
vielen Dank für die superschnelle Antwort. Es funktioniert. Toll. Das einzige, kleine Problem ist noch, wenn die Zelle mit den Altdaten leer ist erscheint eine Fehlermeldung beim Vergleich. Kann auch hier die Msgbox geöffnet werden ?
Gruß
Karl-Heinz
AW: Plausibilitätskontrolle und Listenfeld
19.12.2005 11:13:50
Josef Ehrensberger
Hallo Karl-Heinz!
Auch kein Problem!
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 2 And Target.Count = 1 Then
  If Target <> "" Then
    If IsNumeric(Target) And IsNumeric(Target.Offset(-1, 0)) Then
      If Target > Target.Offset(-1, 0) * 1.1 Or _
        Target < Target.Offset(-1, 0) * 0.9 Then
        MsgBox "Abweichung über 10% in Zelle " & Target.Address & " !"
        Exit Sub
      End If
    End If
  End If
End If
End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Plausibilitätskontrolle und Listenfeld
19.12.2005 11:25:03
Karl-Heinz
Hallo Sepp,
ich bin begeistert. Es funktioniert so wie gewünscht. Als VBA Laie finde ich es wirklich faszinierend. Gibt es vielleicht auch eine einfache Lösung für mein Problem eine Liste mit Artikelnummern aus Spalte A im Tabellenblatt1 bei den ein Texthinweis in Spalte B vorliegt mit Commandbutton in einem anderen Tabellenblatt zu öffnen ?
Gruß Karl-Heinz
AW: Plausibilitätskontrolle und Listenfeld
19.12.2005 11:41:14
Josef Ehrensberger
Hallo Karl-Heinz!
Für dein zweites Problem wäre sicher eine Beispieltabelle hilfreich!
Eine Tabelle mit deiner Liste und eine Tabelle wie das ganze dann aussehen soll!
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Plausibilitätskontrolle und Listenfeld
19.12.2005 12:11:41
Karl-Heinz
Hallo Sepp,
ich habe eine einfache Musterdatei angefertigt.

Die Datei https://www.herber.de/bbs/user/29417.xls wurde aus Datenschutzgründen gelöscht

Ich hoffe es ist verständlich.
Gruß
Karl-Heinz
Nachfrage!
19.12.2005 12:13:58
Josef Ehrensberger
Hallo Karl-Heinz!
Kurze Frage. Sollen die aufgelisteten Einträge bei Auswahl irgendwo eingetragen werden?
Wenn ja, wo und was.
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Nachfrage!
19.12.2005 12:30:16
Karl-Heinz
Hallo Sepp,
es soll sich einfach nur ein Fenster öffnen, z.B. als Userform. Die genaue Plazierung kann ich dann vielleicht im Eigenschaftenfenster festlegen. Es in der Auflistung sollen nur die Artikelnummern erscheinen, bei denen der Texthinweis, egal welcher Text, erscheint. Dieses Makro will ich dann in mehreren ähnlichen Situationen/Auswertungen einsetzen, sodass ich nur noch die Bezüge ändern muß.
Gruß
Karl-Heinz
AW: Nachfrage!
19.12.2005 12:41:17
Josef Ehrensberger
Hallo Karl-Heinz!
Etwa in der Art?
https://www.herber.de/bbs/user/29418.xls
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Nachfrage!
19.12.2005 12:51:10
Karl-Heinz
Hallo Sepp,
genau so. In einigen Fällen kann ich Informationen aus den anderen Spalten auch gebrauchen. Größtenteil benötige ich aber nur die Auflistung der Artikelnummern. Aber den Code kann ich dann bestimmt entsprechend korrigieren.
Wie komm ich an den Code aus dem File-Upload ?
Gruß
Karl-Heinz
Alt+F11
19.12.2005 12:52:56
Josef Ehrensberger
Hallo Karl-Heinz!
Mit Alt+F11 öffnest du den VBE!
Gruß Sepp
AW: Alt+F11
19.12.2005 13:18:50
Karl-Heinz
Hallo Sepp,
hat alles geklappt. Vielen Dank. Für so etwas hab' ich schon viel Zeit geopfert. Aber ich lerne.
Ein schönes Weihnachtsfest
Karl-Heinz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige