Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1644to1648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makros für Button und Dropdown-Menu

Makros für Button und Dropdown-Menu
19.09.2018 10:49:48
Bud
Hallo,
ich poste hier erneut, da bisher leider nur ein Austausch über die Präsentationsart meiner Problemstellung stattfand.
Diese habe ich nun hoffentlich übersichtlicher und vollständiger überarbeitet.

Ich kenne nur ein paar Grundlagen von Excel.
Von VBA habe ich leider gar keine Ahnung.
Nun benötige ich allerdings 2-3 Makros und damit Hilfe.
Folgende Situation:
Ich möchte Übertragungsraten errechnen und speichern.
Dazu habe ich bereits zwei Zeilen in Tabelle1 (Titel "Rechner") angelegt.
In Zeile 2 befinden sich die Überschriften für die Spalten von A-J.
In Zeile 3 können dann die Daten eingetragen werden und die benötigten Ergebnisse werden durch Funktionen bereits errechnet. Die Zellen sind wie gewünscht formatiert.
In B2 habe ich ein Dropdown-Menu (Liste) eingefügt mit den Parametern "Abruf" und "Archivierung".
Zusätzlich existiert ein Button "Speichern" in J4.
Zielstellung:
Der Benutzer soll bei Eingabe der Daten im Drop-Down (Zelle B3) auswählen müssen um welchen Typ es sich handelt, "Abruf" oder "Archivierung". Bei Aktivierung des Buttons "Speichern" soll dann je nach Typ in Tabelle 2 (Abruf) oder Tabelle 3 (Archivierung) die ganze Eingabezeile (bzw. die Zellen A3 - J3), im selben Format und mit den selben Werten gespeichert werden. Die Funktionen müssen dabei nicht übernommen werden.
Sollte keine Auswahl im Dropdown-Menu erfolgen, darf die Speicherfunktion nicht ausgeführt werden und ein Hinweis wird aktiviert.
Die kopierten Angaben (Zeilen/Zellen) sollen in Zeile 2 der jeweiligen Tabelle eingefügt werden. Zuvor dorthin kopierte Angaben sollen um eine Zeile nach unten verschoben werden. Nach 5 Zeilen sollen zwei Zeilen leer gelassen werden (7 u. 8).
In Zeile 7 möchte ich einen Mittelwert der in Spalte J enthaltenen Werte ermitteln wobei leere Zellen ignoriert werden sollen.
Zeile 8 bleibt als optischer Absatz leer.
Ab Zeile 9 soll die Verschiebung nach unten der (in Zeile 7 und 8 pausierten) älteren Datensätze fortgeführt werden. Die Liste soll insgesamt höchstens 50 Einträge erfassen. Ab dem 51. Eintrag soll dann ganz unten der älteste Eintrag gelöscht werden.
Am Ende möchte ich noch die Eingabezellen in Tabelle 1 zurücksetzen.
Zellen zur Eingabe von Zahlenwerten haben bereits eine Funktion um bei leerem Inhalt mit 0 zu arbeiten ebenso wie Zellen mit Berechnungen welche bei 0-Angaben Fehler angeben würden. Die Zelle B1 stellt mit =Heute das Datum bereit.
Was beim DropDown Menu (B3) bei ClearContent passiert weiss ich nicht genau.
Zusätzlich möchte ich in Tabelle 1 eine Möglichkeit bieten, mit den errechneten Mittelwerten der letzten 5 Einträge aus Tabelle 2 (Abruf) oder Tabelle 3 (Archivierung), eine voraussichtliche Dauer und Transferrate je Datengröße (GB) bereit zu stellen.
Dies kann ich allerdings in zwei Abschnitten selbst mit Funktionen lösen.
Eleganter wäre es auch hierfür das Dropdown Menu zu benutzen, wofür allerdings ein weiteres Makro benötigt würde.
Zur Veranschaulichung habe ich die Arbeitsmappe ohne Makros, aber mit Beispieleinträgen erstellt und hochgeladen:
https://www.herber.de/bbs/user/124014.xlsm
Unter diesen Links habe ich zu Teilabschnitten spezielle Codes gefunden:
https://www.herber.de/forum/archiv/1016to1020/1019134_Makro_ausfuehren_nach_Auswahl_aus_Dropdown.html
Makro nicht ausführen bei keine Auswahl aus Dropdown, allerdings für Zelle B3 in etwa so?:
Sub leer()
If Cells(1, 1).Value = "" Then
MsgBox "Bitte Typ-Auswahl treffen"
End If
End Sub
https://www.herber.de/forum/archiv/1004to1008/1006509_Zeilen_nach_unten_verschieben.html
http://www.clever-excel-forum.de/Thread-Teil-einer-Tabelle-um-eine-Zeile-nach-unten-verschieben
Ich habe durchaus versucht mir die Codes selbst zu basteln, aber mir fehlt das Verständnis für die Syntax um gefundene Codes an meine Bedürfnisse anzupassen und sinnvoll miteinander zu verknüpfen.
Für jegliche Form der Hilfestellung wäre ich dankbar.
Ich erwarte nicht, dass mir jemand alles komplett erstellt, geschweigedenn die ganze Arbeitsmappe.
Leider komme ich ab diesem Punkt eben nur nicht weiter.
Ich danke im Voraus für eure Zeit und Bemühungen.

Grüße,
Bud

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makros für Button und Dropdown-Menu
19.09.2018 11:06:44
SF
Hola,
verlinkst du bitte deine Fragen in den verschiedenen Foren gegenseitig?
Danke.
Gruß,
steve1da
AW: Makros für Button und Dropdown-Menu
19.09.2018 11:20:20
Luschi
Hi,
ich finde es unmöglich, daß Du glaubst, wenn man eine Frage in alle möglichen Foren stellt, wird man besser-schneller-ausführlicher-zu einer sauberen Lösung kommen.
Sobald ich ich lese, daß Du ein Leecher bist, ist meine Lust, meinen Senf zur Lösungsbildung hier mitzuteilen, auf Null gesunken!
Gruß von Luschi
aus klein-Paris
AW: Makros für Button und Dropdown-Menu
19.09.2018 11:58:49
PeterK
Hallo
Die "Vorschau" kannst Du nach änlichem Muster programmieren

Sub Speichern()   ' Wird einem Button zugeordnet
If Trim(ActiveSheet.Range("B3")) = "" Then
MsgBox ("Bitte Auswahl in der Spalte TYP")
Exit Sub
Else
Call DoSpeichern(Trim(ActiveSheet.Range("B3")))
End If
End Sub
Private Sub DoSpeichern(WSName As String)
Dim i As Long
With Worksheets(WSName)
'Zuerst verschieben wir alle Zeilen nach unten
For i = 54 To 9 Step -1
.Range(.Cells(i, 1), .Cells(i, 8)).Value = .Range(.Cells(i - 1, 1), .Cells(i - 1, 8) _
).Value
Next i
.Range(.Cells(9, 1), .Cells(9, 8)).Value = .Range(.Cells(6, 1), .Cells(6, 8)).Value
For i = 6 To 2 Step -1
.Range(.Cells(i, 1), .Cells(i, 8)).Value = .Range(.Cells(i - 1, 1), .Cells(i - 1, 8) _
).Value
Next i
' kopieren der neuen Information
.Range(.Cells(2, 1), .Cells(2, 8)).Value = Worksheets("Rechner").Range(Cells(3, 1),  _
Cells(3, 8)).Value
' löschen der Eingabe
Worksheets("Rechner").Range(Cells(3, 2), Cells(3, 8)).ClearContents
End With
End Sub

Anzeige

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige