ggforum
Goto Top

Excel VBA jede Zelle in Bereich (Range) ändern (+1)

Tabelle mit etlichen Click-Buttons, denen unterschiedliche Makros zugeordnet sind.
1. Bereiches (Range) "ohneX" sollten sich um z.B. 1 erhöhen, gleichzeitig sollen Felder eines
2. Bereiches (Range) "_zX" auf Null gesetzt werden.
(X = Zahl des Makros und der Bereichs-Kennung)

Guten Tag, hab etliches versucht, hoffe jetzt auf Eure / Ihre Hilfe?
Grundsatzlich funktioniert das schon etwas..., es sind nur leider alle Werte des Bereichs "ohneX" irgendwie immer gleich.
Makros fortlaufend (X)...
Mir fehlt "nur" das Durchlaufen aller Zellen des Ranges "nicht", damit unterschiedliche Werte herauskommen.
Meine nicht funktionierenden Exerimente mit "for Each" erspare ich Euch und dem Server...
1.)
Sub z1()
Dim nicht As Range
Dim doch As Range
Set nicht = Range("ohne1")
Set doch = Range("_z1")
nicht.Value = nicht.Value + 1
doch = "0"
End Sub
2.)
Sub z2()
Dim nicht As Range
Dim doch As Range
Set nicht = Range("ohne2")
Set doch = Range("_z2")
nicht.Value = nicht.Value + 1
doch = "0"
End Sub
3.).... etc

Ganz lieben Dank, wenn Ihr mich unterstützen könntet.....
Gruss Gabi

Content-ID: 240299

Url: https://administrator.de/contentid/240299

Ausgedruckt am: 25.11.2024 um 18:11 Uhr

116301
Lösung 116301 06.06.2014 aktualisiert um 19:48:30 Uhr
Goto Top
Hallo Gabi!

Wenn ich dich richtig verstanden habe, dann in etwa so:
Dim rngCell As Range
    
For Each rngCell In Range("ohne1:ohne2")  
    rngCell.Value = rngCell.Value + 1
Next

For Each rngCell In Range("_z1:_z2")  
    rngCell.Value = 0
Next
Andere Möglichkeit:
Dim i As Integer

For i = 1 To 2  'Von Bis  
    With Range("ohne" & i)  
        .Value = .Value + 1
    End With
    Range("_z" & i).Value = 0  
Next

Grüße Dieter
ggforum
ggforum 06.06.2014 um 19:58:22 Uhr
Goto Top
Hallo, Dieter,
ganz herzlichen Dank für die Hilfe, hab das jetzt so eingebaut UND es funktioniert prächtig!!!!!!!!!!!!!!!!!!

Sub z1()
Dim rngCell As Range
Dim nicht As Range
Dim doch As Range
Set nicht = Range ("ohne1")
Set doch = Range ("_z1")
For Each rngCell In nicht
rngCell.Value = rngCell.Value + 1
Next
For Each rngCell In doch
rngCell.Value = 0
Next
End Sub

Ich würde jetzt noch gern bei den Zellen, deren Werte auf 0 gesetzt werden, Range (_zX),
den letzten Wert VOR dem Null-Wert zusammen mit einigen anderen Zellinhalten der ArbeitsMAPPE (u.U. anderes ArbeitsBLATT) mit Datum und Uhrzeit in eine neue, fortlaufende Tabelle (der vermutlich gleichen ArbeitsMAPPE) speichern.
Mache dazu eine neue Frage mit neuem Titel auf:
Excel vba:Wert VOR Änderung auf 0 in neuer Tabelle mit Datum/Zeit speichern
ggforum
ggforum 06.06.2014 um 21:57:44 Uhr
Goto Top
Ganz lieben Dank, Dieter, hab die Variante 1 genommen und jetzt sieht das bei mir so tollllll aus UND funktioniert bestens:

Sub z1()
Dim rngCell As Range
Dim nicht As Range
Dim doch As Range
Set nicht = Range("ohne1")
Set doch = Range("_z1")
For Each rngCell In nicht
rngCell.Value = rngCell.Value + 1
Next

For Each rngCell In doch
rngCell.Value = 0
Next
End Sub