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

Bei Klick auf Schaltfläche eine Zelle um 1 erhöhen aber alle 100 auslassen

Bei Klick auf Schaltfläche eine Zelle um 1 erhöhen aber alle 100 auslassen
13.02.2020 22:30:07
Jeanson
Hallo,
ich brauche eine Art Zahlengenerator, dafür habe ich schon einen ganz einfachen makro:
Sub Schaltfläche1_BeiKlick()
Range("A5").Select
Nummer = ActiveCell.Value
Nummer = Nummer + 1
ActiveCell.Formula = Nummer
End Sub

und einmal

Sub Schaltfläche1_BeiKlick()
Range("A5").Select
Nummer = ActiveCell.Value
Nummer = Nummer - 1
ActiveCell.Formula = Nummer
End Sub

dies funktioniert gut, nun sollen aber alle hundert (also *00 und *000) übersprungen werden - kann mir hier jemand helfen?
PS: luxus wäre noch ein Makro, der in eine Celle die Zeit, Datum und den letzten Bearbeiter anzeigt :-)
Vielen Dank im Voraus

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei Klick auf Schaltfläche eine Zelle um 1 erhöhen aber alle 100 auslassen
13.02.2020 23:13:01
fcs
Hallo Jeanson,
so:
Sub Schaltfläche1_BeiKlick()
Range("A5").Select
nummer = ActiveCell.Value
nummer = nummer + 1
If nummer Mod 100 = 0 Then nummer = nummer + 1
ActiveCell.Formula = nummer
End Sub
'und einmal
Sub Schaltfläche1_BeiKlick()
Range("A5").Select
nummer = ActiveCell.Value
nummer = nummer - 1
If nummer Mod 100 = 0 Then nummer = nummer - 1
ActiveCell.Formula = nummer
End Sub
LG
Franz
AW: Version für Puristen
13.02.2020 23:21:35
fcs

Sub Schaltfläche1_BeiKlick()
With ActiveSheet.Range("A5")
.Select 'diese Zeile muss nicht sein, es sei den der Cursor soll unbedingt dort stehen.
nummer = .Value
nummer = nummer + 1
If nummer Mod 100 = 0 Then nummer = nummer + 1
.Value = nummer
End With
End Sub
'und einmal
Sub Schaltfläche1_BeiKlick()
With ActiveSheet.Range("A5")
.Select 'diese Zeile muss nicht sein, es sei den der Cursor soll unbedingt dort stehen.
nummer = .Value
nummer = nummer - 1
If nummer Mod 100 = 0 Then nummer = nummer - 1
.Value = nummer
End With
End Sub

Anzeige
AW: Version für Puristen
14.02.2020 11:48:21
Jeanson
ich habe auf Zelle d5 die fortlaufende Zahl mit dem jeweiligen Button "weiter", auf D7,D8,D9 bis D32 eine weitere fortlaufende Zahl inkl Button. Ich dachte ich kann die zwei Module mit range d5:d32 anpassen, damit ich nicht zu jeder Zeile ein eigenes Modul brauche - dies funktioniert leider nicht.
Gibt es hier eine andere Möglichkeit?
Vielen Dank vorab!
AW: Version für Puristen
14.02.2020 14:49:09
fcs
Hallo Jeanson,
es geht auch so, dass man nur ein Makro für Plus und eins für Minus braucht.
Wichtig ist dann, dass die linke obere Ecke der Buttons innerhal der Zelle in der jeweiligen Zeile ist.
In der Beispiel-Datei hab ich es umgesetzt. Es müssen auch nicht mehrere Module sein. Die Makros die den Schaltflächen zugewiesen werden müssen nur verschiedene Namen haben.
https://www.herber.de/bbs/user/135202.xlsm
LG
Franz
Anzeige
AW: Version für Puristen
14.02.2020 16:57:11
Jeanson
Hi Franz,
unglaublich und perfekt, vielen, vielen Dank für Deine Mühe!!!
Vielleicht kannst Du mir bei noch einem Extrawunsch helfen :-)
Ich versuche in der Tabelle folgendes:es soll mittels Hintergrundfarbe (z.B. rot) die zuletzt geänderte Zelle automatisch angezeigt werden - ich habe dies mit "Bedingter Formatierung" versucht, leider bis her ohne Erfolg.
Sprich, in Deiner Tabelle wäre es dann Spalte D und die zuletzt geänderte Zeile soll markiert werden
Dankbare Grüße
AW: Version für Puristen
14.02.2020 17:48:06
Daniel
Hi
beispielsweise so:
1. schreibe folgendenden Code ins Change-Event des Tabellenblatts:
Application.EnableEvents = false
Range("A1").value = Target.row
Range("A2").value = Target.column
Application.EnableEvents = true
2. verwende dann für die betroffenen Zellen folgende Regel in der Bedingten Formatierung:
=Und(Zeile()=$A$1;Spalte()=$A$2)

Gruß Daniel
Anzeige
AW: Version für Puristen
14.02.2020 21:01:48
Jeanson
hi daniel,
dies funktioniert leider nicht, nun macht die Tabelle völlig wilde Dinge :-/
hier meine kompletten Codes:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim z
On Error GoTo Fehler
If Not Intersect(Range("D:D"), Target) Is Nothing Then
If Target.Row = 1 Then Exit Sub
For Each z In Target
If z.Offset(0, -1)  "" Then
Application.EnableEvents = False
z.Offset(0, 2) = Format(Date + Time, "HH:MM:SS" + ", " + "DD.MM.YYYY")
z.Offset(0, 3) = Environ("Username")
End If
Next
End If
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = false
Range("A1").value = Target.row
Range("A2").value = Target.column
Application.EnableEvents = true
End Sub
und der code vom franz aus dem modul:
Option Explicit
Sub prcButton_Plus()
'Hochzählen
Dim Zeile As Long
Zeile = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
Call ZaehlenHochRunter(Zeile, bolPlus:=True)
End Sub
Sub prcButton_Minus()
'Runterzählen
Dim Zeile As Long
Zeile = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
Call ZaehlenHochRunter(Zeile, bolPlus:=False)
End Sub
Sub ZaehlenHochRunter(ByVal Zeile, bolPlus As Boolean, _
Optional Spalte As Long = 4)
Dim nummer As Long
With ActiveSheet
With .Cells(Zeile, Spalte)
'.Select 'diese Zeile muss nicht sein, es sei den der Cursor soll dort stehen.
nummer = .Value
nummer = nummer + IIf(bolPlus, 1, -1)
If nummer Mod 100 = 0 Then nummer = nummer + IIf(bolPlus, 1, -1)
.Value = nummer
End With
End With
End Sub

und Deine Formel

=Und(Zeile()=$A$1;Spalte()=$A$2)
wird auf

=$D$6:$D$32
angewendet,
Anzeige
AW: Version für Puristen
14.02.2020 23:27:22
Daniel
warum hast du zwei Change-Eventmakros?
es gibt immer nur eines pro Blatt.
AW: Version für Puristen
15.02.2020 11:35:45
jesnson
Sorry- ich bin Anfänger! Was muss ich wie ändern?
Zum testen habe ich eine neue leere Tabelle mit Deinem Code genommen, hier funktioniert es teilweise. Es schreibt in der A1 immer die zuletzt geänderte Zellennimmer ein?
Was mache ich falsch? Sorry - für meine Unwissenheit
AW: Version für Puristen
16.02.2020 15:46:59
Daniel
Richtig.
Das Makro schreibt die Zeilennummer der zuletzt geänderten Zelle in eine Zelle (A1)
Und wenn du willst, auch die Spaltennummer.
Das kannst du dann in der bedingten Formatierung verwenden, um diese Zelle zu färben.
Gruß Daniel
Anzeige
perfekt! vielen Dank!!!!!
13.02.2020 23:24:58
Jeanson
perfekt! vielen Dank!!!!!perfekt! vielen Dank!!!!!perfekt! vielen Dank!!!!!perfekt! vielen Dank!!!!!

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige