Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1620to1624
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

Abfrageproblem

Abfrageproblem
14.05.2018 16:54:10
StefanGlander
Guten Tag
nach langer Zeit benötige ich heute erneut Eure Hilfe.
Ich möchte die Spalten 4 und 5 befüllen .
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column  5 Then Exit Sub
If IsEmpty(Target) Then Exit Sub
If Target = "n" Then '
Target = "Nein"
ElseIf Target = "g" Then
Target = "Gut"
ElseIf Target = "N" Then
Target = "Nein"
ElseIf Target = "G" Then
Target = "Gut"
End If
If Target.Column  4 Then Exit Sub
If IsEmpty(Target) Then Exit Sub
If Target = "o" Then
Target = "Ohne"
ElseIf Target = "O" Then
Target = "Ohne"
ElseIf Target = "m" Then
Target = "Mit"
ElseIf Target = "M" Then
Target = "Mit"
End If
End Sub

Danke für Eure Hilfe

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrageproblem
14.05.2018 17:06:09
Robert
Hallo Stefan,
versuche es mal so:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If IsEmpty(Target) Then Exit Sub
If Target.Column = 5 Then
If Target = "n" Then '
Target = "Nein"
ElseIf Target = "g" Then
Target = "Gut"
ElseIf Target = "N" Then
Target = "Nein"
ElseIf Target = "G" Then
Target = "Gut"
End If
ElseIf Target.Column = 4 Then
If Target = "o" Then
Target = "Ohne"
ElseIf Target = "O" Then
Target = "Ohne"
ElseIf Target = "m" Then
Target = "Mit"
ElseIf Target = "M" Then
Target = "Mit"
End If
Else
Exit Sub
End If
End Sub
Gruß
Robert
Anzeige
AW: Abfrageproblem
14.05.2018 17:17:52
StefanGlander
Danke Dir,
laüft super
Gruss
Stefan
Gerne und Danke für die Rückmeldung (owT)
14.05.2018 17:18:52
Robert
AW: Abfrageproblem
14.05.2018 17:31:21
Daniel
Hi
man sollte solche Makros so schreiben, dass sie auch funktionieren, wenn man mehrere Zellen gleichzeitig bearbeitet.
Außerdem kann man hier etwas kürzen, wenn man sich unabhängig von Groß- oder Kleinschreibung macht.
Desweitern sollte man vermeiden, dass solche Eventmakros sich selber aufrufen.
Das ist schlecht für die Performance und kann sogar in einer Endlosschleife enden, daher verwende man Application.EnableEvents = False (und hinterher das Einschalten nicht vergessen!)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
If Intersect(Target, Range("D:E")) Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each Zelle In Intersect(Target, Range("D:E"))
Select Case Zelle.Column
Case 4
Select Case LCase(Zelle.Value)
Case "g": Zelle.Value = "Gut"
Case "n": Zelle.Value = "Nein"
Case Else
End Select
Case 5
Select Case LCase(Zelle.Value)
Case "o": Zelle.Value = "Ohne"
Case "m": Zelle.Value = "Mit"
Case Else
End Select
End Select
Next
Application.EnableEvents = True
End Sub
Gruß Daniel
Anzeige
AW: Abfrageproblem
14.05.2018 18:34:35
StefanGlander
Hallo Daniel. auch bei Dir möchte ich mich bedanken!
Ich würde gerne noch Sachen zum Thema fragen:
Wenn ich zusätzlich auch noch die Spalte F mit einbinden möchte heut mein Umbau nicht hin... leider.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
If Intersect(Target, Range("D:E")) Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each Zelle In Intersect(Target, Range("D:E:F"))
Select Case Zelle.Column
Case 4
Select Case LCase(Zelle.Value)
Case "g": Zelle.Value = "Gut"
Case "n": Zelle.Value = "Nein"
Case Else
End Select
Case 5
Select Case LCase(Zelle.Value)
Case "o": Zelle.Value = "Ohne"
Case "m": Zelle.Value = "Mit"
Case Else
End Select
Case 6
Select Case LCase(Zelle.Value)
Case "a": Zelle.Value = "A"
Case "b": Zelle.Value = "B"
Case Else
End Select
End Select
Next
Application.EnableEvents = True
End Sub
Wo mache ich den Fehler und die 2 Frage wenn ich zusätzlich die Spalte M mit einbinden möchte wie muss ich das schreiben.
Lieben Gruß
Stefan
Anzeige
AW: Abfrageproblem
14.05.2018 18:49:04
Daniel
Hi
du musst grundsätzlich alle Spalten, bei denen dieses Makro ausgeführt werden soll, hier angeben:
If Intersect(Target, Range("D:F,M:M")) Is Nothing Then Exit Sub

und in der FOR-Schleife ebenfalls.
For Each Zelle In Intersect(Target, Range("D:F,M:M"))
Zellbereiche, die lückenlos zusammengehören (D-F) gibt man mit Doppelpunkt getrennt mit erster und letzter Zelle an.
Weiter Zellbereiche nach Lücken (Spalte M) fügt man mit Komma getrennt hinzu.
Einzelzeilen oder Einzelspalten muss man auch nach dem Von-Bis-Schema mit Doppelpunkt angeben.
Gruß, Daniel
Anzeige
Vielen Dank o.T.
14.05.2018 19:30:18
StefanGlander
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige