Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1952to1956
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

VBA Zahlen aus Eingabefeld in Zellen übernehmen

VBA Zahlen aus Eingabefeld in Zellen übernehmen
11.11.2023 08:01:08
Sachsen-Simon
Hallo,

ich habe bislang als nicht registierter Gast auf dieser Seite einige Lösungen gefunden.

Nun bin ich allerdings an einem Punkt angelangt, wo ich Eure Hilfe in einem individuellen Projekt benötige.

Wenn ich auf einen Button klicke, soll folgendes erreicht werden:

Wenn in Tabellenblatt 1 die Zelle H5 =2
dann
soll ein Eingabefeld erscheinen, in welchem ich eine Ganz- oder Dezimalzahl eingebe, welche immer im Format 00,00 in den Zellen B4,E4,H4 eingetragen werden soll
danach
soll ein Eingabefeld erscheinen, in welchem ich eine Ganz- oder Dezimalzahl eingebe, welche immer im Format 00,00 in den Zellen K4,N4,Q4 eingetragen werden soll
und danach
soll ein Eingabefeld erscheinen, in welchem ich eine Ganz- oder Dezimalzahl eingebe, welche immer im Format 00,00 in den Zellen T4,W4,Z4 eingetragen werden soll

Wenn in Tabellenblatt 1 die Zelle H5 =1
dann
soll ein Eingabefeld erscheinen, in welchem ich eine Ganz- oder Dezimalzahl eingebe, welche immer im Format 00,00 in den Zellen B4,K4,T4 eingetragen werden soll

Ich weiß, dass es hier Experten gibt, für die diese Aufgabe ein Leichtes ist. Ich beginne gerade, mich mit VBA auseinanderzusetzen und finde es äußerst interessant, welche Möglichkeiten hiermit verbunden sind, wenn man es denn beherrscht.

Ich freue mich auf funktionelle Lösungsansätze und bedanke mich im Voraus.

Liebe Grüße aus Sachsen

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zahlen aus Eingabefeld in Zellen übernehmen
11.11.2023 08:22:30
Max
    Dim inputVal As Variant


' Prüfung Zeile H5
If Sheets("Tabelle1").Range("H5").Value = 2 Then
' Eingabefeld für die Zellen (B4, E4, H4)
inputVal = InputBox("Bitte geben Sie eine Zahl im Format 00,00 ein.")
' Überprüfung ob eine Zahl eingegeben wurde
If IsNumeric(inputVal) Then
Sheets("Tabelle1").Range("B4").Value = inputVal
Sheets("Tabelle1").Range("E4").Value = inputVal
Sheets("Tabelle1").Range("H4").Value = inputVal
End If

' Für die Zellen (K4, N4, Q4)
inputVal = InputBox("Bitte geben Sie eine Zahl im Format 00,00 ein.")
If IsNumeric(inputVal) Then
Sheets("Tabelle1").Range("K4").Value = inputVal
Sheets("Tabelle1").Range("N4").Value = inputVal
Sheets("Tabelle1").Range("Q4").Value = inputVal
End If


Bitteschön, das ganze kannst du auf deine gewünschten Zellen erweitern.
Anzeige
AW: VBA Zahlen aus Eingabefeld in Zellen übernehmen
11.11.2023 16:32:56
Sachsen-Simon
Dankeschön
AW: VBA Zahlen aus Eingabefeld in Zellen übernehmen
11.11.2023 16:33:39
Sachsen-Simon
Dankeschön
AW: VBA Zahlen aus Eingabefeld in Zellen übernehmen
11.11.2023 08:27:08
Oberschlumpf
Hi,

vom Prinzip her so (ungetestet):


Sub ButtonName_Click()

Dim Eingabe As String
Dim ldbZahl As Double '(Ganzzahl is nich, weil du ja auch Kommazahlen zulassen willst)

If Sheets("Tabellenblatt 1").Range("H2").Value = 2 Then
Eingabe = InputBox("Geben Sie eine Zahl = 99 ein", "Zahlenwert", Format(0, "00.00"))
End If

End Sub


Wie gesagt, grundsätzlich so.
Da ich aber vermute, wenn ich hier den kompletten Code zeige, könnte es sein, dass du nicht weißt, wo du den Code einfügen musst.
Daher zeig doch bitte per Upload eine Excel-Bsp-Datei mit allen erforderlichen Bsp-Daten.

Ciao
Thorsten
Anzeige
AW: VBA Zahlen aus Eingabefeld in Zellen übernehmen
11.11.2023 10:00:59
volti
Hallo Simon,

hier noch eine Idee als Anregung, die durch Schleifennutzung deutlich kürzer aber auch etwas komplizierter ist....

Code:


Sub Test() Dim sWert As String, i As Integer With Sheets("Tabelle1") If .Range("H5").Value = 2 Or .Range("H5").Value = 1 Then For i = 0 To 18 Step 9 sWert = InputBox("Bitte geben Sie " & IIf(i = 0, "", " noch") _ & " eine Zahl im Format 00,00 ein!") If IsNumeric(sWert) Then sWert = Format(Val(Replace(sWert, ",", ".")), "0#.#0") ' Formatierte Werte in Blatt ausgeben If .Range("H5").Value = 1 Then .Range("B4,K4,T4").Value = sWert: Exit Sub Else .Range("B4,E4,H4").Offset(, i).Value = sWert End If End If Next i End If End With End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz
Anzeige
AW: VBA Zahlen aus Eingabefeld in Zellen übernehmen
11.11.2023 10:59:23
GerdL
Ja, die Mathematik. :-)
Sub Unit()


Dim dblZahl As Double
Dim Bereich(1 To 3) As Range
Dim i As Integer

'Objektvariablen Zellen zuweisen
Set Bereich(1) = Sheets("Tabelle1").Range("B4,E4,H4")
Set Bereich(2) = Sheets("Tabelle1").Range("K4,N4,Q4")
Set Bereich(3) = Sheets("Tabelle1").Range("T4,W4,Z4")


'Zahlenformat der Zellen einstellen
Sheets("Tabelle1").Range("B4,E4,H4,K4,N4,Q4,T4,W4,Z4").NumberFormat = "#,##0.00"

If Sheets("Tabelle1").Range("H5") = 1 Then

dblZahl = Application.InputBox("Bitte geben Sie eine Zahl ein.", "Zahl für B4,K4,T4", Type:=1)
If dblZahl > 0 Then Sheets("Tabelle1").Range("B4,K4,T4").Value = CCur(dblZahl)

ElseIf Sheets("Tabelle1").Range("H5") = 2 Then

Do
i = i + 1
dblZahl = Application.InputBox("Bitte geben Sie eine Zahl ein.", "Zahl für " & Bereich(i).Address(0, 0), Type:=1)
If dblZahl > 0 Then Bereich(i).Value = CCur(dblZahl)
Loop Until dblZahl = 0 Or i = 3

End If

'Variablen zurücksetzen
Set Bereich(1) = Nothing
Set Bereich(2) = Nothing
Set Bereich(3) = Nothing
Erase Bereich

End Sub


Gruß Gerd
Anzeige
AW: VBA Zahlen aus Eingabefeld in Zellen übernehmen
11.11.2023 16:37:33
Sachsen-Simon
Hallo Gerd,

danke Dir.

in der Zeile

'Zahlenformat der Zellen einstellen
Sheets("Tabelle1").Range("B4,E4,H4,K4,N4,Q4,T4,W4,Z4").NumberFormat = "#,##0.00"

erscheint als Meldung

"Laufzeitfehler 1004 Die NumberFormat-Eigenschaft des Range-Objekts kann nicht festgelegt werden"

Woran könnte das liegen?
AW: VBA Zahlen aus Eingabefeld in Zellen übernehmen
11.11.2023 20:06:06
GerdL
Hallo Simon,

ohne deine Datei und deine Prozedur kann ich nur vermuten.
Blattschutz?
Verbundene Zellen?

Gruß Gerd
AW: VBA Zahlen aus Eingabefeld in Zellen übernehmen
11.11.2023 21:55:38
Sachsen-Simon
Der Blattschutz war es. Mit Sheets("Tabelle1").Unprotect am Anfang & Sheets("Tabelle1").Protect am Ende funktioniert es tadellos. Ich danke Dir vielmals.

Gibt es eine Möglichkeit, dass die Zellformatierung #.##0,00 "€/AW" übernommen wird?
Anzeige
AW: VBA Zahlen aus Eingabefeld in Zellen übernehmen
11.11.2023 22:28:21
GerdL
Probier mal.
Sheets("Tabelle1").Range("B4,E4,H4,K4,N4,Q4,T4,W4,Z4").NumberFormat = "#,##0.00 ""€/AW"""
AW: VBA Zahlen aus Eingabefeld in Zellen übernehmen
12.11.2023 07:57:49
Sachsen-Simon
Supi, genau so habe ich mir das vorgestellt. Vielen lieben Dank für Deine kompetente Hilfe. Ich war schon am verzweifeln.

Vielleicht noch ein optisches Ding.
Kann man den Bereichen Namen geben, welche oben in der Eingabebox angezeigt werden? Das nicht da steht "Zahl für B4,E4,H4" sondern "Zahl für Text1", anstelle "Zahl für K4,N4,Q4" "Zahl für Text2" und für "Zahl für T4,W4,Z4" "Zahl für Text3"?
AW: VBA Zahlen aus Eingabefeld in Zellen übernehmen
12.11.2023 08:56:27
GerdL
Moin

Sub Unit2()


Dim dblZahl As Double
Dim Bereich(1 To 3) As Range, Txt(1 To 3) As String
Dim i As Integer

'Objektvariablen Zellen zuweisen
Set Bereich(1) = Sheets("Tabelle1").Range("B4,E4,H4")
Set Bereich(2) = Sheets("Tabelle1").Range("K4,N4,Q4")
Set Bereich(3) = Sheets("Tabelle1").Range("T4,W4,Z4")

'Texte für Msgboxtitel
Txt(1) = "Text1"
Txt(2) = "Text2"
Txt(3) = "Text3"


'Zahlenformat der Zellen einstellen
Sheets("Tabelle1").Range("B4,E4,H4,K4,N4,Q4,T4,W4,Z4").NumberFormat = "#,##0.00 ""€/AW"""

If Sheets("Tabelle1").Range("H5") = 1 Then

dblZahl = Application.InputBox("Bitte geben Sie eine Zahl ein.", "Zahl für " & "die drei Ersten", Type:=1)
If dblZahl > 0 Then Sheets("Tabelle1").Range("B4,K4,T4").Value = CCur(dblZahl)

ElseIf Sheets("Tabelle1").Range("H5") = 2 Then

Do
i = i + 1
dblZahl = Application.InputBox("Bitte geben Sie eine Zahl ein.", "Zahl für " & Txt(i), Type:=1)
If dblZahl > 0 Then Bereich(i).Value = CCur(dblZahl)
Loop Until dblZahl = 0 Or i = 3

End If

'Variablen zurücksetzen
Set Bereich(1) = Nothing
Set Bereich(2) = Nothing
Set Bereich(3) = Nothing
Erase Bereich
Erase Txt

End Sub



Frohes Schaffen
Gerd

Anzeige
AW: VBA Zahlen aus Eingabefeld in Zellen übernehmen
12.11.2023 09:55:43
Sachsen-Simon
Guten Morgen Gerd,

Besten Dank :). Genau so soll es laufen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige