Hallo Community,
ich hab ein Problem bei der Zuweisung eines Werts zu einer Zelle.
Ich möchte dass in der Zelle (z.B. A5) ein Text steht, der bei allen Sheets übernommen wird. Als Excel Nutzer markiert man alle Sheets und schreibt den Text in die gewünschte Zelle. Ziel erreicht. Beim programmieren is das gerade nicht so einfach.. :-)
Macro Recorder:
Sub Makro1()
Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Select
Sheets("Tabelle1").Activate
Range("A5").Select
ActiveCell.FormulaR1C1 = "Hallo"
End Sub
Um flexibel zu sein, hab ich die Auswahl der Sheets in einer extra Sub ausgegliedert:
Sub SelectAllSheets()
Dim i, iTab, TabArray() As Integer
iTab = ThisWorkbook.Worksheets.Count
ReDim TabArray(1 To iTab)
On Error Resume Next
For i = 1 To iTab
TabArray(i) = i
Next i
ThisWorkbook.Worksheets(TabArray).Select
ThisWorkbook.Worksheets(1).Activate
End Sub
Nun möchte ich auf die Zelle zugreifen und den Wert verändern.
Sub TextZuweisen()
Call SelectAllSheets
Range("A5").Value = "Hallo"
End Sub
Jetzt fügt das Programm den Text nur auf dem aktuell angezeigten Sheet ein. Was mache ich falsch? Gibt es eine Möglichkeit ohne Select zu arbeiten?
Vielen Dank und Gruß,
Martin
|