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

Excel Wenn - Dann Abfrage

Excel Wenn - Dann Abfrage
10.02.2023 10:39:00
Daniel
Hallo zusammen,

ich will für meine Arbeit eine Liste erstellen, auf die mehrere Personen Zugriff haben. - Da wir allerdings in einem sehr "komplexen" Umfeld arbeiten, bräuchte ich eine Art Lesebestätigung der Nutzer, die das Dokument offen hatten.
Diese Lesebestätigung wurde in Vergangenheit immer nur durch stupides Copy-Paste eines "X" in die jeweilige Namensspalte erledigt. Dies würde ich nun gerne automatisieren.

Deshalb würde ich gerne eine Abfrage einbauen wollen, die (DYNAMISCHE! Werte) abfragt und dann dauerhaft in Zelle x mit einem "X" einträgt.

z.B. Zelle A2 Dynamischer Wert "Benutzer", Zelle B2 Dynamischer Wert "Datum" - Werte variieren je nach Nutzer und Tag.
WENN Zelle A2 = "hier wird beliebiger Name eingegeben" und Zelle B2 = Zelle A5 DANN Ausgabe von "X" in Zelle D5
gleiches für
WENN Zelle A2 = "hier wird beliebiger Name eingegeben" und Zelle B2 = Zelle A5 DANN Ausgabe von "X" in Zelle E5 - Wenn Benutzername ein anderer

Der Bereich, in dem das "X" eingetragen werden soll bezieht sich immer nur auf die jeweilige Spalte. Z.B. D5:D100, E5:E100, usw..

Hier mal ein Beispiel:
Benutzername wird per VBA in Zelle A2 angezeigt.
https://www.herber.de/bbs/user/157766.xlsm

Hoffe ihr könnt mir dabei helfen..
Gruß,
Daniel

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

Betreff
Datum
Anwender
Anzeige
AW: Excel Wenn - Dann Abfrage
10.02.2023 13:56:33
Yal
Hallo Daniel,
Du könntest auch eine Makro herstellen, die beim Öffnen das Datum und Username am Ende einer 2-spaltige Liste einträgt.
Auswertung dann mit Pivottabelle.
Private Sub Workbook_Open()
    With ThisWorkbook.Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp)
        .Offset(1, 0) = Application.UserName
        .Offset(1, 1) = Format(Now, "DD.MM.YYYY")
    End With
End Sub
VG
Yal
AW: Excel Wenn - Dann Abfrage
10.02.2023 21:51:05
Daniel
Vielen Dank für deine Antwort!
Hab das ganze über eine WENN UND-Funktion lösen können - die Funktionen einer Privottabelle muss ich mir erst noch aneignen..
Abfrage etc. funktioniert so weit.. habe nachfolgenden Code in die Datei eingebunden, damit das "X" aus der Formel zu einem festen, unveränderbarem Wert "X" wird. Allerdings werden dadurch auch alle anderen "leeren" Zeilen geleert & die darin enthaltenen Funktion somit gelöscht..
Gibt es eine Möglichkeit (oder Alternative) den Code so abzuändern, dass er NUR die Zellen mit X bearbeitet & alle anderen, wo die Zellen leer (mit der Funktion gefüllt) sind überspringt?
Public Sub TruncateSmallValuesInDataArea()
   Dim dataArea As Excel.Range
   Set dataArea = ThisWorkbook.Worksheets("Schichtübergabe").Range("E5:T100")
   Dim valuesArray() As Variant
   valuesArray = dataArea.Value
   Dim rowIndex As Long
   Dim columnIndex As Long
   For rowIndex = LBound(valuesArray, 1) To UBound(valuesArray, 1)
      For columnIndex = LBound(valuesArray, 2) To UBound(valuesArray, 2)
         If valuesArray(rowIndex, columnIndex) = "X"
            valuesArray(rowIndex, columnIndex) = "X"
         End If
      Next
   Next 
   dataArea.Value = valuesArray
End Sub
Mir fehlt hier irgendwie das Else oder Else If.. C++-Grundlagen wären ja eigentlich vorhanden, nur mit VBA für mich schlecht kombinierbar.. :/
Ich weiß schon mittlerweile nicht mehr, wie ich im Internet nach einer Lösung suchen soll..
Anzeige
AW: Excel Wenn - Dann Abfrage
11.02.2023 17:11:19
Yal
Hallo Daniel,
der Umweg über einen Array ist nur sinnvoll, wenn Du sehr viele Zellen oder intensive Verarbeitung der einzelne Array-Wert vorhast.
Bei diesem Vorgang werden nur die Wert der Zellen in den Array übernommen, also verlierst Du damit alle deine Formeln.
In deinem Fall sollte mit einem direkten Verarbeitung und der Zelle bei abgeschalteten Screenupdating und Events schnell genug sein. Es ist sowieso der einzige Weg, die anderen Formeln zu erhalten.
Public Sub TruncateSmallValuesInDataArea()
Dim Z As Range
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    For Each Z In ThisWorkbook.Worksheets("Schichtübergabe").Range("E5:T100")
        If UCase(Z.Value) = "X" Then Z.Value = "X"
    Next
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
VG
Yal
Anzeige
AW: Excel Wenn - Dann Abfrage
13.02.2023 10:04:27
Daniel
Funktioniert super!
Vielen Dank!!!

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige