Office: Else = do nothing?

Helfe beim Thema Else = do nothing? in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; *Freude* ich hab´s geschafft! Habe ihn erfolgreich eingebaut! :-D Option Explicit '** Mehrfachauswahl über DropDown-Liste (Gültigkeitsprüfung) '**... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von PapierStudi, 20. Januar 2014.

  1. Else = do nothing?


    *Freude*
    ich hab´s geschafft! Habe ihn erfolgreich eingebaut! :-D

    Option Explicit

    '** Mehrfachauswahl über DropDown-Liste (Gültigkeitsprüfung)
    '** Einfügen im Code-Container des betreffenden Arbeitsblattes

    Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count > 1 Then Exit Sub
    If Target.Column = 8 Then
    Cells(Target.Row, 9).Resize(1, 5).Value = IIf(Target = 0, 0, "")
    Cells(Target.Row, 42).Resize(1, 6).Value = IIf(Target = 0, 0, "")
    Cells(Target.Row, 57).Resize(1, 4).Value = IIf(Target = 0, 0, "")
    End If


    Dim rngBereich As Range
    Dim wert_old As Variant
    Dim wert_new As Variant

    ' Mehrfachauswahl im definierten Bereich durchführen
    Set rngBereich = Application.Union(Columns("C"), Columns("J:M"), Columns("AJ:AO"), Columns("BH"))

    ' Prüfung, ob mehr als 1 Zelle geändert wurde
    If Target.Count > 1 Then Exit Sub
    ' Prüfung, ob Zelle einen Wert enthält
    If Target.Value = "" Then Exit Sub
    ' Prüfung, ob Zelle im angegebenen Bereich
    If Application.Intersect(Target, rngBereich) Is Nothing Then Exit Sub
    ' enthält geänderte Zelle eine Gültigkeitsprüfung?
    On Error Resume Next


    If Application.Intersect(Target, Cells.SpecialCells(xlCellTypeAllValidation)) _
    Is Nothing Then Exit Sub
    On Error GoTo 0

    ' Daten in Zelle bearbeiten
    Application.EnableEvents = False

    wert_new = Target.Value
    Application.Undo
    wert_old = Target.Value
    Target.Value = wert_new

    If wert_old "" Then
    Target.Value = wert_old & ", " & wert_new

    End If

    Application.EnableEvents = True
    End Sub


    So funktioniert alles! *Smilie
    Danke für eure Hilfe!!!
     
    PapierStudi, 22. Januar 2014
    #16
  2. Hi Studi,

    ist die Aufgabenstellung von oben noch gültig? Wenn in H eine 0 eingegeben wird dann Spalten I - M ebenfalls 0 sonst nix?
    Dein Code sagt was anderes.... Keine Ahnung, was Du sonst noch damit vor hast...
    Code:
    oder setze
    Code:
    wenigstens davor...
     
  3. *Bahnhof*.... *frown.gif*
    Ich habe echt kaum Plan von dem was ich hier tue, also sei bitte nachsichtig mit mir und erkläre deine Bedenken einmal für dummies.

    Ich verstehe leider den halben Code nicht.
    Ich habe zuerst versucht den neuen Code als eigene Prozedur unter den schon bestehenden zu setzen (welchen ich nicht selbst geschrieben habe und nur Stückweise verstehe. Wenn hier etwas unsinniges drin auftaucht, bin ich dir für Anmerkungen dazu dankbar.) - da mault er dann, weil die Prozedur denselben Namen hat. Ich weiß allerdings nicht, wie ich ihr einfach einen anderen Namen geben kann. Also habe ich versucht den neuen Code in den schon bestehenden einzusetzen. Wenn ich ihn weiter unten einfüge, ignoriert er ihn. Das war die erste Stelle, die ich gefunden habe, an der Excel plötzlich alles tat, was es sollte. Ob er an der Stelle unnötige Prozesse aufwirft und diese Probleme bereiten können - keine Ahnung!
    Aber ja: die Aufgabenstellung ist immer noch die gleiche. Lediglich ein paar Ziel-Spalten sind dazu gekommen.
     
    PapierStudi, 23. Januar 2014
    #18
  4. Else = do nothing?

    ...schmeiß den ganzen Krempel zwischen
    Sub Worksheet_Change(....)

    und

    End Sub

    raus und füge stattdessen den Code aus Post #3 ein. Damit wäre Dein Ausgangsproblem gelöst.
     
  5. Super Idee! Nur dass mir dann die Mehrfachauswahlmöglichkeit dadurch verloren ginge. ;-)
    Es ist mir relativ egal ob nun alles in einem Sub oder zwei steht - solange sich alles verträgt und funktioniert. Das tut die Version aus #3 jedoch auch nur, wenn sie alleine steht.
     
    PapierStudi, 23. Januar 2014
    #20
  6. Och nee - ich dachte echt das ginge so. Aber nun funktionieren die (WENN-)Formeln in den angesprochenen Spalten auch nicht mehr. *frown.gif*
     
    PapierStudi, 23. Januar 2014
    #21
  7. ...ich habe keine Ahnung, von welcher Mehrfachauswahl Du in Spalte H sprichst. Falls Du meinst, bei Auswahl mehrerer Zeilen in Spalte H soll überall der Wert geändert werden, dann so (komplett ersetzen!):
    Code:
    ...und in Deinem Beispiel bezieht sich keine einzige Wenn-Formel auf die Spalten H bis M....

    Wäre schön, wenn Du mal genau sagen würdest, was Du eigentlich willst.
     
  8. Else = do nothing?

    Moin
    edit: Warum hast du on Error Resume next drin????
    Nur aus langeweile hab ich mal das Blatt nachgebaut um ueberhaupt zu sehen was du bezweckst.
    Du muss SpalteH auch in die Ueberwachung nehmen. Den Sinn will ich nicht verstehen.
    Code:
    gruss hary
     
  9. Ich habe die Datei ja bereits hochgeladen - vielleicht hilft es wenn du einen Blick rein wirfst.
    Und nun nochmal Stück für Stück:

    In der Tabelle befinden sich in mehreren Spalten Gültigkeitslisten, von denen in einigen (Columns("C"), Columns("J:M"), Columns("AJ:AO"), Columns("BH")) die Möglichkeit zur Mehrfachauswahl bestehen sollte. Hierfür habe ich einen Code aus dem Internet ins Arbeitsblatt kopiert, welcher mir feundlicherweise in einem anderen Forum an meine Tabelle und meine Wünsche angepasst wurde.
    Was in diesem Code alles was bedeutet weiß ich leider nicht genau.
    Das war mein erster Eintrag über VBA in das Arbeitsblatt der Tabelle 1.

    Option Explicit

    '** Mehrfachauswahl über DropDown-Liste (Gültigkeitsprüfung)
    '** Einfügen im Code-Container des betreffenden Arbeitsblattes

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngBereich As Range
    Dim wert_old As Variant
    Dim wert_new As Variant

    ' Mehrfachauswahl im definierten Bereich durchführen
    Set rngBereich = Application.Union(Columns("C"), Columns("J:M"), Columns("AJ:AO"), Columns("BH"))

    ' Prüfung, ob mehr als 1 Zelle geändert wurde
    If Target.Count > 1 Then Exit Sub
    ' Prüfung, ob Zelle einen Wert enthält
    If Target.Value = "" Then Exit Sub
    ' Prüfung, ob Zelle im angegebenen Bereich
    If Application.Intersect(Target, rngBereich) Is Nothing Then Exit Sub
    ' enthält geänderte Zelle eine Gültigkeitsprüfung?
    On Error Resume Next

    If Application.Intersect(Target, Cells.SpecialCells(xlCellTypeAllValidation)) _
    Is Nothing Then Exit Sub
    On Error GoTo 0

    ' Daten in Zelle bearbeiten
    Application.EnableEvents = False

    wert_new = Target.Value
    Application.Undo
    wert_old = Target.Value
    Target.Value = wert_new

    If wert_old "" Then
    Target.Value = wert_old & ", " & wert_new

    End If

    Application.EnableEvents = True
    End Sub



    Nun habe ich festgestellt, dass in vielen dieser Spalten (I-M, AP-AU, BE-BH) die Antwort "0" ist, wenn in H auch "0" steht.
    Um mir die Arbeit zu sparen dann überall diese 0 eintragen zu müssen, habe ich nach einer Lösung gesucht. Die Schwierigkeit hierbei: Die Gültigkeitslisten sollen alle vorhanden bleiben und, falls in H eine andere Zahl als 0 eingetragen wird, weiterhin mit Mehrfachauswahlmöglichkeit genutzt werden können.

    Nun habe ich einen Code, der mir die Mehrfachauswahl ermöglicht und einen anderen, der mir automatisch in die gewünschten Zeilen eine 0 einträgt, sofern H=0 ist. Mein aktuelles Problem liegt nun nur noch darin, dass ich es nicht hinbekomme diese beiden Codes so in das betreffende Arbeitsblatt zu schreiben, dass sie beide funktionieren!

    Also Frage 1:Wie setze ich den oberen Code mit dem hier zusammen?

    Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count > 1 Then Exit Sub
    If Target.Column = 8 Then
    Cells(Target.Row, 9).Resize(1, 5).Value = IIf(Target = 0, 0, "")
    Cells(Target.Row, 42).Resize(1, 6).Value = IIf(Target = 0, 0, "")
    Cells(Target.Row, 57).Resize(1, 4).Value = IIf(Target = 0, 0, "")
    End If

    End Sub



    Ich habe einfach ausprobiert was geht und dabei nur die Version von heute morgen zustande gebracht.
    Du sagst dass der Code so jedoch keinen Sinn machen würde.

    Nun mein neuestes Problem:
    Ich habe, innerhalb vom einfachen Excel und abseits von VBA, einige Formel in verschiedenen Spalten eingetragen. Unter anderem auch in den Spalten BE, BF und BG. das sind drei der Spalten, auf die der "machnull"code abzielt.
    Dort befinden sich Wenn-Formeln, die sich auf andere Zellen beziehen.
    In BE: =WENN(AT44=1;1;0)
    In BF: =WENN(AS44=1;1;0)
    In BG: =WENN(ODER(AP44=1;AQ44=1;AR44=1);1;0)

    Wenn ich den Coe so, wie ich ihn mirr heute früh zuammengebastelt habe, ins Arbeitsblatt setze, dann funktionieren diese Formeln nicht mehr.
    Wenn ich nun also bei H keine 0 eingetragen habe und dann in AT,AS oder AP Werte eintrage, bleiben BE-BG einfach leer, während sie sich vorher automatisch ausgefüllt haben.

    Daher nun meine 2. Frage:
    Wie löse ich dieses Problem?
     
    PapierStudi, 23. Januar 2014
    #24
  10. Danke Hary! Aber in H soll ja garkeine Mehrfachauswahl möglich sein - dort gibt es ja nichtmal Gültigkeitslisten. Macht das dann so Sinn???
     
    PapierStudi, 23. Januar 2014
    #25
  11. Also zumindest funktioniert es so schonmal. Wenn es auf diese Weise nirgends Schwierigkeiten gibt, bin ich damit schon fast glücklich. *Smilie
    Dann bleibt jetzt nur noch meine Frage 2 offen....
     
    PapierStudi, 23. Januar 2014
    #26
  12. Moin
    Bei dem Link fuer deine Mappe streikt mein Com. sagt: nicht sichere Seite.
    kannst du auch im Forum hochladen. Anhaenge verwalten.
    hier mit legst du den Bereich fest.
    Code:
    hiermit pruefst du ob target nicht im Bereich ist
    Code:
    Und wenn Target jetzt SpalteH ist, wird der Code beendet da nicht im Bereich.
    Das hat nix mit den Gueltigkeitslisten zu tun.
    Nein, ich meinte damit das Ergebniss. War mehr gedanklich. ;-))
    Zu 2.
    Das die Formel nicht nicht funzen ist ja klar. Du wolltest ja Nullen reinbekommen und werden die Formeln halt ueberschrieben.
    Du musst die Spalten im Code wieder rausnehmen
    Statt
    Code:
    nimmst du
    Code:
    gruss hary
     
  13. Else = do nothing?

    Moin nochmal
    Und nu was zum auflockern. Also nicht ernst nehmen.
    Ich Depp fing so an:
    Code:
    Code:
    Deswegen stecke ich auch noch in der 3.Klasse beim Thema VBA.
    Mit viel Augenzwinkern. ;-)))
    gruss hary
     
  14. Guten morgen! :-)

    Danke Hary! Jetzt verstehe ich wieder ein bisschen mehr.
    Ich habe die Spalten nun rausgenommen, indem ich den code wie vorgeschlagen abgeändert habe. Seitdem funzt es wieder nicht. Auch nachdem ich deinen code einfach nochmal im ursprünglichen Zustand neu eingefügt und Ecel nochmal neu gestartet habe. Zuerst reagiert er überhaupt nicht auf den Eintrag von "0" und dann sagt er mir, "Application.undo" sei fehlgeschlagen. *frown.gif*
     
    PapierStudi, 23. Januar 2014
    #29
  15. Erfassung 2.xls
     
    PapierStudi, 23. Januar 2014
    #30
Thema:

Else = do nothing?

Die Seite wird geladen...
  1. Else = do nothing? - Similar Threads - Else nothing

  2. Power Query - nested if statement - Klammern

    in Microsoft Excel Hilfe
    Power Query - nested if statement - Klammern: Hallo zusammen, kann mir jemand beantworten, in welchen Fällen bei nested if statements in Power Query Klammern notwendig sind und wann nicht? Beispiel: if [Number] > 0 then "Positive" else (if...
  3. If-Then-Else...Verständnisfrage zu Kriterium String > Zahl

    in Microsoft Access Hilfe
    If-Then-Else...Verständnisfrage zu Kriterium String > Zahl: Hallo, ich habe eine Funktion erstellt. Diese wird mit Werten gefüttert, generell Zahlen als String und "echte" Strings. Damit ich mit den Zahlen Vergleiche anstellen kann wandele ich diese mit...
  4. IF THEN ELSE mit mehr als 2 Anweisungen nach Prüfung

    in Microsoft Excel Hilfe
    IF THEN ELSE mit mehr als 2 Anweisungen nach Prüfung: Hallo, kann mir bitte jemand weiterhelfen, ich möchte bei folgendem Skript folgende Dinge tun: 1. mindestens 2 Bedingungen zur Prüfung (das sollte mit "And" klappen?) 2. dann auch mehr als 2...
  5. Kombinationsfeld sperren od. freigeben wenn Bedingungen erfüllt (if then else ...)

    in Microsoft Access Hilfe
    Kombinationsfeld sperren od. freigeben wenn Bedingungen erfüllt (if then else ...): Guten Abend liebe Forumsmitglieder Ich habe ein Kombinationsfeld Namens: "KatFKAuswahl" wo ich eine Liste an Auswahlmöglichkeiten in einem Formular (Namens: frm_Personen) habe. Damit man eine...
  6. "If...Then...Else"-Makroblock

    in Microsoft Access Tutorials
    "If...Then...Else"-Makroblock: "If...Then...Else"-Makroblock Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  7. Bedingung Wert vorhanden und anderer Wert nicht vorhanden

    in Microsoft Excel Hilfe
    Bedingung Wert vorhanden und anderer Wert nicht vorhanden: Hallo Zusammen, ich möchte ein Makro erstellen, dass in bestimmten Zellen nach einem Wert (Text) sucht und wenn dieser Text gefunden wird nach einem anderen Wert sucht. Wenn der zweite Wert...
  8. Wenn Dann Bedingung, Wenn wert in C3 vorhanden dann füge 1 in A3 ein usw...

    in Microsoft Excel Hilfe
    Wenn Dann Bedingung, Wenn wert in C3 vorhanden dann füge 1 in A3 ein usw...: Wenn Dann Bedingung, Wenn wert in E2 vorhanden dann füge 1 in A3 ein usw... Moin Moin, Ich bin noch VBA Neuling, und habe mich einer sehr komplexen Liste gewidmet. Das Problem was ich habe,...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden