Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert sind; Die von diesem Forum gesetzten Cookies düfen nur auf dieser Website verwendet werden und stellen kein Sicherheitsrisiko dar. Cookies auf diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Die Updates sind abgeschlossen. Bitte meldet eventuelle Bugs und Auffälligkeiten im entsprechenden Forum.
Sollte das Loginfenster nicht sichtbar sein, ist es unten links. Entweder Ihr loggt Euch dort ein oder löscht den Browsercache und versucht es noch einmal.


Nicht aktive Tabelle Zellen über Variable ansprechen
#1
Hallo!

Habe folgendes Problem
Möchte gerne Zellen in nicht aktivierten TabellenBlättern änder!
Habe auch einen Code dafür nur muß dann dasTabellenBlatt aktiv sein.
Code zum ändern der Zelle
Code:
Sub DatumAk()
   Dim AktuellesDatum As Date, datFrist As Date, datsecond As Date
   Dim Zelle As Range
   Dim strWieviel As String
   Dim c As Long
 AktuellesDatum = Date

'SpalteDurchlaufen
'For Each Zelle In ThisWorkbook.Sheets(mb).Range("H10:H50")
For Each Zelle In Range("H10:H50") '
 If Zelle <> "" Then
   datfirst = Zelle.Value                                          'Schreibe in Zelle
       strWieviel = Zelle.Offset(0, -2)                            'die Anzahl der Monate
       If strWieviel > 0 Then
           datsecond = DateAdd("m", strWieviel, datfirst)          'DateAdd(Year(datfirst), Month(datfirst) + strWieviel, Day(datafirst))
             Zelle.Offset(0, -1) = datsecond                       '.Select
       End If
  End If
Next
End Sub
Ich habe mir gedacht deise Zeile

Code:
For Each Zelle In Range("H10:H50") '
in diese zu änder

Code:
'For Each Zelle In ThisWorkbook.Sheets(mb).Range("H10:H50")
Jetzt ist es so das nur das gerade aktive Blatt geändert wird.
Ich möchte aber das er alle Sheets durchläuft.
Was mach ich falsch?
mfg
Michael
98

WIN 7 Office 2007
Antwortento top
#2
Hallo

wenn ich dich richtig verstanden habe...
ungetestet


Code:
Sub DatumAk()
   Dim AktuellesDatum As Date, datFrist As Date, datsecond As Date
   Dim Zelle As Range
   Dim strWieviel As String
   Dim c As Long
   Dim i As Integer
   AktuellesDatum = Date
   
   'SpalteDurchlaufen
   For i = 1 To ThisWorkbook.Worksheets.Count
       With Worksheets(i)
           For Each Zelle In .Range("H10:H50") '
               If Zelle <> "" Then
                   datfirst = Zelle.Value                                          'Schreibe in Zelle
                   strWieviel = Zelle.Offset(0, -2)                            'die Anzahl der Monate
                   If strWieviel > 0 Then
                       datsecond = DateAdd("m", strWieviel, datfirst)          'DateAdd(Year(datfirst), Month(datfirst) + strWieviel, Day(datafirst))
                       Zelle.Offset(0, -1) = datsecond                       '.Select
                   End If
               End If
           Next
       End With
   Next
End Sub


MfG Tom
Antwortento top
#3
Hallo Tom!

Danke für die Hilfe!

Nach dem ich deinen Code getestet habe, ist mir dann aufgefallen was in meinen Code Falsch war.
Man sollte die Variabeln auch richtig deklarieren.

Ich hatte Dim mb as Long geschrieben 16  ,wenn man es richtig macht Dim mb as Integer
dann funtzt auch diese Zeile

Code:
'For Each Zelle In ThisWorkbook.Sheets(mb).Range("H10:H50")
mfg
Michael
98

WIN 7 Office 2007
Antwortento top
#4
Hi,

(24.07.2017, 09:07)michel34497 schrieb: Ich hatte Dim mb as Long geschrieben 16  ,wenn man es richtig macht Dim mb as Integer
dann funtzt auch diese Zeile

das darf nach meinem Wissen keinen Unterschied ausmachen!

Long ist dasselbe wie Integer, nur hat es einen größeren Bereich.
Antwortento top
#5
Hallo

ich sehe gar nicht wo mb überhaupt deklariert ist

MfG Tom
Antwortento top
#6
Auch Hallo,

... und man sieht auch nicht, welche Werte die Variable mb haben kann.
Gruß Stefan
Win 7 / Office 2007
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste