Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Frage Microsoft Microsoft Office

Mitglied: Viper23

Viper23 (Level 1) - Jetzt verbinden

24.05.2008, aktualisiert 27.05.2008, 14851 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 ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
VB for Applications
Excel VBA Sortierung von Daten (4)

Frage von easy4breezy zum Thema VB for Applications ...

Microsoft Office
gelöst Excel-Formel oder VBA (7)

Frage von nicki01 zum Thema Microsoft Office ...

Microsoft Office
Prüfung von Intervallen und Textausgabe in Excel (2)

Frage von traller zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...