Habe eine Frage zu dem Makro was du für mich geschrieben hast.
Option Explicit
Sub cbStart()
Dim strB As String
If Len(Cells(9, 1)) > 1 Then ' in A9 muss mehr als 1 Zeichen stehen
strB = Left(Cells(9, 1), 2) ' merke die beiden ersten Zeichen von A9
If worksheetEx(strB) Then ' wenn ein Blatt mit dem Namen existiert
With Worksheets(strB) ' arbeite in Blatt strB
.Rows(9).Insert ' füge neue leere Zeile 9 in Blatt strB ein
Rows(9).Copy .Cells(9, 1) ' kopiere Zeile 9 aus Tab1 in Blatt strB
End With
Rows(9).Insert ' füge neue leere Zeile 9 in Tab1 ein
Else ' sonst melde einen Fehler
MsgBox "Es gibt kein Blatt '" & strB & "'!", vbCritical, "Abbruch"
End If
Else
MsgBox "In A9 müssen mindestens zwei Zeichen stehen.", vbCritical, "Abbruch"
End If
End Sub
Function worksheetEx(strNam As String) As Boolean
' Wenn das Blatt nicht existiert, gibt es einen Fehler, der aber mit
' "On Error Resume Next" übergangen wird.
' worksheetEx wird nicht belegt und hat/behält den Defaultwert Falsch
' Wenn das Blatt existiert, ist der Index des Blattes > 0, worksheetEx ist Wahr
On Error Resume Next
worksheetEx = Worksheets(strNam).Index > 0
End Function
Wenn die Reihe 9 auf das andere Tabellenblatt kopiert wurde, hat man die Möglichkeit zu bestimmten
Zellen zB. die Zellen D9, E9, F9, G9 den Wert der Zelle D4 zwei mal zu addieren.
Das Ergebnis soll dann aber auch in den Zellen D9, E9, F9, G9 stehen.
Der Wert in Zelle D4 wird über ein Makro eingegeben, der sollte sich dann wenn er sich ändert
auch auf die Zellen übertragen werden.
Wenn in Reihe 9 eine neue Reihe hinein kopiert wird soll das selbe geschehen.
Sinn des ganzen ist:
Im Eingabeblatt wird eine Körperoberfläche errechnet.
In das Batt in dem die Reihe kopiert wird soll die Oberfläche errechnet werden wenn der Körper
isoliert ist.
Gruß Jochen