Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1112to1116
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 in Zelle um 1 erhöhen

Wert in Zelle um 1 erhöhen
Daniel
Hallo,
kann mir jemand sagen wie der VBA Code aussehen muss für folgendes Problem?!
Also ich habe in Zelle sagen wir B200 einen Wert von 100. Nun möchte ich das per Makro bei Zelle B201 mit dem Wert 1 angefangen wird und in den darunterliegenden Zellen jeweils um 1 erhöht wird, also 1,2,3... usw und zwar bis der Wert in Zelle B200 erreicht ist. (müsste in diesem Fall also bis B301 gehen)
mfg
Daniel
AW: Wert in Zelle um 1 erhöhen
26.10.2009 12:35:35
hary
Hi Daniel
eine Moeglichkeit. Wobei das loeschen von evtl. Vorhandenen nich in Code ist.

Sub n()
Dim i As Long
For i = 201 To Cells(200, 2).Value + 200
Cells(i, 2) = i - 200
Next
End Sub

AW: Wert in Zelle um 1 erhöhen
26.10.2009 13:31:01
Daniel
Das ist schon gut, aber ich komm noch nicht ganz klar mit. Und zwar steht bei mir in der Zelle B166 eine veränderbare Zelle, sprich der Wert wird berechnet je nach Benutzereingaben aus anderne Blättern. Nun soll in B167 eine 1 stehen und immer um ein platz nach unten in der Spalte gesprungen werden, wobei der Wert um 1 erhöht wird. und zwar so lange bis die Zahl in B166 ereicht ist, kannst du vll kurz mit kommentaren im vba code erklären wo ich das eintragen muss?!
Danke im Voraus!
Anzeige
AW: Wert in Zelle um 1 erhöhen
26.10.2009 14:18:41
JogyB
Hi.
Andere Variante, die bei großen Zahlen etwas schneller ist:
Sub n()
Dim i As Long
Const myRow = 166 ' Zeile
Const myCol = 2 ' Spalte, hier B
With Cells(myRow, myCol)
' Muss eine Zahl sein
If IsNumeric(.Value) Then
' Und die muss >0 und ganzzahlig sein
If .Value > 0 And CLng(.Value) = .Value Then
With Range(Cells(myRow + 1, myCol), _
Cells(Application.Min(Rows.Count, myRow + _
Cells(myRow, myCol).Value), myCol))
.Formula = "=Row()-" & myRow
.Value = .Value
End With
End If
End If
End With
End Sub
Du mußt nur für myRow die Zeile und für myCol die Spalte (als Zahl!) eingeben.
Gruss, Jogy
Anzeige
AW: Wert in Zelle um 1 erhöhen
26.10.2009 14:36:27
Daniel
Was setz ich denn für .Value ein, ich habs mit unterschiedlichen Zahlen probiert, seh aber keinen unterschied?!
AW: Wert in Zelle um 1 erhöhen
26.10.2009 14:47:18
JogyB
Hi.
Für .Value mußt Du gar nichts einsetzen, das ist in dem Fall der Wert von B166 (Zeile 166, Spalte 2). Der Wert in der Zelle muss natürlich eine Zahl, >0 und ganzzahlig sein - einen nichtganzzahlige Anzahl an Zellen gibt es ja nicht.
Wie gesagt, nur mit den beiden Konstanten den richtigen Zellbezug herstellen, die Anzahl der einzufügenden Werte steht dann ja in der entsprechenden Zelle.
Gruss, Jogy
AW: Wert in Zelle um 1 erhöhen
26.10.2009 14:57:57
hary
Hi
teste mal diese Mappe. Tabelle1 reagiert wenn in Tabelle2 A1 die Zahl geaendert wird. Hab mir den Code von Daniel ausgeborgt ;-)
https://www.herber.de/bbs/user/65343.xls
Fuer Daniel Code Habe ich in den Code der Tabelle 1 gebracht :

Private Sub Worksheet_Calculate()
Dim i As Long
Dim zelle As Long
Const myRow = 166 ' Zeile
Const myCol = 2 ' Spalte, hier B
zelle = Cells(Rows.Count, 2).End(xlUp).Row
If zelle = 166 Then zelle = 167
Range("B167:B" & zelle).ClearContents 'loescht alte Eintrage
With Cells(myRow, myCol)
' Muss eine Zahl sein
If IsNumeric(.Value) Then
' Und die muss >0 und ganzzahlig sein
If .Value > 0 And CLng(.Value) = .Value Then
With Range(Cells(myRow + 1, myCol), _
Cells(Application.Min(Rows.Count, myRow + _
Cells(myRow, myCol).Value), myCol))
.Formula = "=Row()-" & myRow
.Value = .Value
End With
End If
End If
End With
End Sub

gruss hary
Anzeige
sry muss heissen von JogyB ausgeliehen owT
26.10.2009 15:11:43
JogyB
.
AW: Wert in Zelle um 1 erhöhen
26.10.2009 15:31:47
Daniel
Also so nehm ich jetzt den code ;=)
Sub n()
Dim i As Long
Const myRow = 377
Const myCol = 21
With Cells(myRow, myCol)
If IsNumeric(.Value) Then
If .Value > 0 And CLng(.Value) = .Value Then
With Range(Cells(myRow + 1, myCol), _
Cells(Application.Min(Rows.Count, myRow + _
Cells(myRow, myCol).Value), myCol))
.Formula = "=Row()-" & myRow
.Value = .Value
End With
End If
End If
End With
End Sub
Allerdings soll er doch bei 0 anfangen zu zählen, wo muss ich denn das ändern?!
Vielen Dank euch allen für die Hilfe ;=)
Gruß
Daniel
Anzeige
AW: Wert in Zelle um 1 erhöhen
26.10.2009 16:03:26
JogyB
Hi.
Ich habe noch eine Konstante Startwert eingeführt, da kannst Du den nach belieben ändern.
Sub n()
Dim i As Long
Const myRow = 377
Const myCol = 21
Const startWert = -1
With Cells(myRow, myCol)
If IsNumeric(.Value) Then
If .Value > 0 And CLng(.Value) = .Value Then
With Range(Cells(myRow + 1, myCol), _
Cells(Application.Min(Rows.Count, myRow + _
Cells(myRow, myCol).Value), myCol))
.Formula = "=Row()-1-" & myRow & "+" & startWert
.Value = .Value
End With
End If
End If
End With
End Sub
Gruss, Jogy
startet so natürlich bei -1 owT
26.10.2009 16:04:09
JogyB
.
Wert in Zelle um 1 erhöhen
26.10.2009 14:32:21
Bernd
Hallo,
wenn B166 immer mit Zahl befüllt, keine Fehlerroutine-
siehe JogyB
Gruß
Bernd
Sub TT()
Dim i As Long
Dim x As Long
Dim z As Long
x = Range("B166").Value
z = x + 166
Range("B167:B1000") = ""
For i = 167 To z
Cells(i, 2) = i - 166
Next
End Sub

Anzeige

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige