Moin!
Grundlage ist eine "intelligente" Tabelle (Einfügen, Tabelle).
Per Rechtsklick in die Spalte D wird hochgezählt (bis max 10).
Folgender Code ist im Blatt Tabelle1 hinterlegt:
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Me.ListObjects(1).DataBodyRange.Columns(4), Target) Is Nothing Then
Cancel = True
If Target = 10 Then Exit Sub
Target = Target + 1
End If
End Sub
Datei ist im Anhang.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
(15.04.2017, 10:28)RPP63 schrieb: Moin!
Grundlage ist eine "intelligente" Tabelle (Einfügen, Tabelle).
Per Rechtsklick in die Spalte D wird hochgezählt (bis max 10).
Folgender Code ist im Blatt Tabelle1 hinterlegt:
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Me.ListObjects(1).DataBodyRange.Columns(4), Target) Is Nothing Then
Cancel = True
If Target = 10 Then Exit Sub
Target = Target + 1
End If
End Sub
Datei ist im Anhang.
Gruß Ralf
Hallo Ralf,
supi, das erleichtert das Arbeiten erheblich. Hast du noch einen Tipp für mich, wie ich eigene Felder definiere, bzw. auch weitere? Kann ich den Code kopieren und editieren? Wäre es auch möglich:
Ich klicke auf nicht erreicht bis z. B. 5 hoch, dann erreiche ich die Nummer und klicke rechts + 1 in erreicht. Wenn erreicht +1=Feld nicht erreicht +5 wird gelöscht.
Das funktioniert sehr gut. Ich habe auch schon selbst neue Zeilen Spalten definiert.
Das einzige Problem was ich sehe: wenn ich mich verklicke. 8x nicht erreicht und nun klicke ich versehntlich 1x auf erreicht, dann sind die 8 weg. Mit Strg-R ist das nicht widerrufbar.
16.04.2017, 06:22 (Dieser Beitrag wurde zuletzt bearbeitet: 16.04.2017, 06:25 von RPP63.)
Versuche doch bitte, eingestellten Code zu verstehen.
Dann ist Deine Salamitaktik unnötig und Du lernst zusätzlich was für Dein nächstes Projekt.
Zitat:Kann ich denn mit Rechtsklick auch ein Datum in Spalte 1 setzen?
Ein beliebiges Datum oder das Tagesdatum?
Für Letzteres einfach noch einen Case einfügen:
Code:
Case 1
Cancel = True
Target = Date
Für ein beliebiges Datum mit Fehlerüberprüfung:
Code:
Case 1
Dim Datum$
Erneut:
Datum = Application.InputBox("Datum eingeben:", Default:=Format(Target, "dd.mm.yyyy"))
If IsDate(Datum) Then
Cancel = True
Target = CDate(Datum)
Else
GoTo Erneut
End If
Hier kannst Du z.B. das Datum 17.04.2017 auf verschiedene Arten einfügen, alles wird von VBA als korrektes Datum akzeptiert:
17.4
17-4
17/4
17.4.17
17-4-17
17/4/2017
Ich bevorzuge in solchen Fällen die Varianten mit - oder / als Trennzeichen, da ich ein Datum sehr schnell über den Ziffernblock eingeben kann.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Moin Ralf!
Natürlich nicht, weil ich den DataBodyRange abfrage.
Aber Deine Frage war ja wohl eher rhetorischer Natur.
Da der TE aber auch eine Rufnummer braucht, reicht es, diese zunächst unterhalb einzutragen.
Der DataBodyRange erweitert sich dann ja automatisch.
P.S.:
Wie Du siehst, ist hier mal wieder die leidige Salamitaktik kontraproduktiv … :s
Gruß und schöne Feiertage
Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)