Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

wie erstelle ich in Excel eine Funktion mit Buttons

Mitglied: Viper23

Viper23 (Level 1) - Jetzt verbinden

24.05.2008, aktualisiert 27.05.2008, 15521 Aufrufe, 4 Kommentare

Guten Morgen,

ich will in Excel einen Button erstellen, der, wenn man drauf klickt, einen Wert in einem anderen Tabellenblatt hinzuaddiert.

also:

in Tabellenblatt 1 steht eine Liste mit Namen und Attributen
in Tabellenblatt 2 gebe ich nun einen Namen und einen Attributwert ein

wenn ich auf den Button klick, soll der Attributwert bei dem bestimmten Namen zu dem alten Attributwert addiert werden

Tabelle1:
NAME ATT
Hans 1
Marc 2
Timo 1

Tabelle 2:
NAME ATT
Hans 1 [BUTTON] <-- hier ist die eingabe

jetzt soll bei Hans 2 stehen...


bekommt man das so leicht hin?
ich weiß nicht mal, ob man einen Button einfügen kann.
danke schon mal im Vorraus
Mitglied: bastla
24.05.2008 um 13:25 Uhr
Hallo Viper23 und willkommen im Forum!

Unter der Annahme, dass es nur sinnvoll sein kann, zu bereits vorhandenen Namen den Attributwert zu verändern, böte sich eigentlich zur Auswahl des Namens ein Dropdown an. Die Umsetzung könnte so erfolgen (Annahme: Deine Beispiele für Tabelle1 und Tabelle2 beginnen jeweils in A1 mit der Überschrift "NAME"):
  1. Markiere in Tabelle1 alle Namen ohne die Überschrift, aber mit einer zusätzlichen Zelle am Ende der Liste (daher: A2:A5) und vergebe dafür den Bereichsnamen "Namen".

    Die leere Zelle mit aufzunehmen hat den Vorteil, dass Du die Namensliste leicht erweitern kannst, indem Du für einen neuen Namen diese Zelle (derzeit A5) markierst, über das Kontextmenü "Zellen einfügen ..." (oder mit Strg +) und die Auswahl "Zellen nach unten verschieben" wählst und so eine zusätzliche Zelle im benannten Bereich erhältst.

    Ist an keine Erweiterung gedacht, kannst Du auch nur die Namen (A2:A4) mit dem Bereichsnamen versehen - Vorteil: Damit vermeidest Du die ansonsten erscheinende leere Zeile am Ende des Dropdowns (wobei diese aber nicht allzu störend sein sollte).
     
  2. Benenne in Tabelle2 die Zelle A2 mit "Auswahl" und die Zelle B2 mit "Hinzu".
     
  3. Öffne die Symbolleiste "Formular" und "zeichne" in Tabelle2 ein "Kombinationsfeld" über der Zelle A2 ein (sodass diese und vor allem der später darin erscheindende Zahlenwert verdeckt werden) - dazu das entsprechende Symbol in der Symbolleiste anklicken und mit der Maus einen Rahmen aufziehen.
     
  4. Wähle nach einem Rechtsklick auf den Rahmen dieses Kombinationsfeldes das Register "Steuerung" (sollte ohnehin geöffnet sein) und trage dort ein: für "Eingabebereich": Namen und für "Zellverknüpfung": Auswahl
     
  5. Füge nun aus der "Format"-Symbolleiste noch eine "Schaltfläche" an der gewünschten Position hinzu, bestätige den mit "Schaltfläche1_BeiKlick" vorgeschlagenen "Makronamen" und ändere deren Beschriftung "Schaltfläche1" auf den gewünschten Text.
     
  6. Nach einem Rechtsklick auf den Rahmen des noch markierten Buttons kannst Du "Makro zuweisen..." und "Neu" wählen und so direkt in den VBA-Editor gelangen, wo Du zwischen "Sub Schaltfläche1_BeiKlick()" und "End Sub" nur noch den folgenden Code einfügen musst:
    01.
    Hinzu = Range("Hinzu").Value 
    02.
    Auswahl = Range("Auswahl").Value 
    03.
    Range("Namen").Offset(Auswahl-1,1).Cells(1).Value=Range("Namen").Offset(Auswahl-1,1).Cells(1).Value+Hinzu 
    04.
    'Range("Auswahl").Value = 0 
    05.
    'Range("Hinzu").Value = ""
Nach dem Schließen des VBA-Editors und einem Klick an eine beliebige Stelle der Tabelle2 (um die Markierung der Schaltfläche aufzuheben) solltest Du Namen auswählen und per Klick auf den Button den in B2 eingetragenen Wert in der Tabelle1 addieren können.

Da ich nicht weiß, wie Du diese Funktionaliltät einzusetzen gedenkst, gibt es (noch) keine Form der Rückmeldung - Du kannst aber zB nach der Ausführung der Aktion den gewählten Namen aus der Anzeige im Kombinationsfeld und/oder den in B2 eingetragenen Wert entfernen lassen, indem Du das Apostroph am Anfang der Zeile 4 und/oder Zeile 5 des VBSA-Codes entfernst (zum Code gelangst Du wieder - wie bei Schritt 6 beschrieben - über das Kontextmenü des Buttons, wobei dieses Mal "Bearbeiten" zu wählen ist; alternativ dazu kannst Du den VBA-Editor auch mit Alt-F11 direkt aufrufen).

Grüße
bastla

[Edit] Formatierung angepasst [/Edit]
Bitte warten ..
Mitglied: Viper23
27.05.2008 um 09:32 Uhr
vielen vielen dank...
Das ist ja ausführlicher als ausführlich..
hat mir sehr viel gebracht, ehrlich!



Jetzt hab ich nur ein Problem:

was ich, wenn ich ne ganze Tabelle hab.

also, in Spalte A stehen namen, in Spalte B Punkte in Spalte C Entfernungsangaben, in Spalte D..., etc..
und ich will dann beim Namen 1 nur den Wert B so verändern, beim Namen 3 nur Wert C....

Wie muss dann diese Funktion aussehen, und die Tabelle?

und geht das dann überhaupt mit so nem Button?

Grüßle Viper23
Bitte warten ..
Mitglied: bastla
27.05.2008 um 12:01 Uhr
Hallo Viper23!

In disem Fall könntest Du mehrere Buttons, von denen jeder ein eigenes Script aufruft, verwenden und die Änderungen nacheinander ausführen - also ersten Namen auswählen, Punkte ändern, nächsten Namen auswählen, Entfernung ändern, ...

Damit Du das Script anpassen kannst, eine kurze Erklärung dazu:

01.
Hinzu = Range("Hinzu").Value
Mit dieser Zeile wird der hinzuzufügende Wert aus der entsprechend benannten Zelle gelesen - Du könntest den Namen anpassen, sodass für Änderung der Punkte eine Zelle mit dem Namen "HinzuPunkte", für Änderung der Entfernung eine "HinzuEntfernung"-Zelle etc existieren. Den für dieses Script relevanten Namen gibst Du dann als "Range" an, also etwa
01.
 Hinzu = Range("HinzuEntfernung").Value
01.
Auswahl = Range("Auswahl").Value
Diese Zeile kann gleich bleiben - damit wird die laufende Nummer des gewählten Namens gelesen.

01.
Range("Namen").Offset(Auswahl-1,1).Cells(1).Value = Range("Namen").Offset(Auswahl-1,1).Cells(1).Value + Hinzu
Hier wird die Addition durchgeführt, wobei in der "Offset"-Angabe "Auswahl-1" gleich bleibt (wählt die richtige Zeile für den gewählten Namen aus). Der Wert 1 nach dem Komma legt die Spalte fest - wenn, wie im Beispiel, die Namen in Spalte A und die Entfernungen in Spalte C stünden, wäre zum Ändern der Entfernung hier 2 einzutragen (= Spaltenabstand in Tabelle2 zwischen Name und zu änderndem Wert).

Zusammenfassend:
Um auch Entfernungen (Spalte C) ändern zu können, erhält zunächst die Zelle Tabelle1!C2 den Namen "HinzuEntfernung", dann wird ein Button eingezeichnet und in das zugeordnete Makro eingetragen:
01.
Hinzu = Range("HinzuEntfernung").Value  
02.
Auswahl = Range("Auswahl").Value  
03.
Range("Namen").Offset(Auswahl-1,2).Cells(1).Value = Range("Namen").Offset(Auswahl-1,2).Cells(1).Value + Hinzu 
Das Ganze ließe sich zwar eleganter schreiben, aber so solltest Du eigentlich damit zurechtkommen können ...

Grüße
bastla
Bitte warten ..
Mitglied: Viper23
27.05.2008 um 12:07 Uhr
vielen vielen Dank...
ich werde es gleich mal versuchen...

danke für die detaillierte und vor allem schnelle Antwort...
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel Button
gelöst Frage von Florian86Microsoft Office5 Kommentare

Hallo, kann ich wie im Download rot markiert per Button die Ziffern aller Leerzellen automatisch mit der vorhergehenden füllen ...

Python
Python GUI Button funktionen?
gelöst Frage von ScuzzyPython7 Kommentare

Guten Tag, ich möchte ein Skript bauen welches eine GUI öffnet und ich die auswahl zwischen 3 Browsern habe. ...

Python

GTK Button führt funktion nur mit fehlermeldung aus

Frage von deinernstjetztPython

Hallo, in meinem GTK Programm (in Python)(GTK+3) werden in einem Teil einige Daten abgefragt, diese sollen dann über eine ...

Microsoft Office

Excel Button Makro

gelöst Frage von Florian86Microsoft Office3 Kommentare

Hallo, ich habe folgendes Problem. Wir haben uns einige Buttons erstellt und mit Macros hinterlegt. Jetzt gibt es einen ...

Neue Wissensbeiträge
Backup

2016 - Restore mit WBAdmin - iSCSI Device als Sicherungsziel

Erfahrungsbericht von Henere vor 2 TagenBackup1 Kommentar

Servus zusammen, was mich eben einige graue Haare gekostet hat Server 2016. Ich habe meinem Server eine weitere M2 ...

Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 4 TagenHumor (lol)10 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 4 TagenExchange Server9 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 5 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Heiß diskutierte Inhalte
E-Mail
Deutsche e-Mail Adresse auf iPhone in Katar. Nur Probleme
gelöst Frage von vanTastE-Mail32 Kommentare

Moin, ich habe hier in Deutschland auf einem Exchange 2013 eine e-Mail Adresse (name@domain.de) für einen Kollegen in Katar ...

Windows Server
Domäne beitreten nicht möglich, unter VMWare windows Server 2016 Core
Frage von AmanuelWindows Server21 Kommentare

Ich habe auf meinem Mac unter VMWare Windows Server 2016 Core und Windows Server 2016 Desktopversion installiert. Beide Systeme ...

Windows Server
Server verliert Dateien und Ordner
gelöst Frage von routeserverWindows Server18 Kommentare

Hallo Freunde, ich habe hier ein Problem, das mich an meine Grenzen treibt und ich würde gerne wissen, ob ...

Windows Tools
User Self Service und Client Management
Frage von OrkansonWindows Tools14 Kommentare

Hallo zusammen, ich hab ein paar verschiedene Fragen: 1. Was benutzt ihr um Software im Unternehmen zu verteilen? 2. ...