2017-01-24 3 views
0

Kontext: Mein Excel-Arbeitsblatt besteht aus einem Benutzerformular, das auf mehrere Blätter ausgibt. Eine Funktion dieses Benutzerformulars ist ein Datumsselektor, der in eine einzelne Zelle ausgegeben werden soll. Aufgrund der Art seines Designs (erhalten von einem Gentleman von dieser besonderen Seite, Doug Glancy), besteht es aus drei Comboboxen.Excel: Ist es möglich, mehrere ComboBox-Ausgaben in eine einzelne Zelle zu konvergieren?

Es wird als angezeigt:

[ComboBox1: Tag] [ComboBox2: Monat] [ComboBox3: Jahr]

Here is an image for visual reference

Gibt es eine bestimmte Methode eine Verwachsung von mehreren zwingen Ausgänge in eine einzelne Zelle? Und wenn nicht, was wäre eine alternative Methode, um ein ähnliches Ergebnis zu erzielen?

Edit: Hier ist mein aktueller Code für Daten aus dem Userform zu übertragen:

Sub Transfer() 

Dim emptyRow As Long 

'Make Sheet2 active 
Sheet2.Activate 

'Determine emptyRow 
emptyRow = WorksheetFunction.CountA(Range("B:B")) + 1 

'Transfer information 
Cells(emptyRow, 2).Value = TextBoxSON.Value 
Cells(emptyRow, 3).Value = TextBoxJobDescription.Value 
Cells(emptyRow, 4).Value = TextBoxCustomer.Value 
Cells(emptyRow, 5).Value = TextBoxQuantity.Value 
Cells(emptyRow, 6).Value = TextBoxDateRequired.Value 

Dim LR As Integer 
LR = Range("B" & Rows.Count).End(xlUp).Row 
Application.EnableEvents = False 
Range("A4:BB" & LR).Sort Key1:=Range("A4"), Order1:=xlAscending, _ 
    Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom 
Application.EnableEvents = True 

End Sub 

Edit: Vielen Dank an CLR für die Antwort ein:

mydate = DateSerial(cboYear.Value, cboMonth.Value, cboDay.Value) 
Cells(emptyRow, 6).Value = mydate 

Dieser Code ermöglicht es, die Daten ausgegeben werden genau wie gewünscht. Hoffe das hilft jedem in der Zukunft.

() irrelevante (aber scheinbar notwendige) Information: Hey, ich bin ein neuer SO-Benutzer.Nach Stunden (und Stunden) des Versuchens, dieses Problem zu finden und zu verstehen, bin ich zu keinem möglichen Ergebnis gekommen und, Mit den wütenden Händen der Uhr, die wütend auf mich zeigen, bin ich gezwungen, diese Frage (schändlich) zu stellen:

Ich bin weder Excel-fähig noch VBA-fähig, aber ich habe die Sprache langsam durch Sites wie HomeandLearn gelernt .org, um meine Schwierigkeiten zu überwinden, aber scheinbar ohne Erfolg bei diesem speziellen Problem Ich muss mich im Voraus für irgendeinen unangemessenen Gebrauch oder Missbrauch der Terminologie oder irgendein anderes uninformiertes Missverständnis, das in meiner obigen Frage gemacht wurde, entschuldigen d, um mich mit der Community und den Regeln dieser Seite vertraut zu machen, bevor ich diese Frage gestellt habe und ausführlich nach einer Antwort gesucht habe.

Jede Hilfe wäre willkommen. Danke.)

Antwort

0

Wenn Sie die Zelle einfach nur den Text in den drei Boxen enthalten, verwenden:

mydate = ComboBoxDay.Value & ComboBoxMonth.Value & ComboBoxYear.Value 
Cells(2, 7).Value = mydate 

jedoch ein nützlicher Ansatz könnte die Zelle mit einem aktuellen Datum zu füllen sein:

mydate = DateSerial(ComboBoxYear.Value, ComboBoxMonth.Value, ComboBoxDay.Value) 
Cells(2, 7).Value = mydate 
+0

Seltsamerweise unterscheidet sich die Datumsausgabe tatsächlich von der Datumseingabe, zum Beispiel: 06 // 03/2017 Ergebnisse in 07/09/2011 wird auf dem Blatt ausgegeben. Irgendwelche Ideen, warum dies geschieht?Hier ist der für das Benutzerformular angepasste Code: 'mydate = DateSerial (cboDay.Value, cboMonth.Value, cboYear.Value) Zellen (emptyRow, 6) .Value = mydate' – Zemwot

+0

Angenommen, Sie verwenden die zweite Option, überprüfen Sie, ob Sie ' Stellen Sie die Parameter von 'DateSerial' in der richtigen Reihenfolge bereit. dh ** Jahr **, ** Monat ** dann ** Tag **? – CLR

+0

Ah, mir war einfach nicht bewusst, dass die DateSerial-Funktion (Thing) ein erforderliches Format hatte und nur angenommen, dass sie die Reihenfolge darstellten, in der sie an das Blatt übertragen wurden. Es funktioniert jetzt ganz wie gewünscht. Ich werde den Hauptbeitrag aktualisieren, um Ihre funktionierende Antwort zu reflektieren. (PS: Vielen Dank!) – Zemwot

0

Das?

MyDate = ComboBox1.Value & ComboBox2.Value & ComboBox2.Value 
Cells(emptyRow, 7).Value = MyDate 
+0

Scheinbar scheinen Sie richtig zu sein. Vielen Dank! Ein einziges Problem bleibt jedoch bestehen: Das Datum wird als ganze, ganze Zahl ausgegeben. Beispiel: 31012017, erscheint daher im Datumsformat als #######. Gibt es eine Methode, diese Informationen mit "/" als Trennzeichen auszugeben? (Ich habe auch Ihren Kommentar hochgestuft, aber aufgrund meines neuen Kontos wird das nicht angezeigt.) Nochmals vielen Dank für Ihre Unterstützung. – Zemwot

Verwandte Themen