Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Strichliste o. ähnliches
#11
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


Angehängte Dateien
.xlsm   per Rechtsklick hochzählen.xlsm (Größe: 13,07 KB / Downloads: 13)
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)
Antworten Top
#12
(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.
Antworten Top
#13
Bitte klicke zum antworten nicht auf Zitatantwort, sondern auf Antworten.
(Man kann durchaus sehen, was drüber steht ;))

Ja, ist kein großer Akt.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Me.ListObjects(1).DataBodyRange, Target) Is Nothing Then
   Select Case Target.Column
      Case 3
         Cancel = True
         Target = Time
         Target.Offset(0, 1).ClearContents
      Case 4
         Cancel = True
         If Target = 10 Then Exit Sub
         Target = Target + 1
   End Select
End If
End Sub
Es wird die Uhrzeit in Spalte C eingetragen, evtl. Spaltenbreite anpassen, wenn ###### angezeigt wird.

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)
Antworten Top
#14
ok Smile

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.
Antworten Top
#15
Du kannst eine Sicherheitsabfrage einstreuen, die hier tatsächlich auch Sinn macht.
Nur für Spalte C:
Code:
     Case 3
        Cancel = True
        If MsgBox("Wirklich erreicht?", vbYesNo + vbQuestion) = vbYes Then
           Target = Time
           Target.Offset(0, 1).ClearContents
        End If

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)
Antworten Top
#16
Die Frage ob erreicht ist, ist in der Tat sehr wichtig, daher perfekt wie es nun gelöst ist.

Kann ich denn mit Rechtsklick auch ein Datum in Spalte 1 setzen?
Antworten Top
#17
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)
Antworten Top
#18
Hi Ralf,

(16.04.2017, 06:22)RPP63 schrieb: Für Letzteres einfach noch einen Case einfügen:

geht das auch, wenn Du unterhalb der Tabelle in Spalte A rechtsklickst?
Antworten Top
#19
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)
Antworten Top
#20
Hi Ralf,

(16.04.2017, 10:17)RPP63 schrieb: Aber Deine Frage war ja wohl eher rhetorischer Natur.

jain, könnte ja sein, daß es nur bei mir nicht geht.

Dir auch schöne Ostern!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste