Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

VBA Tabellenblatt einfügen





Frage

hallo @ all! ich würde gerne in einem makro an einer bestimmten stelle ein neues tabellenblatt einfügen. das eigentliche einfügen ist kein problem. das tabellenblatt heißt z. b. "fehler". nun läuft also dieses makro, wenn eine bestimmte bedingung erfüllt ist, dann erstellt das makro ein neues tabellenblatt "fehler"... soweit so gut. läuft das makro weiter und diese bedingung ist wieder erfüllt, soll er nun checken, dass es dsa blatt "fehler" schon gibt, also auch kein neues tabellenblatt einfügen, sonder das tabellenblatt "fehler" erkennen und dort in der ersten freien zeile einen neuen ausdruck reinschreiben. so soll eine art fehlerprotokoll generiert werden... ist das soweit verständlich? meine frage ist, wie heißt der ausdruck, dass er checkt, ob es ein blatt schon gibt und wenn ja, dass er in dieses in der ersten freien zeile von oben einen wert reinschreibt. danke für die hilfe! der MrB

Antwort 1 von MrB

ok den ersten teil, mit der Prüfung habe ich hinbekommen...:

Sub TEST()
    Dim i As Integer
    For i = 1 To Worksheets.Count
    
    If Worksheets(i).Name = "Fehler" Then
    MsgBox "gibts schon!", vbInformation
    Exit Sub
    End If
    Next i
    Sheets.Add.Name = "Fehler"

End Sub


aber wie schreibe ich jetzt einen wert in die erste frei zeile?

Antwort 2 von MrB

so gehts:

Sub TEST()
    Dim b As Integer
    For b = 1 To Worksheets.Count
    If Worksheets(b).Name = "Fehler" Then
    
        Selection.SpecialCells(xlCellTypeLastCell).Select
        lzeile = ActiveCell.Row
        For Count = 1 To lzeile
        If Cells(Count, 1) = "" Then
            Cells(Count, 1).Value = "erster eintrag"
        Else
        Cells(Count + 1, 1).Value = "erster eintrag"
        End If
        Next Count
    Exit Sub
    End If
    Next b
    Sheets.Add.Name = "Fehler"
    Selection.SpecialCells(xlCellTypeLastCell).Select
        lzeile = ActiveCell.Row
        For Count = 1 To lzeile
        If Cells(Count, 1) = "" Then
            Cells(Count, 1).Value = "erster eintrag"
        Else
        Cells(Count + 1, 1).Value = "erster eintrag"
        End If
        Next Count
End Sub


sorry für die störung ;)