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

Bei Eingabe von X in soll Ja oder Nein drin stehen

Bei Eingabe von X in soll Ja oder Nein drin stehen
08.11.2018 13:45:24
X
Guten Tag VBA Spezialisten,
wenn in Zelle H4 ein "x" oder "X" eingegeben wird, soll in dieser Zelle "Ja" stehen.
Wenn H4 leer ist soll nichts drin stehen.
Mit diesem Makro geht es nur teilweise und wie muss es lauten, dass es richtig funktioniert. Am besten noch, wenn es nicht nur für H4 gilt, sonden auch für H4:H23:
  • 
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("H4")) Is Nothing Then
    If Target = "x" Or Target = "X" Then
    Range("H4") = "Nein"
    Else
    Range("H4") = "Ja"
    End If
    End If
    End Sub
    

  • Hier meine Musterdatei: https://www.herber.de/bbs/user/125265.xlsm
    Mit der Bitte um Hilfe,
    grüßt Dieter(Dummer)

    28
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    Nimm 1 statt x
    08.11.2018 13:51:46
    lupo1
    ... dann reicht benDefFmt "Ja";;
    Sollte ein Doofi doch X eingeben wollen, nimm DÜ dagegen.
    AW: Klappt nicht richtig ...
    08.11.2018 14:02:13
    Dieter(Drummer)
    Danke Lupo für Rückmeldunmg und Info.
    So habe ich es jetzt geändert, aber wenn Zelle leer ist kommt nicht "Nein"?
    Hast du noch eine Idee und auch für die Erweiterung für Zellen H4 bis H23?
    Jetziger Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("H4")) Is Nothing Then
    If Target = "1" Then
    Range("H4") = "Nein"
    Else
    Range("H4") = "Ja"
    End If
    End If
    End Sub
    

    Gruß, Dieter(Drummer)
    Du sollst kein VBA, sondern benDefFmt nehmen.
    08.11.2018 14:03:30
    lupo1
    AW: Bei Eingabe von X in soll Ja oder Nein drin stehen
    08.11.2018 14:12:31
    X
    Hallo Dieter,
    Schon jahrelang im Forum und du schafft es immer noch nicht, eine Anforderung klar und einfach zu formulieren?
    Der Betreff widerspricht den Soll-Anforderungen!
    In die Musterdatei schau ich mal gar nicht rein, weil mir bei deinen ewigen Versuchen immer wieder mal schlecht wird.
    Gruess Hansueli
    Anzeige
    AW: Danke für deine "freundliche" Mitteilung ...
    08.11.2018 14:18:27
    Dieter(Drummer)
    .., bin halt nicht so ein "Greg", aber Benehmen hab ich!
    Gruß, Dieter(Drummer)
    Ich verzichte auf jegliche Hilfe für diese, meine Anfrage.
    AW: Danke für deine "freundliche" Mitteilung ...
    08.11.2018 14:42:36
    Werner
    Hallo Dieter,
    so:
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("H4:H23")) Is Nothing Then
    Application.EnableEvents = False
    Select Case UCase(Target.Value)
    Case "X"
    Target.Value = "Ja"
    Case ""
    Target.Value = ""
    Case Else
    Target.Value = "Nein"
    End Select
    Application.EnableEvents = True
    End If
    End Sub
    
    Gruß Werner
    AW: Bei Eingabe von X in soll Ja oder Nein drin stehen
    08.11.2018 14:42:33
    X
    Servus Dieter,
    teste mal:
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("H4")) Is Nothing Then
    If Target = "x" Or Target = "X" Then
    Application.EnableEvents = False
    Range("H4") = "Nein"
    Application.EnableEvents = True
    Else
    Application.EnableEvents = False
    Range("H4") = "Ja"
    Application.EnableEvents = True
    End If
    End If
    End Sub
    
    Grüße, Bernd
    Anzeige
    AW: Danke Werner und Bernd. Funktioniert ...
    08.11.2018 15:03:14
    Dieter(Drummer)
    ... prima.
    Herzlichen Dank und einen erfreulichen Tag.
    Gruß, Dieter(Drummer)
    Gerne u. Danke für die Rückmeldung. o.w.T.
    08.11.2018 15:17:01
    Werner
    AW: Bei Eingabe von X in soll Ja oder Nein drin stehen
    08.11.2018 14:50:58
    X
    Hallo
    so?
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("H4")) Is Nothing Then
            Application.EnableEvents = False
            Target = IIf(UCase(Target) = "X", "Nein", "Ja")
            Application.EnableEvents = True
        End If
    End Sub
    

    LG UweD
    Anzeige
    AW: Danke UweD, funktioniert ...
    08.11.2018 15:08:01
    Dieter(Drummer)
    ... ebenfalls prima und Code ist noch kürzer.
    Gruß und einen erfreulcihen Tag,
    Dieter(Drummer)
    AW: Danke UweD, funktioniert ...
    08.11.2018 16:00:21
    Luschi
    Hallo Dieter(Drummer),
    ich glaube, Du hast die Lösung von Uwe gar nicht richtig getestet, dann sonst hättest Du bemerkt, daß beim Leeren der Zelle 'H4' ein 'Ja' reingeschrieben wird, aber die Forderung von Dir war ja:
    Wenn H4 leer ist soll nichts drin stehen.
    Gruß von Luschi
    aus klein-Paris
    AW: Danke UweD, funktioniert ...
    08.11.2018 16:10:19
    UweD
    Hallo
    stimmt hab ich übersehen
    so aber
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("H4")) Is Nothing And Target <> "" Then
            Application.EnableEvents = False
            Target = IIf(UCase(Target) = "X", "Nein", "Ja")
            Application.EnableEvents = True
        End If
    End Sub
    

    LG UweD
    Anzeige
    AW: Danke UweD, es funktioniert ...
    08.11.2018 17:43:08
    Dieter(Drummer)
    ... jetzt, musste nur Ja und Nein tauschen, damit bei Eingabe von X auch Ja kommt.
    Danke nochmal und Gruß,
    Dieter(Drummer(
    Prima! Danke für die Rückmeldung. mwT
    09.11.2018 08:56:21
    UweD
    Stimmt...
    Ich hatte mich mehr auf deinen ersten Code konzentriert und die Fragestellung weniger beachtet.
    Da war das mit dem Ja / Nein vertauscht.
    LG UweD
    Wenn du es wie in dem anderen Zweig geschrieben, auch auf mehrere Zellen anwenden möchtest dann so..
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim RNG As Range, Zelle
        Set RNG = Range("H4:K8")
        
        If Not Intersect(Target, RNG) Is Nothing Then
            For Each Zelle In Intersect(Target, RNG)
                If Zelle <> "" Then
                    Application.EnableEvents = False
                    Zelle.Value = IIf(UCase(Zelle) = "X", "Ja", "Nein")
                    Application.EnableEvents = True
                End If
            Next
        End If
    End Sub
    

    Anzeige
    AW: Danke UweD, das kann ich ...
    09.11.2018 09:19:44
    Dieter(Drummer)
    ... evtl. auch weiter verwenden. Diese "Set RNG = Range (H4:K5"), kann ich dann ja auch entsprechend für andere Spalten/Zellen ändern.
    Noch einen erfreulichen Tag und
    Gruß, Dieter(Drummer)
    AW: Noch etwas ...
    09.11.2018 09:26:45
    Dieter(Drummer)
    Hallo UweD,
    habe bei deinem Code auch festgestellt,dass bei Eingabe von "N", nach Enter direkt "Nein" in der Zelle eingetragen wird. Prima ...
    Gruß, Dieter(Drummer)
    AW: Du hast Recht Luschi, ich habe es ...
    08.11.2018 17:40:10
    Dieter(Drummer)
    ... gerade getestet, war unterwegs.
    Gruß, Dieter(Drummer)
    Das ist wohl alles ein Witz, oder nicht?
    08.11.2018 16:10:46
    EtoPHG
    Hallo an Dieter und alle Code-Provider,
    @Dieter: Der Widerspruch ist immer noch nicht aufgelöst:
    wenn in Zelle H4 ein "x" oder "X" eingegeben wird, soll in dieser Zelle "Ja" stehen.
    Und was soll drin stehen, wenn was anderes eingegeben wird? Wir (die Helfer) müssen einfach mal annehmen "Nein" ? oder was?
    Wenn H4 leer ist soll nichts drin stehen.
    Das ist wohl klar, denn in einer Zelle kann wohl was drin stehen, oder eben nicht. Einen dritten Zustand gibt es nicht!
    @Codes: Keiner dieser Codes erfüllt die Anforderung
    ...[gilt] auch für H4:H23
    entweder sie funktionieren nur für H4, oder alle gehen denn Bach runter, wenn target sich mehrere Zellen umfasst.
    Also so:
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim checkRange As Range, rC As Range
    Set checkRange = Intersect(Target, Range("H4:H23"))
    If Not checkRange Is Nothing Then
    Application.EnableEvents = False
    On Error GoTo resetEvents
    For Each rC In checkRange
    If UCase(rC) = "X" Then
    rC = "Ja"
    Else
    If Not IsEmpty(rC) Then rC = "Nein"
    End If
    Next rC
    resetEvents:
    Application.EnableEvents = True
    End If
    End Sub
    
    Gruess Hansueli
    Anzeige
    AW: Ich tue mich jetzt schwer ...
    08.11.2018 17:54:04
    Dieter(Drummer)
    ... dir zu antworten, da deine erste Antwort nicht meiner Auffassung, wie man sich hier im Forum verhält, entsprach.
    Dein Code funktioniert, wenn X eingegeben wird und wenn Zelle leer ist und das auch in den Zellbereich H4:H23.
    Wird etwas anderes eingebe als x, erschient Nein. Damit kann ich leben, sonst mach ich mich hier wohl noch unbeliebter ;-).
    Jedenfalls danke für deinen Code, und Sorry, dass ich nicht so gut bin, wie die Gregs hier.
    Gruß, Dieter(Drummer)
    Sei nicht so eitel mit Deiner Ungebildetheit,
    08.11.2018 18:21:09
    lupo1
    ... sondern verfasse Deine Fragen mit der notwendigen Sorgfalt. Da waren wirklich mehrere Fehler drin.
    Und wenn Du nicht weißt, wie man Crack schreibt, dann verwende das Wort doch einfach nicht. Ist das zuviel verlangt?
    Immer dieses Anbiedern der Dummen (oder: der Drummen?) mit ihrem: "Hallo, jetzt verwende ich auch mal ein englisches Wort, obwohl ich nie Englisch gelernt habe."
    Anzeige
    Und noch etwas:
    08.11.2018 18:27:04
    lupo1
    Wenn "Nein" erscheint, was es ja anscheinend nun am Ende nicht soll:
    Was hindert Dich daran, einmal den f...ing code, den die Leute Dir geben, auch ANZUSCHAUEN, und das einzige Auftreten von "Nein" SELBSTÄNDIG durch "" zu ersetzen, ohne das hier überhaupt noch einmal zu kommentieren?
    Aber nein: Auch das ist zu viel verlangt. Statt dessen geht nur: "Funktioniert nicht" oder "Toll, funktioniert." ("Bin ich jetzt drin, oder was? Das ist ja einfach.")
    So 'nen Hals hab ich.
    AW: Wieder so ein tolles Benehmen ...
    08.11.2018 18:40:02
    Dieter(Drummer)
    ... Lupo1, wenn dir etwas von meinen Dingen nicht passt, gib einfach keine Antwort. Übrigens mein Name hier im Forum ist "Dieter(Drummer)". Da ich neben meinem Beruf mehr als 50 Jahre Schlagzeuger (Drummer) bin. Inzwischen bin ich Rentner und spiele immer noch Schlagzeug.
    Ärgere dich nicht ... befasse dich einfach nicht mehr mit meinen Anfragen hier im Forum, die ich weiterhin nicht unterlasse.
    Es können nicht alle so gut sein wie ...
    Dennoch ein Gruß,
    Dieter(Drummer)
    Anzeige
    wundert's dich Drummer? mich nicht...
    08.11.2018 18:47:49
    robert
    AW: Ihr Sermon fehlte ja noch ...
    08.11.2018 22:04:40
    Dieter(Drummer)
    Das hat mit Benimm nichts zu tun
    08.11.2018 18:48:57
    lupo1
    Dein Benimm fehlt jedoch, wenn Du das, was Du bekommst, nicht zu verstehen versuchst.
    Du schluckst es runter wie eine Tablette.
    Und dann kommst Du immer wieder in dies Forum und orderst weitere Tabletten. und peinlich ist Dir das nicht, weil es ja kostenlos ist, und weil es so viele Antworter gibt.
    Vermutlich ging es Dir im Leben nicht so toll (kommt dann als nächstes), und so soll es Dir jetzt entsprechend gut gehen ... mit der Hilfe vieler bereitwilliger Antworter.
    Meine Lösung war übrigens eher einfach, denn sie kommt ohne VBA aus. Wenn Du außerhalb des Change-Events keinen Code in Deiner Datei hast, könntest Du die Datei dann sogar als .xlsx statt .xlsm speichern.
    Aber was erzähle ich? Das ist doch alles nur "Greg"-laber.
    Anzeige
    AW: Das hat mit Benimm nichts zu tun?
    09.11.2018 07:30:52
    Dieter(Drummer)
    Hallo Lupo1,
    es fällt mir nicht leicht, dir zu antworten.
    Ich werde mich bemühen, besser zu werden und zu verstehen.
    Dies ist wohl nicht so einfach, da ich nicht der Logiker bin, für den es leicht ist, diese Dinge zu verstehen. Aber mich interessiert eben Excel und VBA.
    Was ist absolut nicht verstehe, dass in diesem Forum persönliche Angriffe etc., z.B. jetzt von dir und schon sehr lange von robert veröffentlicht werden. Niemand muss mir antworten, dem meine Art und Fragen in diesem Forum nicht gefällen! Ich bleieb weiterhin NUR in diesem Forum, aber nicht um Jemand zu nerven oder persönlich zu ärgern. Die Art und Weise, wie die anschliessenden Texte von dir und robert hier ins Forum gestellt werden, hat HW Herber nicht verdient. Persönliche Anmacherei braucht keiner.
    Dies ist mein letzter Text an dich und natürlich an robert, zu welcher Anfrage auch immer von mir ...
    Guß, und danke für euer Bemühen ...
    Dieter(Drummer)

    301 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige