JoachimQ Geschrieben 16. Juni 2008 Teilen Geschrieben 16. Juni 2008 Hi, für eine Excel-Tabelle (Microsoft Excel Version 2003) suche ich die Möglichkeit mit Hilfe eines Makros einen Wert in eine Matrix einzufügen. Im Prinzip soll die Excel-Tabelle folgendermaßen aufgebaut sein. In der ersten Tabelle werden die Werte angezeigt. In der ersten Zeile stehen verschiedene Datumsangaben z. B. von 01.01.2008 bis 31.01.2008. In der ersten Spalte stehen Uhrzeiten von 06:00 Morgen bis 05:00 Uhr morgens früh. Das zweite Tabellenblatt soll ein Formular enthalten wo man Werte eintragen kann und mit einem Klick auf einen Button "Wert einfügen" ein neuer Wert eingefügt werden soll. Ich habe ein wenig Ahnung vom Programmieren, aber leider weiß ich noch nicht wie man dieses in VBA umsetzt. Vorstellen würde ich mir das Script folgendermaßen: Das Script sucht nach der Spalte, die mit der Eingabe (Feld "Datum") übereinstimmt und merkt sich den "Spaltenwert" Anschließend sucht das Script nach der Zeile, die mit der Eingabe (Feld "Zeile") übereinstimmt. Dann kombiniert das Script diese beiden Werte und fügt dann den Wert in der richtigen Zelle ein. Mit freundlichen Gruß JoachimQ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
vba Geschrieben 21. Juni 2008 Teilen Geschrieben 21. Juni 2008 Hallo, dein Problem habe ich nicht so ganz verstanden und meine Antwort bezieht sich jetzt nur auf eine Tabelle: Zelle A1 ist leer. Ab Zelle B1 bis n1 steht immer ein Datum. In Spalte A ab Zelle A2 bis A? steht immer die Uhrzeit. Dann bau dir eine UserForm mit folgenden Steuerelementen: ComboBox cmb_Datum ComboBox cmb_Uhrzeit Textfeld txt_Eingabe CommandButton cmb_OK und hier der Code dazu: Private Sub UserForm_Initialize() 'Datum aus Zeile 1 auslesen bis letzte Spalte mit Inhalt 'und in cmb_Datum eintragen: For Spalte = 2 To Cells(1, Columns.Count).End(xlToLeft).Column UserForm1.cmb_Datum.AddItem (Cells(1, Spalte)) Next Spalte 'Uhrzeit aus Spalte A auslesen bis letzte Zeile mit Inhalt 'und in cmb_Uhrzeit eintragen: For Zeile = 2 To Cells(Rows.Count, 1).End(xlUp).Row UserForm1.cmb_Uhrzeit.AddItem Format((Cells(Zeile, 1)), "hh:mm") Next Zeile UserForm1.cmb_Datum.ListIndex = 0 UserForm1.cmb_Uhrzeit.ListIndex = 0 cmb_OK.Enabled = False End Sub Private Sub cmb_Datum_Change() Spalte = cmb_Datum.ListIndex + 2 Call Zelle_zeigen End Sub Private Sub cmb_Uhrzeit_Change() Zeile = cmb_Uhrzeit.ListIndex + 2 Call Zelle_zeigen End Sub Sub Zelle_zeigen() Cells(Zeile, Spalte).Select End Sub Private Sub cmb_OK_Click() Cells(cmb_Uhrzeit.ListIndex + 2, cmb_Datum.ListIndex + 2) = txt_Eingabe End Sub Hilft dir das? Gruß Alfons ------------------------ meine Excelseiten: Excel-Dateien und VBA für Excel ------------------------- Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
vba Geschrieben 21. Juni 2008 Teilen Geschrieben 21. Juni 2008 da fehlte noch was: Option Explicit Dim Spalte As Long, Zeile As Long Private Sub txt_Eingabe_Change() If txt_Eingabe.Value = "" Then cmb_OK.Enabled = False Else cmb_OK.Enabled = True End If End Sub Alfons ------------------------- meine Excelseiten: Excel-Dateien und VBA für Excel ------------------------- Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.