Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
888to892
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
888to892
888to892
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Worksheet_Change: Problem mit Zeilenlöschen

Worksheet_Change: Problem mit Zeilenlöschen
27.07.2007 10:37:45
Düppi
Liebe Excel-Profis,
um Hilfe bitte ich Euch bei folgendem Problem: Folgender Code prüft Eingaben über Daten, Gültigkeit, Liste im Eingabebereich C5:C52 (Spalte 3), vergleicht die Eingabe als Suchstring mit Suchbereich AY126:AY263 (Spalte 52) und gibt in Ausgabespalte 70 einen bestimmten Wert aus, den ich (mit einem anderen Makro) in eine txt-Datei schreibe. Läuft soweit, auch einzelne Zellen in C5:C52 kann ich mit Löschtaste leeren und per Makro in Ausgabespalte 70 auch. Nur nur wenn ich in meinem Worksheet_Change mehrere Zeilen in C5:C52 markiere, werden die Werte in Ausgabespalte 70 nicht gelöscht. Ich weiß, Target hat nur eine Zelle. Die Suche in der Recherche verlief erfolglos - wer kann mir helfen, soweit bin ich doch von meiner Lösung nicht mehr entfernt..., glaubt und hofft Düppi.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Application.CutCopyMode = xlCopy Then Exit Sub
Dim Suchbereich As Range
Dim Suchstring As String
Dim Ausgabespalte As Integer
If Not Intersect(Target, Range("C5:C52")) Is Nothing And Target.Count = 1 Then
Suchstring = Target.Value
Set Suchbereich = Range("AY126:AY263").Find(What:=Suchstring, LookAt:=xlPart)
If Target.Column = 3 Then Ausgabespalte = 70
If Suchbereich Is Nothing Then
Exit Sub
End If
If Not Suchbereich Is Nothing And Not IsEmpty(Target) Then
Cells(Target.Row, Ausgabespalte) = Cells(Suchbereich.Row, 52)
End If
If IsEmpty(Target) Then
For Each Target In ActiveWindow.RangeSelection
Cells(Target.Row, Ausgabespalte).ClearContents
Next Target
End If
End If
Application.EnableEvents = True
End Sub


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Change: Problem mit Zeilenlöschen
27.07.2007 11:02:23
Beverly
Hi,
vrsuche es mit diesem Code

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Suchbereich As Range
Dim Suchstring As String
Dim Ausgabespalte As Integer
If Application.CutCopyMode = xlCopy Then Exit Sub
Application.EnableEvents = False
If Not Intersect(Target, Range("C5:C52")) Is Nothing Then
If Target.Column = 3 Then Ausgabespalte = 70
If Target.Count = 1 Then
Suchstring = Target.Value
Set Suchbereich = Range("AY126:AY263").Find(What:=Suchstring, LookAt:=xlPart)
If Suchbereich Is Nothing Then
Exit Sub
End If
If Not Suchbereich Is Nothing And Not IsEmpty(Target) Then
Cells(Target.Row, Ausgabespalte) = Cells(Suchbereich.Row, 52)
End If
Else
If Selection(1) = "" Then
For Each Target In ActiveWindow.RangeSelection
Cells(Target.Row, Ausgabespalte).ClearContents
Next Target
End If
End If
End If
Application.EnableEvents = True
End Sub


________________________________________

Anzeige
AW: Worksheet_Change: Problem mit Zeilenlöschen
27.07.2007 12:49:00
Düppi
Hallo Udo, Hallo Beverly,
Udos hat mit dem Überschreiben der Variablen zwar Recht - der Code bringt leider das gleiche Ergebnis wie meiner - Löschen läuft nicht.
Beverlys Code geht da weiter: Habe ich mehrere Zeilen markiert, werden in Ausgabespalte 70 die entsprechenden Zellen geleert - Hurra! Kleiner, aber feiner Hasenfuß: Markiere ich in C nur eine Zelle, wird das Entsprechum in Spalte 70 nicht gelöscht. Beverly, kannst Du mir an dieser kleinen Stelle nochmals helfen? Wäre supernett. Dank vorab, Düppi!

AW: Worksheet_Change: Problem mit Zeilenlöschen
27.07.2007 17:24:29
Beverly
Hi,
schreibe diese 3 Zeilen unmittelbar vor die Else-Zeile
If Target = "" Then
Cells(Target.Row, Ausgabespalte).ClearContents
End If
Bis später,
Karin

Anzeige
AW: Worksheet_Change: Problem mit Zeilenlöschen
27.07.2007 17:32:18
Düppi
Hallo Karin,
habe ich gemacht - läuft allerbestens. Damit ist mein Problem erledigt - erlaube mir eine kurze Nachfrage, "wo Du doch gerade dran bist..."
Ich schalte, damit der Code läuft, mit If Application.CutCopyMode = True Then Exit Sub die Möglichkeit aus, eine kopierte Zelle mehrmals mit Strg+v zu kopieren - auf die Dauer ist das nervig, weil ich die Möglichkeit doch gern hätte. Muss ich es akzeptieren, die betreffende Zelle immer neu mit Strg+c zu kopieren und sie hernach mit Strg+v einzufügen? Oder gibt es eine Chance, den funktionierenden Code mit der komfortablen Mehrfach-Kopier-Möglichkeit zu verbinden...?

Anzeige
AW: Worksheet_Change: Problem mit Zeilenlöschen
27.07.2007 19:07:00
Beverly
Hi,
ich habe mich nicht weiter um den Rest des Codes gekümmert und mir ist im Augenblick auch gar nicht klar, wozu du in diesem Fall die Prozedur verlassen musst. Weshalb sollte der Code ohne diese Zeile nicht funktionieren? Lade doch deine Arbeitsmappe mit ein paar Spieldaten mal hoch, dann kann ich das vielleicht nachvollziehen.
Bis später,
Karin

AW: Worksheet_Change: Problem mit Zeilenlöschen
27.07.2007 11:06:32
ingoG
Hallo Düppi?,
Dir ist klar, dass Du die Variable Target mit Deiner Schleife überschreibst...
Versuch mal statt
For Each Target In ActiveWindow.RangeSelection
Cells(Target.Row, Ausgabespalte).ClearContents
Next Target
folgenden Code
For Each TT In ActiveWindow.RangeSelection
Cells(TT.Row, Ausgabespalte).ClearContents
Next TT
oben mußt Du nat.
Dim TT as Range
einfügen
Gruß Ingo
PS eine Rückmeldung wäre nett...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige