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

Daten per Klick nummerieren/per Formel sortieren

Daten per Klick nummerieren/per Formel sortieren
17.07.2017 07:25:58
CarVogt
Hallo zusammen,
vor ein paar Tagen habe ich mir bereits zweimal Hilfe geholt. Dabei ging es zum einen darum, per Doppelklick ein X in eine Spalte einzutragen, zum anderen darum, die Datensätze, die ein X in Spalte H erhalten haben, ohne Leerzeilen in einem anderen Blatt aufzulisten.
Ersteres übernimmt folgender Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim RaBereich As Range
Set RaBereich = Range("H2:H250")
If Intersect(Target, RaBereich) Is Nothing Then Exit Sub
Application.EnableEvents = False
Cancel = True
If Target.Value = "X" Then
Target.Value = ""
Else
Target.Value = "X"
End If
Application.EnableEvents = True
Set RaBereich = Nothing
End Sub
letzteres folgende Formel:
{=WENN(ZEILEN($1:1)>ZÄHLENWENN(Artikel!$H$2:$H$250;"x");"";INDEX(Artikel!$A$2:$A$250; KKLEINSTE(WENN(Artikel!$H$2:$H$250="x";ZEILE($2:$250)-1);ZEILE(A1)))) }
Nun zu meiner Frage:
Ich würde gerne die Reihenfolge der Daten beeinflussen können, d.h. statt des "X" per Doppelklick sollte aufwärts gezählt werden (oder auch neben dem "X", ob dieses sichtbar ist, ist nicht wichtig). Die Daten im anderen Blatt sollten dann, darauf basierend, aufsteigend sortiert werden. Und um das noch ein wenig komplizierter zu machen, müsste die Möglichkeit bestehen, falls ich beim Klicken eine Zeile vergessen habe, hier die laufende Nummer händisch zu korrigieren. dann müssten natürlich alle weiteren, bereits erstellten Nummern um eins nach oben korrigiert werden.
Das übersteigt leider meine Excel-Kenntnisse bei weitem. Kann mir da jemand von euch helfen?
Danke
Carsten

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel würde sich dann vereinfachen ...aber...
17.07.2017 09:31:42
...
Hallo Carsten,
... und zwar reicht als Formel dann:
=WENN(ZEILE(A1)>ANZAHL(Artikel!H:H);"";INDEX(Artikel!A:A;VERGLEICH(KKLEINSTE(Artikel!H:H;ZEILE(A1)); Artikel!H:H;0))) 
Übrigens wäre es mit einer erweiterten Formel auch möglich, eine (z.B. aufwärts) sortierte Ausgabe Deiner Artikel auszugeben, wenn Du in Artikel!H:H weiterhin nur "x" zu stehen hättest. Zu klären wäre zuvor dann aber sinnvollerweise, ob die Artikel alle numerisch oder alphanumerisch bezeichnet sind.
Aus VBA-Lösungen halte ich mich heraus, deshalb stelle ich den thread für Deine spez. gewünschte Nummerierung wieder offen.
Gruß Werner
.. , - ...
Anzeige
AW: Formel würde sich dann vereinfachen ...aber...
17.07.2017 13:50:09
CarVogt
Hallo Werner,
vielen Dank, funktioniert prima.
Gruß
Carsten
AW: Daten per Klick nummerieren/per Formel sortieren
17.07.2017 10:02:50
MCO
Moin!
Ergänzen zu Werners Eintrag ein Vorschlag für die numerische Sortierung / Kennzeichnung per VBA
- Per Doppelklicke zum nächsten numerischen Eintrag:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim RaBereich As Range
Set RaBereich = Range("H2:H250")
If Intersect(Target, RaBereich) Is Nothing Then Exit Sub
Application.EnableEvents = False
Cancel = True
Max = WorksheetFunction.Max(RaBereich, 0)
Target.Value = Max + 1
Application.EnableEvents = True
Set RaBereich = Nothing
End Sub
- zum Hochzählen von bereits vorhandenen Einträgen nach manuellem Eingriff
--> Aufruf über Kontextmenü-Eintrag
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'Kontextmenü verändern
Dim objCBar As CommandBar, objcBtn As CommandBarButton
Set objCBar = Application.CommandBars("Cell")
objCBar.Reset
Set objcBtn = objCBar.Controls.Add(msoControlButton, Before:=1, Temporary:=True)
With objcBtn
.Caption = "nachfolgende Werte um 1 erhöhen"
.OnAction = "Werte_plus"
.FaceId = 374
End With
End Sub

...mit dem Entsprechenden Code in einem Modul
Sub Werte_plus()
Dim rng As Range, zahl As Range
Set rng = ActiveCell.Columns.SpecialCells(xlCellTypeConstants)
For Each zahl In rng
If zahl.Address  ActiveCell.Address And zahl >= ActiveCell Then zahl.Value = zahl + 1
Next zahl
End Sub
Viel Vergnügen!
Gruß, MCO
Anzeige
AW: Daten per Klick nummerieren/per Formel sortieren
17.07.2017 11:49:36
CarVogt
Hallo MCO,
die ersten beiden Codes funktionieren gut. Danke dafür.
Wenn ich nun aber über das Menü die nachfolgenden Werte erhöhen möchte meldet sich der Debugger.
Laufzeitfehler 13, Typen unverträglich
"zahl.Value = zahl + 1" wird gelb hinterlegt angezeigt.
Hast Du eine Idee, woran das liegen kann?
AW: Daten per Klick nummerieren/per Formel sortieren
17.07.2017 13:26:48
MCO
Hi!
Ich vermute, das du nicht nur reine Zahlendaten drin stehen hast. Und Textwerte werden nicht addiert.
Begrenze die Auswahl der zu ändernden Zellen auf numerische Werte:
statt
Set rng = ActiveCell.Columns.SpecialCells(xlCellTypeConstants)

schreibe
Set rng = ActiveCell.Columns.SpecialCells(xlCellTypeConstants,xlNumbers )
Sollte klappen!
Gruß, MCO
Anzeige
AW: Daten per Klick nummerieren/per Formel sortieren
17.07.2017 13:54:04
CarVogt
Ok, das hat jetzt funktioniert. Allerdings beschränkt sich das Makro nicht auf Spalte H sondern läuft dann weitere Spalten durch. Wie kann ich das noch begrenzen?
AW: Daten per Klick nummerieren/per Formel sortieren
17.07.2017 14:54:58
CarVogt
Hallo MCO,
habs hinbekommen. Jetzt funktionierts.
Danke für Deine Hilfe
Gruß
Carsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige