Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

löscht Spalten nicht
#1
guten Morgen an Alle,

ich muss eine Bestandsdatei aufbauen und bin auch schon sehr weit gekommen.
Habe all mein Nichtwissen und vorhandene Dateien durchsucht und angepasst.

Soweit läuft alles bis auf eine kleine Winzigkeit:

Blatt: Eingabe
Artikel-Nr:   D4
Zugang:     E18
Abgang:     F18

Diese Daten werden eingetragen ins Archiv fortlaufend - klappt perfekt
Diese Daten erhöhen oder senden den Bestand auf dem Blatt Artikel- klappt perfekt

Leider löscht er nach der Eingabe nicht E18 und F18 und D4, Das ist das Problem

Hier das Makro dazu:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim myRange As Range
    If (Target.Address = "$E$18" Or Target.Address = "$E$20") _
        And Trim(Target.Text) <> "" And Not IsError(Cells(18, 5).Value) Then
        With Worksheets("Artikel")
            If .FilterMode Then .ShowAllData
            Set myRange = .Columns(1).Find(What:=Cells(4, 4).Value, _
                LookAt:=xlWhole, LookIn:=xlValues)
            If Not myRange Is Nothing Then
                If Target.Row = 18 Then .Cells(myRange.Row, 6).Value = _
                    .Cells(myRange.Row, 6).Value - Target.Value _
                    Else .Cells(myRange.Row, 6).Value = _
                    .Cells(myRange.Row, 6).Value + Target.Value
            Else
                MsgBox "Wert " & Cells(4, 4).Value & " nicht in der Tabelle.", 16, "Fehler"
            End If
        End With
    Else
        If Target.Address = "$D$4" Then
            Application.EnableEvents = False
            Cells(18, 5).Value = 0                                Hier sollte er doch alles auf Null setzen? :16:
            Cells(20, 5).Value = 0
            Application.EnableEvents = True
        End If
    End If
End Sub
 

Kann jemand mir den Fehler zeigen

danke Annette
Vielen Dank den lieben Helfern!   

artcreativity


Merken
Antworten Top
#2
Hallo Annette,

beschreibe bitte, wie so eine Eingabe in welcher Reihenfolge geschieht bzw. wann genau dieser Code ausgeführt werden soll.
Außerdem prüfst Du mehrmals die Zelle E20 (Cells(20, 5) ) !?

Gruß Uwe
Antworten Top
#3
Hallo Uwe,

also ich gebe bei D4 die Artkelnummer ein.

dann bei E18 den Wert des Abganges oder bei E20 einen Zugang.

Der jeweilige Wert wird auf Blatt Artikel abgezogen oder addiert Spalte 6(F)   klappt super

Gleichzeitig wird ein Blatt Archiv geführt dort wirt Art-Nr.Name und Zu+ oder Abgang eingetragen (Spalten A-D) Klappt super

Damit eine Eintragung erfolgt habe ich ein Button, da liegt das Makro hinter.

Erst wenn ich eine neue Artikelnummer eintragen wird E18 oder E20 gelöscht,das ist doof.

danke Annette
Vielen Dank den lieben Helfern!   

artcreativity


Merken
Antworten Top
#4
Hallo Annette,

Dein Code passt nicht zu dem was Du beschrieben hast.

Zitat:...
Damit eine Eintragung erfolgt habe ich ein Button, da liegt das Makro hinter.
...

Dein Makro wird ausgeführt werden sobald sich die Werte in den überwachten Zellen ändert.
Zumindest wenn Du den Code hinter das entsprechende Blatt hängst.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
...

Wenn Du die Eintragung über einen Button auslöst kannst Du stattdessen prüfen, ob die Zellen D4, E18 oder E20 nicht leer sind.
Das ginge dann auch über eine "normales" Makro.

Code:
Sub EintragungenÜbernehmen()

If Not IsEmpty(Range("D4")) And Not IsEmpty(Range("E18")) Or Not IsEmpty(Range("E20")) Then
.
.
.
Endi If

End Sub

Das Makro gehört dann hinter den Button.
Unabhändid davon glaube ich nicht, dass diese Codezeilen funktionieren.

Code:
Else
       If Target.Address = "$D$4" Then
           Application.EnableEvents = False
           Cells(18, 5).Value = 0                                Hier sollte er doch alles auf Null setzen? 16
           Cells(20, 5).Value = 0
           Application.EnableEvents = True
       End If
   End If

Gruß
Ich
Antworten Top
#5
Hallo Ich

ich habe noch ein bißchen rumgewerkelt mit meinem Nichtwissen.

Es ist so, dass wenn ich die Artikelnummer eintrage dann erfolgt ohne Button die Eintragung.
Sehr doof in diesem Fall

Also mich an eine neues gewagt: Dieses Mal dein Tipp dem Button hinterlegt,leider kommt Fehler "Variable nicht definiert" und steht bei Target.Address=........ 

Sub EintragungenÜbernehmen()
If Not IsEmpty(Range("D4")) And Not IsEmpty(Range("E18")) Or Not IsEmpty(Range("E20")) Then
    Dim myRange As Range
    If (Target.Address = "$E$18" Or Target.Address = "$E$20") _
        And Trim(Target.Text) <> "" And Not IsError(Cells(18, 5).Value) Then
        With Worksheets("Artikel")
            If .FilterMode Then .ShowAllData
            Set myRange = .Columns(1).Find(What:=Cells(4, 4).Value, _
                LookAt:=xlWhole, LookIn:=xlValues)
            If Not myRange Is Nothing Then
                If Target.Row = 18 Then .Cells(myRange.Row, 6).Value = _
                    .Cells(myRange.Row, 6).Value - Target.Value _
                    Else .Cells(myRange.Row, 6).Value = _
                    .Cells(myRange.Row, 6).Value + Target.Value
            End If
    .Range("D4,E18,E20").Select
End Sub

danke Annette
Vielen Dank den lieben Helfern!   

artcreativity


Merken
Antworten Top
#6
Hallo Annette,

sorry, der restliche Code müsste natürlich angepasst werden. Es gibt ja jetzt kein Target mehr. 
Du prüfst ob in den entsprechenden Zellen ein Wert eingetragen ist. 
Ich bin jetzt aber auf dem Sprung. Wenn Du magst, lade doch bitte eine Beispieldatei hoch und
ich schaue mir das später an. Ich arbeite lieber in den Dateien der Fragesteller. 
Das sollte aber kein Hexenwerk sein, einen funktionierenden Code zu erstellen:32:.

Gruß
Ich
Antworten Top
#7
Danke

lade Probedatei hoch

PW immer 0000


danke Annette
Vielen Dank den lieben Helfern!   

artcreativity


Merken
Antworten Top
#8
Wie kann ich Probe atei hochladen ?

Annette
Vielen Dank den lieben Helfern!   

artcreativity


Merken
Antworten Top
#9
Dies Mal klappt es, ANlage ist fda

danke
Annette


Angehängte Dateien
.xlsm   Materialbedsarf.xlsm (Größe: 57,39 KB / Downloads: 10)
Vielen Dank den lieben Helfern!   

artcreativity


Merken
Antworten Top
#10
Hi Anette,

schau hier: http://www.clever-excel-forum.de/thread-326.html
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste