Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige
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
Anzeige
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
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Werte in Excel um 1 erhöhen


Schritt-für-Schritt-Anleitung

Um Werte in Excel um 1 zu erhöhen, kannst Du ein einfaches VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Sub WerteErhoehen()
        Dim i As Long
        Const myRow = 166 ' Zeile, in der der Ausgangswert steht
        Const myCol = 2 ' Spalte B
    
        With Cells(myRow, myCol)
            If IsNumeric(.Value) Then
                If .Value > 0 And CLng(.Value) = .Value Then
                    For i = 1 To .Value
                        Cells(myRow + i, myCol).Value = i
                    Next i
                End If
            End If
        End With
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, indem Du auf Entwicklertools > Makros klickst und WerteErhoehen auswählst.

Dieses Makro erhöht die Werte in der Spalte B, beginnend mit 1 in Zelle B167 bis zu dem Wert, der in B166 steht.


Häufige Fehler und Lösungen

  • Fehler: "Typenübereinstimmung"

    • Lösung: Stelle sicher, dass der Wert in Zelle B166 eine positive ganze Zahl ist. Andernfalls wird das Makro nicht korrekt ausgeführt.
  • Fehler: Keine Werte werden angezeigt

    • Lösung: Überprüfe, ob das Makro tatsächlich ausgeführt wurde. Gehe sicher, dass Du das richtige Blatt aktiv hast und der Ausgangswert korrekt eingegeben wurde.

Alternative Methoden

Neben der Verwendung von VBA kannst Du auch einfache Excel-Formeln nutzen, um Werte um 1 zu erhöhen:

  1. Schreibe in Zelle B167 die Formel =B166-1.
  2. Ziehe das kleine Quadrat in der unteren rechten Ecke der Zelle nach unten, um die Formel auf die folgenden Zellen anzuwenden.

Diese Methode eignet sich gut, wenn Du keine VBA-Kenntnisse hast und schnell arbeiten möchtest.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du Werte in Excel um 1 erhöhen kannst:

  • Beispiel 1: Wenn Du in Zelle B166 den Wert 10 hast, wird das Makro die Zellen B167 bis B177 mit den Werten 1 bis 10 füllen.

  • Beispiel 2: Wenn Du die Formel in B167 verwendest und B166 auf 5 gesetzt hast, wird B167 4, B168 3, B169 2, B170 1 und B171 leer sein.


Tipps für Profis

  • Nutze die Application.ScreenUpdating = False und Application.ScreenUpdating = True Befehle im VBA-Code, um die Ausführungsgeschwindigkeit zu erhöhen, wenn Du mit großen Datenmengen arbeitest.
  • Überlege, ob Du die Zellbezüge dynamisch gestalten möchtest, um flexibler auf unterschiedliche Daten zu reagieren.

FAQ: Häufige Fragen

1. Wie kann ich die Startzahl im VBA-Code ändern?
Du kannst die Variable startWert im Code definieren, um bei einer anderen Zahl zu beginnen.

2. Funktioniert das auch in Excel Online?
Leider ist VBA nicht in Excel Online verfügbar. Du musst Excel auf deinem PC verwenden, um das Makro auszuführen.

3. Was mache ich, wenn ich eine negative Zahl eintragen möchte?
Du musst den Code entsprechend anpassen, um negative Werte zuzulassen. Ansonsten wird eine Fehlermeldung angezeigt.

Mit diesen Anleitungen und Tipps bist Du bestens gerüstet, um Werte in Excel um 1 zu erhöhen!

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige