Vba select
09.01.2017 10:54:01
Michael
mit Hilfe von Daniel und Hajo habe ich fol´gendes Modul gestrickt:
Sub Kopieren()
Dim lCol As Integer
lCol = LastColAll()
Union(Columns(lCol - 0), Columns(lCol)).Copy Columns(lCol + 1)
Range(Cells(10, lCol + 2), Cells(59, lCol + 2)).ClearContents
Columns(lCol + 1).SpecialCells(xlConstants) = 0
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=Tru
End Sub
Public Function LastColAll(Optional SheetName As Variant) As Long
ActiveSheet.Unprotect
'letzte Spalte in gesamter Tabelle suchen
If IsMissing(SheetName) Then SheetName = ActiveSheet.Name
LastColAll = Sheets(SheetName).UsedRange.Cells.Find("*", , , , xlByColumns, xlPrevious). _
Column
End Function
Ich möchte das ganze nun aus dem Tabellenblatt B ausführen und ins Tabellenblatt A übertragen.Habe gestern Abend noch eine Std. versucht, es aber nicht hinbekommen.
Ich hoffe jemand kann mir da nochmal behilflich sein.
Desweiteren habe ich noch diesen Code gestrickt bzw. aus dem Internet gezogen und umgeschrieben.
Sub Spalte_löschen()
ActiveSheet.Unprotect
Dim LastCol As Long
With ThisWorkbook.Sheets("Bilanz")
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
.Columns(LastCol).Delete
End With
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub Hier möchte ich aber, das die Spalte nur gelöscht wird, wenn in Zeile 3, in der steht folgende Formnel (=DATUM(JAHR(I3)+1;MONAT(I3)+0;TAG(I3)+0) der Tabelle, das Datum nicht kleiner ein Jahr zurück liegt. Also wenn heute 2017 ist darf auch nur bis zum Jahr 2017 gelöscht werden, wenn 2016 dort steht soll eine Meldung kommen, die Spalte kann nicht gelöscht werden.
Gruß Michael