es tut mir leid, dass ich hier mit möglicherweise üblen Trivialitäten aufschlage, aber ich verstehe das Problem einfach nicht und finde auch nach intensivem googeln nicht die richtige Antwort.
Ich habe ein Makro, das auf einem bestimmten Tabellenblatt (hier tblDeckblatt) gestartet wird und dann auf einem anderen Tabellenblatt (tblJahresbericht, "Vorlage Jahresbericht") Zellen löschen soll.
Ich gebe allen meinen Tabellen einen sprechenden Codenamen (tbl.......) und möchte die Blatter auch nur über die Codenamen ansprechen weil diese sich nicht ändern können (außer ich tue das).
Der Code den ich dafür nutze funktiioniert, aber ich bin nicht damti zufrieden, weil ich es nur mit dem Balttnamen und nicht mit dem Codenamen hinbekommen.
Hier der Code:
ThisWorkbook.Worksheets("Vorlage Jahresbericht").Activate
If intLetzteGefuellteZeile > 6 Then
tblJahresbericht.Range(Cells(7, 1), Cells(intLetzteGefuellteZeile, 23)).EntireRow.Delete Shift:=xlUp
End If~f~
Ich will das nicht mit der Zeile ThisWorkbook..... machen. Wie kann ich den Range von egal wo aus ansprechen ohne dass den Worksheet.Activate Befehl?
Dann noch eine zweite Frage:
zur Formatierung benutze ich an anderer Stelle eine Selection und verändere dann mit With Selection die Formatierung. Das sieht dann exemplarisch so aus:
~f~
Range(Cells(7, 1), Cells(intLetzteGefuellteZeile, 23)).Select
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade =
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Dieser select Befehl erscheint mir recht langsam. Gibt es da einen besseren Weg?
Die derzeit von mir benutze Vorgehensweise habe ich mit angespasstem Code aus aufgezeichneten Makros gemacht.
Lieben Dank für Eure Hilfe
LG
Klaus