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

Kreuztabelle

Kreuztabelle
06.11.2013 22:07:11
Albert
Hallo zusammen,
ich versuche mit nachfolgendem Code eine Kreuztabelle auszulesen. Aber...
Zu den Suchbegriffen ist zu sagen... Aus Textbox1, Textbox2 und Textbox3 kommen Tag, Monat und Jahr. Das Datum ist in der Kreuztabelle in der Zeile 3 angesiedelt.
Aus Combobox2 kommt entweder F, S oder N. Und diese stehen eben unregelmäßig in der Kreuztabelle verteilt.
Das Ergebnis aus der Suche steht in Spalte A und gibt dann A, B, C, D oder E wieder.
Mein Gedankengang ist folgendermaßen... Ich suche ein Datum in Zeile 3 => Gefunden
Dann gehe ich die Spalte nach unten, bis ich F, S oder N (je nach Auswahl in Combobox2) finde. Anschließend gehe ich nach links in die Spalte A und erfahre mein Ergebnis.
Das Ergebnis wird in die Textbox5 der Userform1 geschrieben.
Sub test()
Dim datDatum As Date: datDatum = CDate(Schichtwunscheingabe.TextBox1.Text & "." &  _
Schichtwunscheingabe.TextBox2.Text & "." & Schichtwunscheingabe.TextBox3.Text)
Schichtwunscheingabe.TextBox5.Value = Application.VLookup(datDatum & Left(Schichtwunscheingabe. _
ComboBox2.Value, 1), Sheets("Hilfe").Range("A3:GNT8"), 5115, False)
End Sub

Ich hoff, ich habs einigermaßen verständlich beschrieben. Leider klappt mein Code nicht. Globaler Fehler wird angezeigt... :(
Wär euch um Hilfe echt dankbar.
Gruß
A.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kreuztabelle
07.11.2013 07:54:51
fcs
Hallo Albert,
führe die Berechnungen in den Einzelschritten aus wie du sie beschrieben hast.
Man könnte es auch in einem Formelausdruck mit INDEX, BEREICH.VERSCHIEBEN und 2 mal VERGLEICH ermitteln. Aber mit den Einzelschritten bleit es übersichtlicher.
Außerdem ist hier unbedingt eine Prüfung der Eingabewerte erforderlich.
mfg
Franz
Sub test()
Dim datDatum As Date
Dim Spalte As Variant
Dim Zeile As Long
Dim wks As Worksheet, strDatum As String
strDatum = Schichtwunscheingabe.TextBox1.Text & "." & _
Schichtwunscheingabe.TextBox2.Text & "." & Schichtwunscheingabe.TextBox3.Text
If Not IsDate(strDatum) Then
MsgBox "Eingabe in den Textboxen für Tag-Monat-Jahr ergibt kein gültiges Datum"
Exit Sub
End If
datDatum = CDate(strDatum)
If Me.ComboBox2.ListIndex = -1 Then
MsgBox "Bitte eine Schicht in Combobox wählen"
Exit Sub
End If
With Worksheets("Hilfe")
'    .Activate                                                              'Testzeile
'Spalte mit Datum suchen
Spalte = Application.Match(CLng(datDatum), .Rows(3), 0)
If IsError(Spalte) Then
MsgBox "Datum nicht gefunden"
Else
'Zeile mit der Schicht ermitteln in gefundener Spalte
Zeile = Application.Match(ComboBox2.Value, .Range(.Cells(4, Spalte), _
.Cells(.Rows.Count, Spalte).End(xlUp)), 0)
If IsError(Zeile) Then
MsgBox "Datum in Zeile 3 nicht gefunden"
Else
Schichtwunscheingabe.TextBox5.Value = .Range("A3").Offset(Zeile, 0)
'        .Range("A3").Offset(Zeile, Spalte - 1).Select                       'Testzeile
End If
End If
End With
End Sub

Anzeige
@ Franz, vielen Dank! Funktioniert klasse owT
07.11.2013 09:23:03
Albert
s

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige