Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Wert finden und TextBox Text darunter einfügen
#1
Hallo Zusammen,

ich habe ein Arbeitsblatt mit folgernder Tabelle:

|1| |                                                 2018                                                  |                                                2019                                                   |
|2| | JAN | FEB | MAR | APR | MAI | JUN | JUL | AUG | SEP | OKT | NOV | DEZ | JAN | FEB | MAR | APR | MAI | JUN | JUL | AUG | SEP | OKT | NOV | DEZ |
|3| |        
Durch einen Button öffnet sich eine UserForm. In der gebe ich in TextBox5 ein Datum ein. Dieses Datum wird in die Jahreszahl sowie in den Monat umgewandelt.
(z.B. 25.08.2018 wird einmal zu "2018" und "AUG")
Nun möchte ich, dass in Zeile 1 nach dem Jahr, in  Zeile 2 nach dem Monat gesucht und dann in Zeile 3 einen bestimmten Wert in der Spalte einfügt wird, in der das passende Jahr und der passende Monat ist.

Folgenden Code habe ich bereits:
Code:
Private Sub CommandButton1_Click()
   Unload Me
   Dim rng As Range
   Dim rng2 As Range
   Dim lastrow As Long
       
   TextBox5.Text = Format(CDate(TextBox5.Value), "yyyy")
   Set rng = ActiveSheet.Range("A1:X1").Find(What:=TextBox5.Value, LookAt:=xlWhole, LookIn:=xlValues)
   
   TextBox5.Text = Format(CDate(TextBox5.Value), "mmm")
   Set rng2 = ActiveSheet.Range("A2:X2").Find(What:=TextBox5.Value, LookAt:=xlWhole, LookIn:=xlValues)
   
   ActiveSheet.Cells(lastrow).Value = "DEL"
   
   [UserForm1].Hide
End Sub

Leider passiert nichts. Ich hoffe ihr könnt mir helfen und mir sagen was ich am Code ändern muss, dass er so funktioniert wie ich es mir vorstelle.

Danke im Voraus.
Antworten Top
#2
Hallo, :19:

das würde so der Spur nach gehen: :21:

.xlsb   UF_UserForm_TextBox_Datum_finden_Eintrag.xlsb (Größe: 18,74 KB / Downloads: 7)
________
Servus
Case
Antworten Top
#3
VIELEN VIELEN DANK  Blush
Antworten Top
#4
Moin!
Ein typisches Problem, welches erst dadurch entsteht, dass die Datenlage schlecht ist.
Wenn Du in Zeile 2 echte Daten (Plural von Datum) der jeweiligen Monatsersten im Zahlenformat "MMM" hast, dann reicht ein simpler Vergleich()
Natürlich kann man dies auch mittels VBA nachstellen (WorksheetFunction.Match())

ABCDE
2JanFebMrzAprMai
3
4DatumSpalte
528.03.20183

ZelleFormatWert
A2MMM01.01.2018

ZelleFormel
B2=EDATUM(A2;1)
B5=VERGLEICH(A5;2:2;1)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
Und noch etwas:
Da die Monate ja fortlaufend sind, kann man die Spalte auch gleich direkt errechnen!
Direktfenster:
Code:
?DateDiff("m",#1/1/18#, CDate("27.3.2019")) + 1
15

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
So ganz richtig funktioniert der Code von Case dann leider doch nicht.

Gebe ich in der UserForm das Datum 01.01.2018 ein, fügt er DEL in die Spalte vom JAN 2019 ein.

Woran liegt das? Komm einfach nicht drauf.
Antworten Top
#7
Hast Du meine beiden unterschiedlichen Tipps beachtet?
Dann ist es jeweils nur eine Codezeile.
Die Range.Find-Methode habe ich nicht überprüft, denn sie ist hier überflüssig.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#8
Hallo, :19:

hier mal korrigiert (inklusive der Variante von Ralf). :21:

.xlsb   UF_UserForm_TextBox_Datum_finden_Eintrag_Last.xlsb (Größe: 19,06 KB / Downloads: 4)
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • Mr.Invisible
Antworten Top
#9
Jetzt funktioniert es. Vielen Dank.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste