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

Makro soll in die nächste Zelle springen

Makro soll in die nächste Zelle springen
10.01.2021 14:10:06
Mildred
Hallo zusammen,
ich habe einen VBA Code, das bei der Eingabe in bestimmten Zellen ein anderes Tabellenblatt kopiert und mit dem Namen des jeweiligen Zellinhaltes anlegt. Gleichzeitig wird aber auch geprüft, ob dieser Name bereits existiert, weil ja nicht 2 Tabellenblätter mit dem gleichen Namen in einer Datei angelegt werden können. Wenn dies der Fall ist, wird das Tabellenblatt nicht kopiert und nicht mit den Namen angelegt. Jetzt möchte ich das Makro aber so steuern, dass, wenn in diesen Zellen ein Name eingetragen wird, der bereits existiert, der Cursor in die nächste Zelle springt, ohne den Eintrag in der jeweiligen Zelle zu erlauben. Das Makro darf aber nicht so gesteuert werden, dass dann in der besagten Zelle der Inhalt auf leer ("") gesetzt wird, weil es auch hier ein weiteres Makro gibt, dass, wenn die Zelle geleert wird, ein Tabellenblatt gelöscht wird. Das Makro muss in die nächste Zelle springen.
Das Makro sieht so aus (es geht um den Teil, der fett und kursiv geschrieben ist):
Option Explicit
Private mstrSheetname As String
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Fehler As Integer, ws As Object
If Target.Column = 5 Then
Select Case Target.Row
Case 12, 18, 24, 30
If Not IsEmpty(Target.Cells(1, 1).Value) Then
mstrSheetname = Replace(Target.Cells(1, 1), "/", "")
If MsgBox("Tabelenblatt mit Name """ & Target.Text & """ anlegen ?", _
vbYesNo, "Blatt Vorlage kopieren") = vbYes Then
For Each ws In ThisWorkbook.Worksheets
If ws.Name = mstrSheetname Then
MsgBox "Blatt mit dem eingegeben Namen " & mstrSheetname _
& " existiert bereits!"
Target.Select
Exit Sub
End If
Next
Application.ScreenUpdating = False
With Worksheets("Kalkulationsvorlage")
.Visible = xlSheetVisible
.Copy Before:=Worksheets("Kalkulationsvorlage")
.Visible = xlSheetVeryHidden
End With
ActiveSheet.Name = mstrSheetname
End If
Else
        For Each ws In ThisWorkbook.Worksheets
If ws.Name = mstrSheetname Then
If MsgBox("Tabellenblatt wirklich löschen?", vbYesNo) = vbYes Then
Application.DisplayAlerts = False
ws.Delete
End If
Exit For
End If
Next ws
End If
Case Else
End Select
End If
Worksheets("Deckblatt Pos 1-4").Select
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 5 Then
Select Case Target.Row
Case 12, 18, 24, 30
mstrSheetname = Replace(Target.Cells(1, 1), "/", "")
Case Else
End Select
End If
End Sub

Vielen Dank im Voraus für eure Hilfe.
V.G. Mildred

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro soll in die nächste Zelle springen
10.01.2021 14:36:14
Werner
Hallo,
meinst du so?
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim ws As Worksheet
If Target.Column = 5 Then
Select Case Target.Row
Case 12, 18, 24, 30
If Not IsEmpty(Target.Cells(1, 1).Value) Then
mstrSheetname = Replace(Target.Cells(1, 1), "/", "")
If MsgBox("Tabelenblatt mit Name """ & Target.Text & """ anlegen ?", _
vbYesNo, "Blatt Vorlage kopieren") = vbYes Then
For Each ws In ThisWorkbook.Worksheets
If ws.Name = mstrSheetname Then
MsgBox "Blatt mit dem eingegeben Namen " & mstrSheetname _
& " existiert bereits!"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
Target.Offset(1).Select
Exit Sub
End If
Next
Application.ScreenUpdating = False
With Worksheets("Kalkulationsvorlage")
.Visible = xlSheetVisible
.Copy Before:=Worksheets("Kalkulationsvorlage")
.Visible = xlSheetVeryHidden
End With
ActiveSheet.Name = mstrSheetname
End If
End If
Case Else
End Select
End If
Worksheets("Deckblatt Pos 1-4").Select
End Sub
Gruß Werner
Anzeige
AW: Makro soll in die nächste Zelle springen
10.01.2021 15:29:49
Mildred
Hallo Werner,
ja genau. Super, vielen Dank!
V.G. Mildred
Gerne u. Danke für die Rückmeldung. o.w.T.
10.01.2021 17:25:28
Werner

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige