Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte übertragen per Knopfdruck

Forumthread: Werte übertragen per Knopfdruck

Werte übertragen per Knopfdruck
08.08.2024 18:29:06
GRIMROGG
Ich möchte in einer Datei Werte händisch eingeben und diese via Knopfdruck (Makro ist zugewiesen) in einen weiteren Reiter übertragen.

Entsprechende Funktion habe ich definiert. Dem Button im ersten Reiter habe ich das entsprechende Makro zugeweisen. Sobald ich auf den Button klicke kommt der Fehler, Compile error:

Duplicate declaration in current scope



Und im Debugger wird im Modul die erste Zeile hervorgehoben

"Sub Rectangle1_Click()"



Ziel meiner Datei ist es, das die Werte aus dem Reiter der Eingabe ("V2.5 WIP") im Reiter "data" eingetragen werden und beim nächsten Mal die im ersten Reiter eingegebenen / errechneten Werten in die nächste freie Zeile im Reiter "data" eingetragen werden.



Ich bin mit meinem Latein am Ende. Wo liegt mein Ansatzfehler, beziehungsweise fehlt noch etwas?



Danke Euch im Voraus



Hier meine Datei: https://www.herber.de/bbs/user/171543.xlsm
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte übertragen per Knopfdruck
08.08.2024 18:33:22
Uduuh
Hallo,
das sagt dir doch die Fehlermeldung.
Die Variable MA_anw_FL1 As String ist doppelt deklariert.

Gruß aus'm Pott
Udo
AW: Werte übertragen per Knopfdruck
08.08.2024 18:55:52
daniel
Hi
naja, kannst du englisch?
die Fehlermeldung sagt dir doch was falsch ist und sollte dir sogar den Fehlerhaften Teil markieren.

"Duplicate declaration" sagt aus, dass du eine Variable mehrfach deklariert hast (also bei DIM angegeben)
jede Variable darf nur einmal deklariert werden (mehr ist ja auch nicht notwendig)

wie gesagt, Excel markiert dir freundlicherweise auch gleich die fehlerhafte Stelle. jetzt musst du nur noch rausfinden, wo diese Deklaration nochmal vorkommt.
Aber auch hierbei hilft dir Excel, in dem des dir die Funktion SUCHEN bereit stellt, mit der du in dem Codefenster nach dem Text suchen kannst. Die Funktion SUCHEN findest du im Menü unter "Bearbeiten"
in diesem Zug solltest du auch Option Explicit aktivieren, https://online-excel.de/excel/singsel_vba.php?f=4 damit bekommt man Tippfehler bei Variablenbenennungen vom System angezeigt.

und noch ein Tipp:
du hast viele Variablen mit gleichem Namen und Zählnummer. hier kann man mit Arrays arbeiten.
also statt:
Dim Mails_FL1

Dim Mails_FL2
Dim Mails_FL3
Dim Mails_FL4
Dim Mails_FL5

schreibt man einfach:
Dim Mails_FL(5)

im Code müsste man dann zwar immer die Klammern schreiben, also Mails_FL(3) statt Mail_FL3, aber es hat ein paar weitere Vorteile:
- du musst weniger deklarieren, wenn du mehr brauchst, änderst du einfach die Zahl
- die Zahl in der Klammer darf auch selber wieder eine Variable sein.
das kann die Programmierung verkürzen, weil man dann mit Schleifen arbeiten kann:
also statt:
Mails_FL1 = "abc"

Mails_FL2 = "abc"
Mails_FL3 = "abc"
Mails_FL4 = "abc"
Mails_FL5 = "abc"

dann
for i = 1 to 5

Mails_FL(i) = "abc"
Next


und wo ich dir schon das Online-Excel empfohlen hab , schau dir dort auch mal das an.
https://online-excel.de/excel/singsel_vba.php?f=78
das hilft dir, deinen Code zu kürzen und zu vereinfachen.
dann sieht man auch schneller, wo man mit einer Schleife die Programmierung vereinfachen kann

Gruß Daniel
Anzeige
AW: Werte übertragen per Knopfdruck
08.08.2024 19:21:46
GRIMROGG
Danke für die schnelle Hilfe, ich setz mich ran.
AW: Werte übertragen per Knopfdruck
09.08.2024 10:30:42
Grimrogg
Soweit funzt das. Allerdings springt die Funktion nicht in die nächste frei Zeile für den nächsten Eintrag.

Folgende Fehlermeldung:

Run-time error '1004':
Application-defined or object-defined error

Folgende Zeile wird hervorgehoben

Worksheets("data").Range("C3").End(x1Down).Select

Und eine weitere Frage hätte ich. Wie muss ich die Variablen definieren vom Typ her, dass Prozentwerte ausgegeben werden (Bsp: 12,35%) und welcher Typ bei Zahlenwerten mit 2 Stellen nach dem Komma (Bsp: 23,45)?

Könnt ihr mir bitte helfen?

Danke Euch
Anzeige
AW: Werte übertragen per Knopfdruck
09.08.2024 11:27:28
daniel
Hi

Du hast geschrieben "X1Down" es muss aber heißen "XLDown"
Das "XL" deutet an, dass es eine konstante ist, die von Excel kommt. (Ist eigentlich klein, aber in Kleinbuchstaben sehen sich 1 und L /l zu ähnlich) Daneben gibt es noch Konstantem, die von VBA kommen, die fangen mit "VB" an.

Weiterhin solltest beachten, dass man ein Select immer nur im aktiven Tabellenblatt ausführen kann.
Wenn du also sowas hast;

Worksheets("data").Range("C3").End(x1Down).Select

Dann soltest du zuerst das Worksheet selektieren und erst im zweiten Schritt die Range.
Besser ist es, nicht zu selektieren und anstelle des Selects den Befehl direkt anzufügen (steht ja im Online-Excel)

Zu deiner Variablenfrage:

Es gibt zwar das Zahlenformat Currency, aber ich würde immer mit Double arbeiten und dann für die Ausgabe den Wert formatieren.
Schreibst du den Wert in eine Excelzelle, dann setzte das Zahlenformat der Zelle entsprechend.
In VBA kann man den Befehl FORMAT verwenden:
x = 0.12345

MsgBox "Anteil: " & Format(x, "0.00%")

Gruß Daniel

Anzeige
AW: Werte übertragen per Knopfdruck
09.08.2024 17:47:40
Grimrogg
Danke sehr für die Hilfe. Jetzt funktioniert es.

Nun möchte ich die im "data"-Reiter eingefügten Werten in einem seperaten Reiter in bestimmten Zellen die jeweiligen Werte ausgeben in Bezug auf das Datum, welches ich als Eingabekriterium definieren möchte.

Datum: 05.08.2024 - die Zelle zum Eingeben wäre hier C4

Sobald ich ENTER betätige möchte ich einzelnen Werte in den entsprechenden Zellen ausgeben (in der Beispieldatei sind das die Zellen mit dem Farbcode: #FFD966.)

Wie sieht hier eine einfache Umsetzung aus?

Die Struktur findet sich in dieser Datei: https://www.herber.de/bbs/user/171574.xlsx

Vielen Dank im Voraus
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige