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

Aktion mit Target umkehren

Aktion mit Target umkehren
12.07.2020 20:12:34
MB12
Hallo zusammen,
mit diesem Makro wird bei Eintrag eines "X" in Spalte Z einer ausgewählten Zeile
diese Zeile in ein weiteres Tabellenblatt ("Ausgabe_Parameter") kopiert.
Da viele User auf die Datei zugreifen, kommen natürlich auch Fehler vor.
Wie kann ich zusätzlich die Umkehrung erreichen -
also Löschen von X bedeutet gleichzeitig Löschen der irgendwann einkopierten Zeile in dem weiteren Tabellenblatt?
Herzlichen Dank im Voraus aus dem HomeOffice :-)
Margarete
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iRow As Integer
'Bei Eintragung eines X in Spalte Z soll die entsprechende Zeile kopiert
'und am Ende der Tabelle in "Ausgabe_Parameter" eingetragen werden.
If Target.Column  26 Then Exit Sub
If IsEmpty(Target) Then Exit Sub
If UCase(Target.Value) = "X" Then
With Worksheets("Ausgabe_Parameter")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Rows(Target.Row).Copy .Rows(iRow)
End With
End If
Application.CutCopyMode = False
Call Spalten_löschen
End Sub

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktion mit Target umkehren
12.07.2020 20:24:08
Daniel
Hi
Kann man schon machen.
Allerdings braucht man dazu einen Identbegriff in einer Spalte, der Eindeutig ist. Sonst kannst du die betreffende Zeile nicht finden, weil es ja keinen Zusammenhang bezüglich der Zeilen zwischen beiden Tabellen gibt.
Außerdem wäre dass dann der IsEmpty-Fall, dh du darfst dann drfst dann an dieser Stelle das Makro nicht mit Exit-Sub verlassen, sondern musst hier das suchen und löschen der Zeile einprogrammieren.
Gruß Daniel
AW: Aktion mit Target umkehren
12.07.2020 20:30:49
MB12
Hi Daniel,
hab ich verstanden. Möglichkeit: Wenn z.B. in Z4 das "X" steht, wird die betreffende Zeile gelöscht, wenn ich zusätzlich in Y4 ein weiteres "X" eintrage (Die Spalte ist leer). Damit muss das Makro den Zellinhalt z.B. in Spalte C oder, um ganz sicher zu gehen, in Spalte C & Spalte E vergleichen.
Denke ich korrekt? Wie sieht dann das Makro aus?
Danke für deine Hilfe, Margarete
Anzeige
AW: Aktion mit Target umkehren
12.07.2020 20:54:22
Daniel
im Prinzip so:
beim Löschen des x wird die zeile mit dem selben Inhalt in Spalte C auf dem anderen Blatt gelöscht:
dim Zelle as range
if IsEmpty(target) then
set Zelle = sheets("Ausgabe_Parameter").columns(3),find(what:=cells(target.row, 3).text,  _
lookat:=xlwhole, lookin:=xlvalues)
if not Zelle is nothing then Zelle.EntireRow.delete
elseIf Ucase(target) = "x" then
... und hier der Code zum löschen
end If
gruß Daniel
AW: Aktion mit Target umkehren
12.07.2020 20:57:44
MB12
hab herzlichen Dank - wird als erstes morgen früh getestet!
schönen Abend noch, Margarete
AW: Aktion mit Target umkehren
12.07.2020 21:11:58
MB12
Hallo Daniel,
habe die Codes zusammengefügt, kleiner Fehler ist noch drin:
Sub test()
dim.....
If Target.Column  26 Then Exit Sub
If IsEmpty(Target) Then
Set Zelle = sheets("Ausgabe_Parameter").columns(3),find(what:=cells(target.row, 3).text, _
lookat:=xlwhole, lookin:=xlvalues)
'***** beim Komma nach .columns(3),  kommt Meldung:Fehler beim Kompilieren, Erwartet:  _
Anweisungsende**********
If Not Zelle Is Nothing Then Zelle.EntireRow.Delete
ElseIf UCase(Target) = "x" Then
With Worksheets("Ausgabe_Parameter")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Rows(Target.Row).Copy .Rows(iRow)
End With
End If
Application.CutCopyMode = False
Call Spalten_löschen
End Sub
Kannst du nochmal helfen? Danke schön
Anzeige
AW: Aktion mit Target umkehren
12.07.2020 21:22:51
Rudi
erstze das , vor find durch einen .
set Zelle = sheets("Ausgabe_Parameter").columns(3).find(what:=cells(target.row, 3).text,  _
lookat:=xlwhole, lookin:=xlvalues)
Gruß
Rudi
AW: Aktion mit Target umkehren
16.07.2020 09:06:42
MB12
Hallo Rudi,
danke für die Hilfe, habe deinen Beitrag eben erst gesehen.
LG, Margarete
AW: Aktion mit Target umkehren
12.07.2020 21:23:28
Daniel
Punkt statt Komma vor dem find!
AW: Juhuu! Passt, danke schön
12.07.2020 21:27:42
MB12
LG, Margarete
AW: Passt leider noch nicht
16.07.2020 09:17:56
MB12
Hallo Daniel bzw. alle
Hatte leider um die Uhrzeit nicht mehr getestet. Irgendein Fehler verbirgt sich.
Ursprünglich bestand das Makro nur aus dem "ElseIf"-Teil - hat also bei Setzen des "x" die aktuelle Zeile in ein 2. Blatt kopiert. Das hat funktioniert.
Jetzt habe ich eine Ergänzung (IfIsEmpty-Teil) hinzugefügt und dabei wohl einen Fehler gemacht. Es wird nichts mehr kopiert. Normalerweise würde ich mit F8 testen, das funktioniert aber mit Worksheet_Change so nicht.
Wer findet meinen Fehler? Vielen herzlichen Dank.
Margarete
Hier mein erweitertes Makro:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iRow As Integer
Dim Zelle As Range
'Bei Eintragung eines X in Spalte Z soll die entsprechende Zeile kopiert
'und am Ende der Tabelle in "Ausgabe_Parameter" eingetragen werden.
'Nach Löschen des x werden die Zellinhalte in Spalte C abgeglichen und die Zeile wieder gelö _
scht.
If Target.Column  26 Then Exit Sub
If IsEmpty(Target) Then
Set Zelle = Sheets("Ausgabe_Parameter").Columns(3).Find(what:=Cells(Target.Row, 3).Text, _
lookat:=xlWhole, LookIn:=xlValues)
If Not Zelle Is Nothing Then Zelle.EntireRow.Delete
ElseIf UCase(Target) = "x" Then
With Worksheets("Ausgabe_Parameter")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Rows(Target.Row).Copy .Rows(iRow)
End With
End If
Application.CutCopyMode = False
End Sub

Anzeige
AW: Passt leider noch nicht
16.07.2020 09:51:58
peterk
Hallo
Setze einen "Break point" in der Sub und Du kannst mit F8 testen
Peter
AW: danke; habe damit den Fehler gefunden
16.07.2020 12:13:09
MB12
LG, Margarete

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige