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

Wert nach oben suchen und Zelle ausgeben

Wert nach oben suchen und Zelle ausgeben
29.09.2018 00:12:33
BenniBoouu
Hallo zusammen,
ich bin schon oft über Google auf dieses tolle Forum aufmerksam geworden. Aktuell sitze ich daran eine Lösung für folgendes Problem zu finden. Ich hoffe Ihr habt eine schnelle Lösung parat. Irgendwie stehe ich hier auf dem Schlauch:
Ih habe eine Spalte in der untereinander Werte stehen:
LS 1234
Artikel1
Artikel2
Artikel3
LS 1235
Artikel3
Artikel1
Artikel50
LS 1236
Artikel12
LS1237
Artikel21
Artikel1
Um mit den Daten weiterarbeiten zu können, würde ich immer die jeweils nächste LS-Nr. darüber vor der Artikel-Nummer benötigen. Wäre das irgendwie umzusetzen ohne große VBA Kenntnisse? Vielleicht auch einfach per Formel?!
Ihr wärt eine große Unterstützung.
Vielen Dank im VOraus!

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

Betreff
Datum
Anwender
Anzeige
AW: Wert nach oben suchen und Zelle ausgeben
29.09.2018 00:17:21
Sepp
Hallo Benni,
was soll bei deinem Beispiel als Ergebnis herauskommen?
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Wert nach oben suchen und Zelle ausgeben
29.09.2018 01:06:09
Werner
Hallo Benni,
mit kleinem Makro?
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim raFund As Range
If Target.Column = 1 Then
If IsEmpty(Target) And Not IsEmpty(Target.Offset(-1)) Then
Cancel = True
Set raFund = Columns(Target.Column).Find(What:="LS", LookIn:=xlValues, _
LookAt:=xlPart, SearchDirection:=xlPrevious)
If Not raFund Is Nothing Then
Target = "LS " & Right(raFund.Value, 4) + 1
Else
MsgBox "Keine LS-Nummer vorhanden."
End If
End If
End If
End Sub
Das Makro gehört ins Codemodul der Arbeitsmappe in der es sich auswirken soll.
Rechtsklick auf den Tabellenblattreiter - Code anzeigen - Code rechts ins Codefenster kopieren.
Der Code startet bei Doppelklick in der jeweils ersten freien Zelle in Spalte A.
Gruß Werner
Anzeige
Oder wenn....
29.09.2018 01:35:42
Werner
Hallo Benni,
...wenn die Ziffernfolge auch mehr als 4-stellig sein kann/soll:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim raFund As Range
If Target.Column = 1 Then
If IsEmpty(Target) And Not IsEmpty(Target.Offset(-1)) Then
Cancel = True
Set raFund = Columns(Target.Column).Find(What:="LS", LookIn:=xlValues, _
LookAt:=xlPart, SearchDirection:=xlPrevious)
If Not raFund Is Nothing Then
Target = "LS " & Mid(raFund, 4, 9 ^ 9) + 1
Else
MsgBox "Keine LS-Nummer vorhanden."
End If
End If
End If
End Sub
Gruß Werner
Anzeige
AW: Oder wenn....
29.09.2018 15:48:56
BenniBoouu
Hallo Werner,
danke für deine Hilfe. Leider bekomme ich einen Lauzeitfehler 1004 in dieser Zeile:
If IsEmpty(Target) And Not IsEmpty(Target.Offset(-1)) Then
AW: Oder wenn....
29.09.2018 16:51:54
Werner
Hallo Benni,
dann machst du den Doppelklick in Zeile 1. Da bin ich davon ausgegangen, dass da Überschriften drin sind.
Ich habe das Makro jetzt noch mal angepasst.
-bei Doppelklick in Zeile 1 wird die LS-Nummer LS 0001 angelegt
-sollte irgendwo größer Zeile 1 doppelt geklickt werden und es ist vorher noch keine LS-Nummer vorhanden, dann erfolgt eine Abfrage, ob die LS-Nummer LS 0001 angelegt werden soll
-die LS-Nummern werden vierstellig mit führenden Nullen angelegt.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim raFund As Range
If Target.Column = 1 And Target.Row > 1 Then
If IsEmpty(Target) And Not IsEmpty(Target.Offset(-1)) Then
Cancel = True
Set raFund = Columns(Target.Column).Find(What:="LS", LookIn:=xlValues, _
LookAt:=xlPart, SearchDirection:=xlPrevious)
If Not raFund Is Nothing Then
Target = "LS " & Format(Mid(raFund, 4, 9 ^ 9) + 1, "0000")
Else
If MsgBox("Es ist noch keine LS-Nummer vorhanden." & vbLf & _
"Soll die LS-Nummer LS 0001 angelegt werden?", vbYesNo) = vbYes Then
Cancel = True
Target = "LS " & Format(1, "0000")
End If
End If
End If
Else
Cancel = True
Target = "LS " & Format(1, "0000")
End If
End Sub
Gruß Werner
Anzeige
da kommt wohl auch wieder nichts mehr. o.w.T.
03.10.2018 09:55:07
Werner
per Formel: LS-Nr. auflisten
29.09.2018 07:52:10
WF
Hi,
Deine Werte stehen in A1 bis A?
senkrechte Auflistung:
{=WENNFEHLER(INDEX(A$1:A$99;KKLEINSTE(WENN(LINKS(A$1:A$99;2)="LS";ZEILE(X$1:X$99));ZEILE(X1)));"")}
runterkopieren
oder waagerechte Auflistung:
{=WENNFEHLER(INDEX($A1:$A99;KKLEINSTE(WENN(LINKS($A1:$A99;2)="LS";ZEILE($X1:$X99));SPALTE(A1)));"")}
nach rechts kopieren
WF

337 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige