22.05.2017, 10:46
Hallo zusammen,
habe eine Userform erstellt, die mir einen Wert aus einer bestimmten Tabelle rundet und anzeigt, wenn ich auf einen Button klicke. Dieser Wert ändert sich beim Arbeiten mit dem Dokument und soll deshalb immer zur Hand sein.
Funktioniert soweit alles sehr gut, allerdings kriege ich einen Laufzeitfehler 438 : Objekt unterstützt diese Eigenschaft oder Methode nicht. Aber NUR in einer Tabelle, bei allen anderen funktioniert es. Ein Klick auf Debuggen markiert mir folgende Zeile:
TextBox1.Value = (.....)
In der Tabelle in der das Problem Auftritt befinden sich 2 Module, die eine Zeile mit allen Formeln und Formatierungen nach unten kopiert/bzw diese wieder löscht.
Modul 1:
Modul 2:
Kommt es hier irgendwo zu einem Konflikt? Da mir Excel nur diese eine Zeile markiert, die ja in anderen Tabellen wunderbar funktioniert, bin ich leider etwas ratlos.
Ich nutze Excel 2010
Gruß Dubsepp
habe eine Userform erstellt, die mir einen Wert aus einer bestimmten Tabelle rundet und anzeigt, wenn ich auf einen Button klicke. Dieser Wert ändert sich beim Arbeiten mit dem Dokument und soll deshalb immer zur Hand sein.
Funktioniert soweit alles sehr gut, allerdings kriege ich einen Laufzeitfehler 438 : Objekt unterstützt diese Eigenschaft oder Methode nicht. Aber NUR in einer Tabelle, bei allen anderen funktioniert es. Ein Klick auf Debuggen markiert mir folgende Zeile:
TextBox1.Value = (.....)
Code:
Private Sub CommandButton1_Click()
Dim objWB As Workbook
Set objWB = Workbooks("20170522_Fahrzeuganzahl_Netto_v2.0.xlsm")
TextBox1.Value = Round(objWB.Worksheets("Fahrzeuge").Range("R34").Value, [2])
End Sub
Modul 1:
Code:
Sub NeueZeile()
Dim Zeile As Long
With ActiveSheet
'Zeilennummer:
Zeile = .Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1
'Kopieren:
Intersect(.Rows(Zeile - 1), .UsedRange).Copy
.Cells(Zeile, 1).PasteSpecial Paste:=xlPasteFormats 'Formate
.Cells(Zeile, 1).PasteSpecial Paste:=xlPasteFormulas 'Formeln
Application.CutCopyMode = False
'Werte löschen
Intersect(.Rows(Zeile), .UsedRange).SpecialCells(xlCellTypeConstants).ClearContents
'Nummer in Spalte B:
.Cells(Zeile, 2).Value = .Cells(Zeile - 1, 2).Value + 1
End With
End Sub
Code:
Sub Tabelleleeren()
On Error Resume Next
Selection.SpecialCells(xlCellTypeConstants, 1).Select
On Error Resume Next
Selection.ClearContents
On Error Resume Next
Range("A7", "AK300").Clear
Range("B6") = "1"
End Sub
Ich nutze Excel 2010
Gruß Dubsepp