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 werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus 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.

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 10  Office 2019
Antworten 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
Antworten 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 10  Office 2019
Antworten 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.
Antworten Top
#5
Hallo

ich sehe gar nicht wo mb überhaupt deklariert ist

MfG Tom
Antworten Top
#6
Auch Hallo,

... und man sieht auch nicht, welche Werte die Variable mb haben kann.
Gruß Stefan
Win 10 / Office 2016
Antworten Top


Gehe zu:


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