Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Schaltfläche in Excel einbinden, aber wie?





Frage

Hi zusammen! ich hoffe wirklich das ihr mir helfen könnt! mein problem bzw. frage ist folgende. ich habe eine excel-sheet erstellt in dem verschiedenste zahlen miteinander addiert werden.jetzt möchte ich eine schaltfläche generieren über "steurungs-toolbox" also sprich vba!diese schaltfläche soll löschen heissen und auch genau diese funktion ausführen.da ich aber leider kein profi in vb bin komm ich leider nicht an mein ziel.wenn die schaltfläche betätigt wird soll ein bestimmter, vorher festgelegter bereich gelöscht werden um neue daten einzugeben. wie mache ich das, ich hoffe ihr könnt mir helfen.wäre auch cool wenn es einen crashkurs im internet gäbe wo ich mal nen einstieg in diese thematik hätte. für die hilfe vielen dank! Kevin

Antwort 1 von coros

Hi Kevin,

da Du nicht geschrieben hast, um welche Zellen es sich handelt, hier zwei Makros. Das eine löscht Einträge in einzellnen Zellen

Sub Einzellen_Zellen_löschen()
Range("A1, C1").ClearContents
End Sub


das andere einen ganzen Bereich

Sub Bereich_löschen()
Range("A1:C10").ClearContents
End Sub


Die Zellen oder der Bereich, der gelöscht werden soll, steht in Klammern und Anführungsstrichen. Wenn der geändert werden soll, diese Einträge abändern.

Da ich nicht weiß, ob Du weißt, wie man eine Befehlsschaltfläche in ein Tabellenblatt einfügst, kommt hier eine kurze Anweisung.

1. Gehe in der Menüleiste auf Ansicht => Symbolleiste => Steuerelement-Toolbox

2. Klicke auf die 6.Schaltfläche von links (Schaltflächenkommentar: Befehlsschaltfläche)

3. Positioniere die Schaltfläche in Deinem Tabellenblatt und passe gegebenenfalls die Größe an.

4. Klicke in der Symbolleiste auf die 3.Schaltfläche von links (Schaltflächenkommentar: Code anzeigen).

5. In das geöffnete Fenster schreibst Du zwischen die Texte “Private Sub CommandButton1_Click()“ und “End Sub“ in die Leerzeile Call Makroname oder nur der Makroname.

6. Klicke in der Symbolleiste auf die erste Schaltfläche von links um den Entwurfmodus zu beenden (Schaltflächenkommentar: Entwurfmodus beenden).

Wenn Du alles richtig gemacht hast, sollte das Makro, nachdem Du die Schaltfläche betätigt hast, abgearbeitet werden.

Du solltest zum Abschluss noch die Sicherheitseinstellung, die beim Öffnen der Datei abgefragt wird, kontrollieren. Klicke dazu nacheinander in der Menüleiste wieder auf Extras => Makro und dann auf Sicherheit.... Gehe, falls nicht schon angezeigt, auf die Registerkarte Sicherheitsstufe und schaue dort nach, ob die Einstellung Mittel aktiviert ist. Wenn nicht, aktiviere diese Einstellung, da sonst der Code nicht ausgeführt werden kann. Beim nächsten Öffnen Deiner Datei kommt eine Abfrage, ob Makros aktiviert oder deaktiviert werden sollen. Klicke auf aktivieren und der Code wird ausgeführt.

Ich hoffe, Du kommst kalr mit den Anleitungen, ansonsten melde Dich noch mal.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von Kevin122

erstaml tausend dank für deine mühe!liegt wohl eher anmir als an deiner beschreibung das es noch nicht ganz klappt...

wenn ich die schaltfläche betätige kommt die meldung "Fehler beim Kompilieren /End Sub erwartet"!

worauf deutet das hin?habe deinen punkt 5 nicht richtig verstanden, vielleicht liegt es ja daran...




Kevin

Antwort 3 von coros

Moin Kevin,

ich nehme mal ganz stark an, dass am Ende des Codes für die Schaltfläche nicht der Text End Sub steht. Was ich vergessen hatte, dass der Code aus meinem ersten Beitrag in ein Standardmodul kopiert werden sollte. Nachfolgend, wie man das macht.

1. Markiere die Anweisung aus diesem Beitrag und Kopiere (Strg c) diesen.

2. Klicke in Deiner Exceldatei in der Menüleiste nacheinander auf Extras => Makro => Visual Basic Editor oder drücke die Tastenkombination Alt F11

3. In dem neu geöffneten Fenster suche auf der linken Seite nach dem Eintrag VBA Projekt(Hier der Name Deiner Tabelle) und klicke doppelt auf diesen Eintrag

4. Klicke danach nacheinander in der Menüleiste auf Einfügen => Modul.

5. Füge nun die vorher kopierte Anweisung in das rechte leere Fenster ein.


Nun zurück zu der Schaltfläche. Mal angenommen, Du nimmst mein obiges Beispiel. Dann hat das Makro den Namen Einzellen_Zellen_löschen oder Bereich_löschen. Wenn Du nun eine Schaltfläche erstellt hast und gemäß meiner Anleitung in den VBA-Editor wechselst, müsste dann da folgendes stehen

Private Sub CommandButton1_Click()

End Sub

und der Curser müsste in der freien Zeile zwischen den Texten blinken. Da schreibst Du dann Call Einzellen_Zellen_löschen oder Call Bereich_löschen. Es müsste also bei Dir jetzt folgendes stehen

Private Sub CommandButton1_Click()
Call Einzellen_Zellen_löschen
End Sub

oder

Private Sub CommandButton1_Click()
Call Bereich_löschen
End Sub

Wenn dem so ist, sollte es jetzt aber funktionieren. Wenn nicht, melde Dich noch mal.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von Kevin122

weltklasse...hat funktioniert

tausend dank für deine hilfe und dein bemühen!
hast du viellecht noch irgendeinen link wo ich nen kleine einstieg in vb erhalte?

will ja auch mal wissen was ich da tue ;)!



nochmals vielen dank....




Kevin

Antwort 5 von cmkatz

Hi Kevin,

kuck dir mal das Excel-Training an. Da gibt's u.A. auch nen VBA-Kurs.

Gruß
cmkatz

Antwort 6 von coros

Hi Kevin,

freut mich, dass Deine Schaltfläche jetzt funktioniert. Schau mal
hier
oder auch hier nach. Die sind ganz interessant. Ansonsten viel im Forum lesen und ausprobieren. Dabei habe ich am meisten gelernt. Ganz nach der Learning by doing Methode. Danke Dir auch für die Rückmeldung.

MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: