In Excel Zellwert mit 1 addieren?

3 Antworten

Bau dir einfach eine Schleife, die jeden Zellwert im Bereich um 1 erhöht.

Sub PlusEins()
Dim i As Integer
For i = 4 To 26 Step 1
ActiveSheet.Cells(i, 8).Value = ActiveSheet.Cells(i, 8).Value + 1
Next i
End Sub
HawkPat 
Fragesteller
 10.02.2018, 15:24

Danke sehr! Das funktioniert!

Mit Cells() hatte ich es auch schon versucht, dabei aber für die Spalte H die Ziffer 7 genommen, ich Depp. Da waren gar keine Zahlen drin :-)

Um meine Neugier zu befriedigen würde mich aber auch noch interessieren, warum mein Makro mit einer Zelle funktioniert, nicht aber mit mehreren.

0
Oubyi, UserMod Light  10.02.2018, 16:11
@HawkPat
Um meine Neugier zu befriedigen würde mich aber auch noch interessieren, warum mein Makro mit einer Zelle funktioniert, nicht aber mit mehreren.

Du kannst immer nur den Wert EINER Zelle manipulieren, nicht - ohne weiteres - den eines ganze Bereichs.

Daher musst Du, wie in meinem Makro oder dem von DeeDee, mit einer Schleife (For oder For Each) jede Zelle einzeln ansprechen und um 1 erhöhen.

0
Iamiam  10.02.2018, 16:14
@HawkPat

weil der Befehl sich immer auf eine Zelle beziehen muss, und ein Bereich ist eben keine Zelle. Du kommst um eine Schleife nicht herum!

1
Iamiam  10.02.2018, 16:45

siehe meinen Kommentar zur AW Oubyi!

0

Wenn es bei einer Zeile geht, kopiere es doch dann einfach.

HawkPat 
Fragesteller
 10.02.2018, 12:17

Danke für die Antwort. Ich hätte vielleicht dazu schreiben sollen: es soll mit einer Schaltfläche umgesetzt werden. Einmal drücken startet das Makro und alle Zellen werden um eins weiter gesetzt. Copy/Paste bringt mich da also nicht weiter.

0

Wenn es unbedingt ein Makro sein muss, dann:

Sub EinsAddieren()
Dim Zelle As Range
Dim Bereich As Range
Set Bereich = Range("H4:H26")

For Each Zelle In Bereich
   Zelle = Zelle + 1
Next Zelle
End Sub

Es geht aber auch ganz einfach mit "Bordmitteln":

  • Schreib in irgendeine freie Zelle eine 1.
  • Kopiere diese Zelle
  • Markiere den gesamten Bereich H4:H26 ("Ameisen" um die 1 laufen noch)
  • Rechtsklick in den Bereich
  • Inhalte einfügen / Inhalte einfügen... --> Vorgang: "Addieren"
  • OK

Fertig.

Klappt es?

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)
Iamiam  10.02.2018, 16:42

Generell ist sowas aber sehr fehleranfällig und deshalb gefährlich: Du kannst später nicht mehr kontrollieren, wie oft Du schon die 1 dazugezählt hast!

Ich empfehle deshalb für beide Makro-Varianten das:

Zelle.Formula = Zelle.Formula & "+1" 

Das klappt aber nicht, wenn schon nur eine Zahl drinsteht. Du musst die Ausgangszahl also mit ++Zahl, --Zahl oder =Zahl eingeben (in Librte Office geht ++Zahl nicht, das wird sofort raus"korrigiert". Aber geht ja auch nur eine andere Makrosprache).

Narrensicher wirds (relativ umständlich) mit:

if Hasformula(Zelle) then

Zelle.Formula = Zelle.formula & "+1"

Else

Zelle.Formula = "=" & Zelle.value

end if

(kann sein, dass die Syntax nicht ganz stimmt, müsstest Du prüfen und ggf lt. Hilfe korrigieren)

Hat die Zelle eine Textformel oder eine schon komplexere Formel, können Fehler auftreten, zB lässt sich an =identisch("A";"a") zwar ein +1 anhängen, , aber da wird dann aus dem Ergebnis Falsch (=0) ein WAHR und WAHR (=1) bleibt WAHR, denn 2 ist auch WAHR.

1