Live-Forum - Die aktuellen Beiträge
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

VBA SelectionChance

VBA SelectionChance
20.04.2018 14:54:29
Patrick
Hallo zusammen,
ich scheitere leider an sage und schreibe an einem Zeilenumbruch in VBA.
Zur Datei:
Ich habe 2 Spalten, in denen bei Klick in eine Zelle eine Inputbox auftauchen soll. So weit so gut. Nun möchte ich aber, dass wenn bereits etwas in der Zelle enthalten ist, der Inhalt + Zeilenumbruch + Inhalt der Inputbox in der Zelle erfasst wird. Ist jedoch die Zelle, in die man klickt, frei, so soll ohne vorherigen Zeilenumbruch der Inhalt der Inputbox in diese Zelle geschrieben
Mein Code bisher:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("L7:L1000")) Is Nothing Then
If Not Target.Count > 1 Then
ActiveSheet.Unprotect
Target = Target + vbNewLine _
+ InputBox("Bitte gib den Zwischenstand der Bearbeitung ein", "Inhalt", "Text")
ActiveSheet.Protect
' Ab hier ist Versuch zur korrekten Anzeige des Zeilenumbruches gestartet:
ElseIf Not Intersect(Target, Range("J7:J1000")) Is Nothing Then
If Not Target.Count > 1 Then
ActiveSheet.Unprotect
If Target  "" Then Target = Target + vbNewLine _
+ InputBox("Bitte gib das Datum / Uhrzeit des letzten Versuches ein", "Inhalt", "Datum /  _
Uhrzeit")
ActiveSheet.Protect
ElseIf Not Intersect(Target, Range("J7:J1000")) Is Nothing Then
If Not Target.Count > 1 Then
ActiveSheet.Unprotect
If Target = "" Then Target = InputBox("Bitte gib das Datum / Uhrzeit des letzten Versuches ein", _
_
"Inhalt", "Datum / Uhrzeit")
ActiveSheet.Protect
End If
End If
End If
End If
End Sub

Leider wird nun die Inputbox im Range("J7:J1000") gar nicht mehr angezeigt. Was habe ich falsch gemacht? Leider finde ich es nicht, zudem wird wahrscheinlich noch immer der Zeilenumbruch ein Problem machen.
Vielen Dank für Eure Hilfe!
Gruß,
Patrick

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA SelectionChance
20.04.2018 15:05:22
Hajo_Zi
Hallo Patrick,
man sollte mit Einrückungen arbeiten. Macht den Code Übersichtlicher.
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim StWert As String
If Not Intersect(Target, Range("L7:L1000")) Is Nothing Then
If Not Target.Count > 1 Then
ActiveSheet.Unprotect
StWert = InputBox("Bitte gib den Zwischenstand der Bearbeitung ein", _
"Inhalt", "Text")
If Target  "" Then
Target = Target + vbNewLine + StWert
Else
Target = StWert
End If
End If
' Ab hier ist Versuch zur korrekten Anzeige des Zeilenumbruches gestartet:
ElseIf Not Intersect(Target, Range("J7:J1000")) Is Nothing Then
If Not Target.Count > 1 Then
ElseIf Not Intersect(Target, Range("J7:J1000")) Is Nothing Then
If Not Target.Count > 1 Then
ActiveSheet.Unprotect
If Target = "" Then Target = InputBox("Bitte gib das Datum / " _
& " Uhrzeit des letzten Versuches ein", "Inhalt", "Datum / Uhrzeit")
ActiveSheet.Protect
End If
End If
ActiveSheet.Protect
End If
End Sub

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: VBA SelectionChance
20.04.2018 15:24:05
Patrick
Grandios!
Mit ein wenig Anpassung (unteres Target an oberes von Dir angepasst) funktioniert alles super. Vielen Dank!
Danke für Rückmeldung oT
20.04.2018 16:03:25
Hajo_Zi
AW: VBA SelectionChance
20.04.2018 15:12:07
mmat
Hallo Patrick,
es wird dich freuen zu hören, dass der Zeilenumbruch NICHT die Ursache deines Problems ist.
Das ElseIF in Zeile 12/13 bezieht sich auf das IF in Zeile 4 ("If Not Target.Count > 1 Then").
Stell die Bedingung, dass nur eine Zelle markiert sein darf, ganz an den Anfang und lass es in der Folge weg, dann wird die Verschachtelung deutlich einfacher ...
If Target.Cells.Count > 1 Then Exit sub
Hilft das ?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige