UserForm in VBA erstellen

Dojomaster

Cadet 4th Year
Registriert
Aug. 2010
Beiträge
127
Hallo zusammen,

ich habe in Excel eine Tabelle mit unterschiedlichsten Werten:

KalenderwochenVerkäufe
Kalenderwoche 1720
Kalenderwoche 2323
Kalenderwoche 3711
Kalenderwoche 4501

Nun habe ich mir eine UserForm erstellt in welchen es folgende Eingabemöglichkeiten geben soll:

1. Eine Textbox, in welcher ich eine beliebige Anzahl an Verkäufen eingeben kann
2. Eine ComboBox wo ich die Kalenderwoche auswählen kann

Wie bekomme ich es also hin, dass diejenige Anzahl der Verkäufe, die ich in der Textbox einfüge, dann je nach ausgewählter Kalenderwoche aus der ComboBox zu der passenden Zahl in Excel addiert wird.

Bspw: Ich tippe eine Verkaufszahl von 100 ein und wähle die Kalenderwoche 1 aus. Dann sollte bestenfalls automatisch in der Zelle B2 die Zahl 820 auftauchen.

Vielen Dank schonmal
 
Sind die Kalenderwochen immer in der gleichen Zelle (Z.B KW 1 = B2 etc.)?
 
Ja, die Kalenderwochen sind immer in der selben Zelle. Da verändert sich nichts.
 
Wer soll das\es bedienen?

52 (53…) Kalenderwochen in einem DropDown sind ein ziemliches Gefrickel (Browser packen es ja nicht mal 31 Plätze für einen Tag im Monat ohne Scrollen darzustellen…) Gebe ich selbst ein reichte mir eine Input-Box und die Regel 2-stellige KW und unmittelbar dann der Wert (01100), 1x Enter und die Sache ist durch.
Ist zumindest meine Methode maximaler Faulheit :D

CN8
 
Mit manueller Eingabe der Kalenderwoche wäre natürlich noch feiner. Die Auswahl per Dropdown war nur eine fixe Idee von mir. Mit der Eingabe selbst wäre es natürlich schöner.
 
Dann ist es ja nicht weiter kompliziert.
Da die Zellen fest sind, und due KW als Zahl vorliegt, kannst du dir ja ausrechnen in welche Zelle geschrieben werden soll.
Dann musst du nur noch aus der Zelle lesen, die Zahl addieren und wieder schreiben.
Fünf Zeilen code.
 
So jetzt bin ich mit meinen extrem beschränkten VBA Kenntnissen schonmal so weit gekommen, dass er nach manueller Eingabe die Kalenderwoche in der Tabelle findet und falls nicht hierzu einen Fehler auswirft.

Private Sub OKButton_Click()
Dim rng As Range
Set rng = Sheets("2016").Range("A1:O60").Find(Kalenderwochenbox)
If rng Is Nothing Then
MsgBox "Kalenderwoche nicht gefunden"
Exit Sub
End If
End Sub


Jetzt benötige ich nur noch eine Anweisung, dass er dann drei Spalten nebenan den bereits bestehenden Wert in dieser Zelle zu dem eingegebenen Wert in der ersten Textbox addiert.

Argh jetzt hab ich grad gemerkt, dass er mir aber die Zelle nicht markiert, in welcher er den gesuchten Kalenderwochenwert gefunden hat. Bin einfach zu doof.
 
Zuletzt bearbeitet:
So, jetzt bin ich schonmal einen Schritt weiter. Jetzt wählt er mir die passende Zelle aus, wo das Ergebnis hin soll.

Private Sub OKButton_Click()
Dim rng As Range
Set rng = Sheets("2016").Range("A1:O60").Find(Kalenderwochenbox)
If rng.Text = (Kalenderwochenbox) Then
rng.Activate
Sheets("2016").Cells(rng.Row, rng.Column + 3).Select
'ElseIf rng Is Nothing Then
'MsgBox "Kalenderwoche nicht gefunden"
Exit Sub
End If
End Sub


Jetzt hab ich nur das Problem, dass er mir keine Fehlermeldung in der MEssagebox anzeigt, falls er die kalenderwoche nicht findet (deswegen hab ich das erstmal auskommentiert). Wie Addiere ich denn jetzt den Wert aus der ersten Textbox zu der aktiven Zelle?
Ergänzung ()

So, habs geschafft:

Private Sub OKButton_Click()
Dim rng As Range
Set rng = Sheets("2016").Range("A1:O60").Find(Kalenderwochenbox)
If rng.Text = (Kalenderwochenbox) Then
rng.Activate
Sheets("2016").Cells(rng.Row, rng.Column + 3).Select
'ElseIf rng Is Nothing Then
'MsgBox "Kalenderwoche nicht gefunden"
ActiveCell.Value = Me.AnzahlVerk + ActiveCell.Value
Unload Me
Exit Sub
End If
End Sub


Lediglich nach wie vor das Problem mit der fehlenden Fehlermeldung. Schön wäre es auch wenn man die zwei Textboxen per Tabtaste durchschalten könnte und mit der Eingabe per Enter der "OK" Button aktiviert wird.

OK hab jetzt ie Option der Aktivierungsreihenfolge gefunden und beim Commandobutton Default auf True gesetzt :-). Jetzt fehlt wirklich nur noch das Problem der Fehlermeldung "Kalenderwochen nicht gefunden"
 
Zuletzt bearbeitet:
Seh ich das richtig das Dein Elseif "ausgecommented" ist. So wird es einfach ignoriert. Wofür ist das Exit Sub in deiner Funktion? Ich denke das kann raus.

Außerdem gehört das elseif unter den ActiveCell teil würde ich sagen. Dann end if und dann end sub.
 
Zurück
Oben