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

Makro: Datenüberprüfung-Eingabemeldung

Makro: Datenüberprüfung-Eingabemeldung
26.09.2020 18:36:44
NicSteel
Liebe Excelfreunde,
ich habe mal wieder ein Problem - es wäre nett, wenn ihr mir bei der Lösung helfen würdet ...
Hintergrund: Mein Datensatz besteht aus 1.000 Zeilen mit 60 Spalten. Die Zellfarbe einiger Zellen markiere ich mittels Makro (spielt jetzt keine Rolle). Dann verkleinere ich die Ansicht auf 10%, um anhand der Zellfarben irgendwelche Trends zu erkennen. Ich möchte dann mitten in den Datensatz klicken - und Information über genau diese Zelle erhalten. Diese Informationen befinden sich:
  • in der gleichen Zeile in Spalte C (Zeit)

  • in der gleichen Spalte in Zeile 5

  • in der gleichen Spalte in Zeil 6.

  • Im Forum habe ich gesucht und bin auf einen Hinweis von Hajo_Zi gestoßen. Der war sehr hilfreich: nämlich einfach die "Datenüberprüfung mit Eingabemeldung" in einem Makro verwenden. Das habe ich dann mit einer for-Schleife getan und war auch erfolgreich (mit 10 Zeilen und 15 Spalten): Beim Klicken in eine Zelle werden alle Information richtig angezeigt. Beim Start des Makros mit 60.000 Zellen hängt sich Excel aber auf!
    Meine nächste Idee war: nicht alle 60.000 Zellen von vornherein mit dem Makro zu bearbeiten, sondern wirklich nur die gerade ausgewählte Zelle. Das mache ich mit dem "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" - Ereignis im Worksheet-Modul. Aber das funktioniert nicht !
    Die Datei habe ich hochgeladen: https:// _
    www.herber.de/bbs/user/140458.xlsm

    Und hier der Code, vielen Dank schonmal:
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim t As Long
    Dim j As Long
    Dim s As Long
    Dim ersteZeit As Long
    Dim letzteZeit As Long
    Dim erstePlatte As Long
    Dim letztePlatte As Long
    ersteZeit = 7
    letzteZeit = 20
    erstePlatte = 1
    letztePlatte = 4
    'ausgeschlossener Bereich
    If Target.Rows  letzteZeit Then
    If Target.Column  (5 * letztePlatte + 3) Then
    Exit Sub
    End If
    End If
    'aktiver Bereich
    For t = ersteZeit To letzteZeit
    For s = erstePlatte To letztePlatte
    For j = (5 * s - 1) To (5 * s + 3)
    If Target.Rows = t Then
    If Target.Column = j Then
    With Cells(t, j).Validation
    .Delete
    .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop,_
    Operator:= xlBetween
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = "Information zur Zelle"
    .ErrorTitle = ""
    .InputMessage = vbCrLf & "Zeit: " & CDate(Cells(t, 3).Value) &_
    vbCrLf & "Shelf: " & s & vbCrLf & "Position: " & Cells(5, j) &_
    vbCrLf & "Thermoelement: " & Cells(6, j)
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
    End With
    End If
    End If
    Next j
    Next s
    Next t
    End Sub
    

    4
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Makro: Datenüberprüfung-Eingabemeldung
    26.09.2020 18:47:38
    Dieter
    Hallo NicSteel,
    du solltest "Target.Rows" durch "Target.Row" ersetzen, dann scheint es zu funktionieren.
    Viele Grüße
    Dieter
    AW: Makro: Datenüberprüfung-Eingabemeldung
    26.09.2020 19:11:48
    NicSteel
    ... Mensch Dieter: Du bist ja echt 'ne Wucht !
    Genau das wars - vielen Dank an dich.
    Viele Grüße,
    NicSteel
    AW: Makro: Datenüberprüfung-Eingabemeldung
    26.09.2020 19:21:00
    NicSteel
    Hallo onur,
    mit der Funktionalität der Datenüberprüfung können die verlinkten Infos angezeigt werden - zwar etwas umständlicher, dafür aber "schöner".
    Dein Ansatz ist noch viel einfacher, super Tip mit der MsgBox !
    Nachdem mich Dieter auf den Synthaxfehler hingewiesen hat, bleibe ich aber lieber bei meiner ursprünglichen Methode mit der der Datenüberprüfung: hier muss ich nicht jedes mal mit dem "ok-Button" die Infos wegklicken.
    Also: vielen Dank auch dir !
    NicSteel
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige