Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1264to1268
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
wenn dann formel mit vba
Thomas
Hallo zusammen,
ich möchte es umgehen, dass in Spalte C eine Formel steht, es soll dort nur der Wert stehen.
Meine Formel in Spalte C sieht jetzt so aus:
=WENN(A10="";"";C9+1) und runtergezogen bis 2000
Kann ich das mit VBA so lösen, dass ich in der Spalte C dann nur den Wert 1,2,3,4,5 usw. stehen habe?
Vielen Dank im Voraus
Gruß
Thomas

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: wenn dann formel mit vba
24.05.2012 10:47:26
Marc
Moin!
Probier´s mal damit
Sub formelersatz()
For i = 10 To 2000
Cells(i, 3) = IIf(Cells(i, 1) = "", "", Cells(i, 9) + 1)
Next i
End Sub
Gruß, MCO
AW: wenn dann formel mit vba
24.05.2012 10:59:04
Thomas
Hallo MCO,
läuft leider nicht in meiner Mappe nicht.
Ich habe es auch in einer neuen Datei versucht, da lief es auch nicht.
Gruß
Thomas
AW: wenn dann formel mit vba
24.05.2012 10:52:35
Reinhard
Hallo Thomas,
Sub tt()
Range("C10").Value = 1
Range("C10").DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
Step:=1, Stop:=2000, Trend:=False
End Sub

Gruß
Reinhard
AW: wenn dann formel mit vba
24.05.2012 10:57:35
Daniel
Hallo Thomas,
ich würde das in eine For...Next-Anweisung einbauen und über einen Commandbutton auf der Tabelle
auslösen lassen.
Hast du ggf. eine Beispieltabelle?
Grüße, Daniel
Bsp. anhand deiner Vorgaben, nach einer leeren Zelle in Spalte A wird in C wieder mit 1 begonnen,
Beispieldatei wäre hilfreich...

Sub Formel()
Dim i As Integer
For i = 10 To 2000
With Tabelle1 'musst du auf deine ändern
If Not .Cells(i, 1).Value = "" Then
.Cells(i, 3).Value = .Cells(i - 1, 3).Value + 1
Else
.Cells(i, 3).Value = ""
End If
End With
Next i
End Sub

Anzeige
AW: wenn dann formel mit vba
24.05.2012 11:06:21
Daniel
... kleiner Denkfehler, hatte übersehen dass mit C9 hochgezählt werden soll.
so müsste es funktionieren...

Sub Formel()
Dim i As Integer
For i = 10 To 2000
With Tabelle1 'musst du auf deine ändern
If Not .Cells(i, 1).Value = "" Then
.Cells(i, 3).Value = .Cells(9, 3).Value + 1
Else
.Cells(i, 3).Value = ""
End If
End With
Next i
End Sub
Grüße, Daniel
AW: wenn dann formel mit vba
24.05.2012 11:06:57
Thomas
Hallo zusammen,
danke für die Vorschläge, ich bekomme es allerdings mit keinem Vorschlag hin.
Ich habe mal eine Beispieldatei angehängt.
Danke für die Mühe!
https://www.herber.de/bbs/user/80279.xlsx
Gruß
Thomas
Anzeige
AW: wenn dann formel mit vba
24.05.2012 11:12:42
Daniel
Hallo Thomas,
wann soll in deinem Beispiel die 7 eingestellt werden? Nach Eingabe, oder startest du die Routine?
Die bisherigen Vorschläge sind so dargestellt dass der Bereich von Zeile 10 bis 2000 durchgelaufen
wird, du aber die Routine starten musst!
Grüße, Daniel
AW: wenn dann formel mit vba
24.05.2012 11:22:25
Reinhard
Hallo Thomas,
in das Modul von Tabelle1:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A10:A2000")) Is Nothing Then Exit Sub
Range("C10:C2000").Formula = "=IF(A10="""","""",Max($C$9:C9)+1)"
Range("C10:C2000").Value = Range("A10:A2000").Value
End Sub

Gruß
Reinhard
Anzeige
AW: wenn dann formel mit vba
24.05.2012 11:36:35
Matze,Matthias
Moin Zusammen,
Reinhards code benutzen ohne die letzte Zeile vom Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A10:A2000")) Is Nothing Then Exit Sub
Range("C10:C2000").Formula = "=IF(A10="""","""",Max($C$9:C9)+1)"
End Sub
somit nur Zahlen in Spalte C
Matze
AW: wenn dann formel mit vba
24.05.2012 11:43:51
Thomas
Danke Euch allen....mit dem unten stehendem Code hat es geklappt
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A10:A2000")) Is Nothing Then Exit Sub
Range("C10:C2000").Formula = "=IF(A10="""","""",Max($C$9:C9)+1)"
End Sub

Anzeige
AW: wenn dann formel mit vba
24.05.2012 11:48:53
Reinhard
Hallo Thomas,
du wolltest doch keine Formeln in C sehen? Mit dem nachfolgenden Code siehst du keine.
Ich hatte einen Fehler drinnen, danke Matze, der ist jetzt raus...
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A10:A2000")) Is Nothing Then Exit Sub
Range("C10:C2000").Formula = "=IF(A10="""","""",Max($C$9:C9)+1)"
Range("C10:C2000").Value = Range("C10:C2000").Value
End Sub

Gruß
Reinhard
mein bescheidener Vorschlag...
24.05.2012 12:00:09
robert
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lz%
lz = Cells(Rows.Count, 1).End(xlUp).Row
If Cells(lz, 1)  "" Then
Cells(lz, 3) = Cells(lz - 1, 3) + 1
End If
End Sub

Gruß
robert
Anzeige

345 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige