Arbeitsblatt indirekt bearbeiten mit VBA in Excel 2007

godi

Level-1
Beiträge
1.460
Reaktionspunkte
185
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich möchte ein Arbeitsblatt mit einem Variablen Namen erstellen. Dies Funktioniert auch schon wunderbar.
Aber wenn ich in diesem Arbeitsblatt ein paar Zellen beeinflussen möchte dann weiß ich nicht wie ich dann so wie im Code "Tabelle3" den Namen angebe.
Ich habe da schon Variablen als Type Worksheet angelegt und mit denen herumprobiert aber bei mir hängt sich der Code immer bei .Add Type auf! :-(
Ich weiß leider nicht mehr weiter! Weiß jemand von euch wie das funktioniert?

Code:
Sub BlattErstellen()
Dim Blattname As String

Blattname = InputBox("Geben sie einen Blattnamen ein")
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Blattname & " -Kopf"

With [COLOR=Red]Tabelle3[/COLOR].Range("A1:A10").Validation
  .Delete
  .Add Type:=xlValidateTextLength, _
   AlertStyle:=xlValidAlertStop, _
   Formula1:="1", _
   Formula2:="20"
  .InputTitle = "Namen eingeben"
  .ErrorTitle = "Kein gültiger Namen!"
  .InputMessage = "Maximal 20 Zeichen"
  .ErrorMessage = "Sie müssen einen Namen mit einer maximalen Länge von 20 Zeichen eingeben."
End With

End Sub

godi
 
Hallo,

in meiner VBA habe ich es so geschrieben -

With Worksheets ("LOGGING").Range(.Cells(11,2) usw.

Ich hoffe es hilft dir weiter.

Viele Grüße
rkoe1
 
Hallo!

Jetzt bin ich gerade draufgekommen das es nicht an dem Code gelegen hat den ich oben gepostet habe! :rolleyes:
Sondern ich habe zwischen Arbeitsblatt erstellen und Zellen bearbeiten noch ein .Protect drinnen gehabt.

Code:
Sub BlattErstellen()
Dim Blattname As String

Blattname = InputBox("Geben sie einen Blattnamen ein")
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Blattname & " -Kopf"

'Erste Zeile erstellen
With ActiveSheet
  .Unprotect
  .Cells.Locked = False
  .Range("A1").Value = "Spalte 1"
  .Range("B1").Value = "Spalte 2"
  .Range("C1").Value = "Spalte 3"
  .Cells(1, 1).Locked = True
  .Cells(1, 2).Locked = True
  .Cells(1, 3).Locked = True
  .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With


'Zellen bearbeiten
With ActiveSheet.Range("A2:A10").Validation 'Worksheets(Blattname & " -Kopf").Range("A1:A10").Validation
  .Delete
  .Add Type:=xlValidateTextLength, _
   AlertStyle:=xlValidAlertStop, _
   Formula1:="1", _
   Formula2:="20"
  .InputTitle = "Namen eingeben"
  .ErrorTitle = "Kein gültiger Namen!"
  .InputMessage = "Maximal 20 Zeichen"
  .ErrorMessage = "Sie müssen einen Namen mit einer maximalen Länge von 20 Zeichen eingeben."
End With

End Sub

Ich war der Meinung dass das .Protect nur auf die 3 Zellen wirkt und das ich danach alle anderen Zellen noch beliebig bearbeiten kann. Das war leider nicht so!
Habe jetzt das von der Mitte nach unten Verschoben und so Funktioniert es! :p

godi
 
Zurück
Oben