Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mit Command-Button eine formatierte Zeile einfügen

Mit Command-Button eine formatierte Zeile einfügen
slopor
Hallo erstmal,
wie ihr seht, bin ich neu hier und brauche eure Hilfe.
Ich habe Excel 2007 und möchte dass wenn ich einen Comman-Button drücke, eine vorgegebene Zeile eingefügt wird die ein bestimmtes Format haben soll.
Durch googlen und rumspielen habe ich es schon geschafft dass eine Zeile eingefügt wird, aber leider die falsche.
Ich habe von Zeile 1-5 von Spalte A - K eine Art Überschrift, welche farblich hinterlegt ist und wo auch der Button zu finden ist.
Meine Tabelle geht also ab Zeile 6 los und hat in dieser ein bestimmtes Format.
Wenn jetzt jemand diese Zeile 6 von A-K ausgefüllt hat, dann soll durch einen Klick auf den Button eine neue, leere Zeile unter der Zeile 6, also in diesem Fall Zeile 7 entstehen (mit demselben Format) und wenn diese voll ist, wieder durch einen Click auf den Button die nächste Zeile eingefügt werden usw.
Wie bereits oben erwähnt habe ich es geschafft eine neue Zeile einzufügen und zwar mit folgendem Code:
Range("A1").End(xlDown).Offset(1, 0).EntireRow.Insert
Das Problem dabei ist nur, dass er dann in Zeile 6 eine neue Zeile einfügt, welche das Format von Zeile 5, also der Überschrift hat.
Ich hoffe ich habe alles gut erklärt, sollte es fragen geben, fragt ruhig :-)
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Mit Command-Button eine formatierte Zeile einfügen
30.08.2011 20:49:25
fcs
Hallo slopor,
es muss noch eine Prüfung der Nummer der letzten Zeile eingebaut werden, damit es funktioniert, wenn unter den Spaltentiteln noch keine Daten eingetragen sind.
Gruß
Franz

'Wenn in allen Zeilen die Spalte A (oder entsprechende andere Spalte) immer ausgefüllt wird
Sub KopieFormatsLastRow()
If Cells(Rows.Count, 1).End(xlUp).Row > 5 Then
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).EntireRow.Insert
End If
End Sub
'oder wenn Spalten unregelmäßig ausgefüllt werden
Sub KopieFormatsLastRow01()
Dim Zeile As Long
Zeile = fncNextFreeRow
If Zeile > 6 Then
Rows(Zeile).Insert
Cells(Zeile, 1).Select
End If
End Sub
Function fncNextFreeRow(Optional wks As Worksheet) As Long
'Ermittelt die nächste freie Zeile im Tabellenblatt
Dim Spalte As Long
If wks Is Nothing Then Set wks = ActiveSheet
With wks
For Spalte = 1 To wks.Cells.SpecialCells(xlCellTypeLastCell).Column
If IsEmpty(.Cells(.Rows.Count, Spalte)) Then
fncNextFreeRow = Application.WorksheetFunction.Max(fncNextFreeRow, _
.Cells(.Rows.Count, Spalte).End(xlUp).Row)
Else
fncNextFreeRow = .Rows.Count
MsgBox "Die letzte Zeile im Blatt """ & wks.Name & """ ist bereits ausgefüllt."
Exit Function
End If
Next
If fncNextFreeRow = 1 Then
If Application.WorksheetFunction.CountA(wks.Rows(1)) = 0 Then
'1, Zeile des Blattes ist leer
fncNextFreeRow = 1
Else
fncNextFreeRow = 2
End If
Else
fncNextFreeRow = fncNextFreeRow + 1
End If
End With
End Function

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Mit Command-Button eine formatierte Zeile einfügen


Schritt-für-Schritt-Anleitung

  1. Button einfügen:

    • Öffne Excel und wechsle zur Registerkarte „Entwicklertools“. Wenn diese nicht sichtbar ist, aktiviere sie über die Excel-Optionen.
    • Klicke auf „Einfügen“ und wähle den „CommandButton“ aus der Steuerungselemente-Gruppe. Ziehe den Button auf dein Arbeitsblatt.
  2. VBA-Editor öffnen:

    • Doppelklicke auf den Button, um den VBA-Editor zu öffnen. Dort kannst du den Code für den Button eingeben.
  3. Code zum Einfügen einer Zeile:

    • Füge den folgenden Code in das Fenster ein:
    Sub Button_Click()
       Dim Zeile As Long
       Zeile = fncNextFreeRow
       If Zeile > 6 Then
           Rows(Zeile).Insert
           Cells(Zeile, 1).Select
       End If
    End Sub
    
    Function fncNextFreeRow(Optional wks As Worksheet) As Long
       Dim Spalte As Long
       If wks Is Nothing Then Set wks = ActiveSheet
       With wks
           For Spalte = 1 To .Cells.SpecialCells(xlCellTypeLastCell).Column
               If IsEmpty(.Cells(.Rows.Count, Spalte)) Then
                   fncNextFreeRow = Application.WorksheetFunction.Max(fncNextFreeRow, _
                   .Cells(.Rows.Count, Spalte).End(xlUp).Row)
               Else
                   fncNextFreeRow = .Rows.Count
                   MsgBox "Die letzte Zeile im Blatt """ & wks.Name & """ ist bereits ausgefüllt."
                   Exit Function
               End If
           Next
           If fncNextFreeRow = 1 Then
               If Application.WorksheetFunction.CountA(wks.Rows(1)) = 0 Then
                   fncNextFreeRow = 1
               Else
                   fncNextFreeRow = 2
               End If
           Else
               fncNextFreeRow = fncNextFreeRow + 1
           End If
       End With
    End Function
  4. Formatierung übernehmen:

    • Stelle sicher, dass die eingefügte Zeile das gewünschte Format hat. Du kannst dies im Code anpassen, um das Format von Zeile 6 zu übernehmen.
  5. Testen:

    • Schließe den VBA-Editor und teste den Button, indem du ihn klickst. Eine neue Zeile sollte unter der letzten ausgefüllten Zeile erstellt werden.

Häufige Fehler und Lösungen

  • Fehler: Der Button fügt eine Zeile über der Überschrift ein.

    • Lösung: Überprüfe den Code, um sicherzustellen, dass die fncNextFreeRow-Funktion korrekt die nächste freie Zeile findet.
  • Fehler: Der Button funktioniert nicht.

    • Lösung: Stelle sicher, dass die Makros in Excel aktiviert sind. Prüfe auch, ob der Code korrekt in das Click-Ereignis des Buttons eingefügt wurde.

Alternative Methoden

  • Button in Excel einfügen:

    • Verwende stattdessen ActiveX-Steuerelemente, um mehr Anpassungsmöglichkeiten für deinen Button zu erhalten. Du kannst auch mehrere Buttons erstellen, um verschiedene Funktionen auszuführen.
  • Formel verwenden:

    • Wenn du keine Makros verwenden möchtest, kannst du auch eine Formel in der nächsten Zeile einfügen, um den Inhalt der vorherigen Zeile zu kopieren.

Praktische Beispiele

  • Beispiel 1: Du hast eine Tabelle mit Verkaufsdaten. Drücke den Button, um schnell neue Zeilen für weitere Verkäufe hinzuzufügen, ohne das Format manuell anpassen zu müssen.

  • Beispiel 2: Nutze den Button, um neue Zeilen für Eingaben in einer Projektmanagement-Tabelle zu erstellen. Dies spart Zeit und sorgt für Konsistenz in der Formatierung.


Tipps für Profis

  • Formatierung automatisieren: Du kannst den Code erweitern, um Formatierungen automatisch zu übernehmen, z.B. Schriftart, Hintergrundfarbe und weitere Stile.

  • Fehlermeldungen anpassen: Passe die MsgBox-Fehlermeldungen an, um spezifischere Informationen zu geben, falls der Benutzer versucht, mehr Zeilen als erlaubt hinzuzufügen.


FAQ: Häufige Fragen

1. Wie kann ich einen Button in Excel 2010 einfügen? Du kannst einen Button über die Registerkarte „Entwicklertools“ unter „Einfügen“ auswählen und dann auf dein Arbeitsblatt ziehen.

2. Funktioniert das auch in Excel für Mac? Ja, die Schritte sind ähnlich, aber der Zugriff auf den VBA-Editor kann leicht variieren. Stelle sicher, dass du die Entwicklertools aktiviert hast.

3. Kann ich mehrere Buttons für verschiedene Funktionen haben? Ja, du kannst mehrere Buttons einfügen und jedem Button einen anderen VBA-Code zuordnen, um unterschiedliche Aufgaben auszuführen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige