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

VBA frage Wenn Formel

VBA frage Wenn Formel
22.01.2017 11:05:59
Tobi
Hallo zusammen,
ich habe eine Frage zu VBA:
Wie bekomme ich eine Formel fest verankert?
Das wäre die Formel:
=WENN(B26="";"";WENN(A25="";WENN(MAX($A$16:A25)=0;1;ABRUNDEN(MAX($A$16:A25)+1;0));A25+0,01))
zur Erklärung was ich will:
wenn in B nichts steht soll in A nichts angezeigt werden.
wenn in Spalte B1 (Test-1)etwas steht, dann soll in Spalte A eine Nummer (01) kommen.
wenn ich in Spalte B2 Test-2 schreibe, dann soll die Nummer automatisch A1+0,01 sein
wenn ich in Spalte B3 Test-3 schreibe, dann soll die Nummer automatisch A2+0,01 sein
A B
01 Test-1
01.01 Test-2
01.02 Test-3
Aber wenn B4 leer ist und ich in B5 Test schreibe, dann soll automatisch die Nummer 02 erscheinen in A5
dann wieder weiter zählen wie oben beschrieben
Hoffe es versteht jemand mein "Problem"
und schon mal vielen Dank für die Hilfe!

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

Betreff
Datum
Anwender
Anzeige
AW: und warum überhaupt VBA, denn ...
22.01.2017 12:06:43
...
Hallo Tobi,
... Deine Zielstellung lasst sich sogar mit einer kürzeren Formel als die jetzige realisieren.
In A26: =WENN(B26="";"";WENN(A25="";TEXT(MAX($A$16:A25)+1;"00");A25+1%)) und Formel nach unten kopieren.
Gruß Werner
.. , - ...
AW: Wieder mal ohne oder mit ...
22.01.2017 12:15:35
Gerd
Hallo Tobi,
oder wenn du in Spalte B fertig bist - ohne Runterziehen.
Sub Gliederung()
Dim A, B, y, z
On Error Resume Next
Set A = ActiveSheet.Columns(2).SpecialCells(xlCellTypeConstants).Offset(, -1)
On Error GoTo 0
If Not A Is Nothing Then
For Each B In A.Areas
y = y + 1
B(1, 1).Value = "'" & Format$(y, "00")
For z = 2 To B.Cells.Count
B(z, 1) = "'" & Format$(y, "00") & "." & Format$(z - 1, "00")
Next
Next
Set A = Nothing
End If
End Sub
Gruß Gerd
Anzeige
AW: Wieder mal ohne oder mit ...
22.01.2017 13:24:42
Tobi
Hallo Gerd,
das geht super!
jetzt noch zwei fragen soweit das möglich wäre?!!
1. der Code soll erst ab A16 beginnen
2. der Code soll automatisch bei jeder Änderung starten
geht das überhaupt?
AW: Nachfrage
22.01.2017 13:33:47
Gerd
Hallo Tobi,
also ab A16 (oder darunter)
-bei Änderungen durch Eingabe oder Änderungen durch Formeln?
Gruß Gerd
AW: Nachfrage
22.01.2017 13:36:34
Tobi
Hallo Gerd!!!
Danke
A16 soll das erste sein
und wenn ich etwas eingebe soll es neu laufen
AW: Nachfrage
22.01.2017 14:58:46
Gerd
Hallo Tobi,
das erste gehört ins Modul der Tabelle, das zweite auch dort hin oder in ein allgemeines Modul.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Wirkungsbereich As Range
Set Wirkungsbereich = Intersect(Range("B16:B1000"), Target)
If Not Wirkungsbereich Is Nothing Then
Application.EnableEvents = False
Call GliederungII
Application.EnableEvents = True
Set Wirkungsbereich = Nothing
End If
End Sub

Sub GliederungII()
Dim A, B
Dim y As Long, z As Long
On Error Resume Next
Set A = ActiveSheet.Range("B16:B1000").SpecialCells(xlCellTypeConstants).Offset(, -1)
On Error GoTo 0
If Not A Is Nothing Then
Range("A16:A1000").ClearContents
For Each B In A.Areas
y = y + 1
B(1, 1).Value = "'" & Format$(y, "00")
For z = 2 To B.Cells.Count
B(z, 1) = "'" & Format$(y, "00") & "." & Format$(z - 1, "00")
Next
Next
Set A = Nothing
End If
End Sub

Gruß Gerd
Anzeige
AW: Nachfrage
22.01.2017 16:25:55
Tobi
Hallo Gerd...
Vielen Vielen Dank
funktioniert super!!!
Schönes restliches WE noch!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige