Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Formel in jede neue Zeile einfügen

Betrifft: Formel in jede neue Zeile einfügen von: Vulferin
Geschrieben am: 11.10.2014 23:49:48

Hallo zusammen
ich habe eine Formel

  • =WENN(UND(G2;D2-HEUTE()<30;1);"Löschen";ZEILE())


  • jetzt möchte ich wenn ich eine neue Zeile einfüge über

  • Private Sub CommandButton1_Click()
            Windows("stehende Anlagen").Activate
            Dim lngErsteFreie As Long
            Dim intSpalte As Integer
            Dim i As Integer
           
            If CommandButton1.Caption = "Neuer Eintrag" Then
                For i = 1 To 5
                    Controls("Textbox" & i) = ""
                Next
                
                For i = 1 To 2
                    Controls("Checkbox" & i) = False
                TextBox2.SetFocus
                Next
                CommandButton1.Caption = "Neuer Eintrag Speichern"
                CommandButton1.Enabled = False
                CheckBox5.Value = True
               
            Else
                lngErsteFreie = Cells(Rows.Count, "A").End(xlUp).Row + 1
                For intSpalte = 1 To 5
                    Cells(lngErsteFreie, intSpalte).Value = Controls("TextBox" & intSpalte)
                Next
                
                Cells(lngErsteFreie, 6).Value = CheckBox1
    
                Cells(lngErsteFreie, 7).Value = CheckBox2
               
                Call Zuruecksetzen
            Call UserForm_Initialize
        End If
    End Sub


  • das er mir immer in spalte 8 die formel einträgt und dann den g und d verweis auf die richitge zeilen nr setzt.

    wie kann ich das lösen
    ich schaff es einfach nicht

      

    Betrifft: AW: Formel in jede neue Zeile einfügen von: Steffi
    Geschrieben am: 12.10.2014 00:01:10

    Hallo,

    das würde die obige Formel in Spalte 8 der Zeile 'lngErsteFreie' schreiben und auf G und D in der selben Zeile zugreifen:

    Cells(lngErsteFreie, 8).FormulaR1C1 = "=IF(AND(RC[-1],RC[-4]-TODAY()<30,1),""Löschen"",ROW())"
    Ist das das was du brauchst?


    Gruß Steffi


      

    Betrifft: AW: Formel in jede neue Zeile einfügen von: Vulferin
    Geschrieben am: 12.10.2014 00:10:32

    ja genau :)
    danke dir
    weisst du noch wie ich nun alle zeilen wo löschen in h steht löschen kann ?


      

    Betrifft: AW: Formel in jede neue Zeile einfügen von: Steffi
    Geschrieben am: 12.10.2014 00:25:34

    Meintest du so was?

    Sub Zeilen_löschen()
        Dim Zähl As Long
    
        Zähl = 1
        
        With ThisWorkbook.Sheets(1)
            Do While Zähl <= .UsedRange.Rows.Count
                If .Cells(Zähl, 8) = "Löschen" Then
                    .Rows(Zähl).Delete
                Else
                    Zähl = Zähl + 1
                End If
            Loop
        End With
    
    End Sub



      

    Betrifft: AW: Formel in jede neue Zeile einfügen von: Daniel
    Geschrieben am: 12.10.2014 02:26:53

    Hi
    Die von Steffi vorgestellte Methode ist die langsamste, die es gibt.
    Wesentlich schneller ist folgendes (verfügbar seit Excel 2007)

    With ThisWorkbook.Sheete(1). Usedrange
    .cells(1, 8).value = "Löschen"
    .RemoveDuplicates 8, xlno
    End With

    mit RemoveDuplicates (Daten - Datentools - Duplikate entfernen) kann man sehr schnell Zeilen löschen, wenn die zu löschenden Zeilen mit einem gleichen Wert markiert sind ("Löschen") und alle die stehenbleiben solle mit einem individuellen (Zeilennummer). Da das hier durch die Formel gegeben ist, sollte man das nutzen.

    Gruß Daniel


     

    Beiträge aus den Excel-Beispielen zum Thema "Formel in jede neue Zeile einfügen"