sub M_snb()
sn=Filter([transpose(if(left(Rohdaten!B1:B200,1)="(",Rohdaten!A1:A200))], "False", 0)
sheets("Ankunft").cells(17,5).resize(,ubound(sn)+1)=sn
End Sub
Mein Excel produziert 'False'; das filltere ich aus mit
Code:
filter(..,"False",0)
Das kannst du anpassen für deutschsprachige Excels.
Ich habe den Code noch angepasst und versucht die Datumskomponente einzubauen.
ub Auswertung_E()
Dim Tag1 As String
Sheets("Rohdaten").Select
For Each Zelle In Range(Cells(3, 9), Cells(Rows.Count, 9).End(xlUp))
If Cells(Zelle.Row, 9) = "" Then
Cells(Zelle.Row, 9) = Cells(Zelle.Row, 7)
End If
Next Zelle
'____Code aus Forum von Uwe aka Kuwer aus diesem Forum________
Dim wsQ As Worksheet, wsZ As Worksheet
Set wsQ = Worksheets("Rohdaten")
Set wsZ = Worksheets("Ankunft")
'______Wochentag suchen__von Uwe aka "Kuwer" aus Forum
' 1= Mo, 2=Di etc.
Dim lngZ As Long
Dim strZelle As String
For Each Zelle In wsQ.Range(wsQ.Cells(1, 2), wsQ.Cells(Rows.Count, 2).End(xlUp))
For lngZ = 1 To 7
If Mid(Zelle, lngZ, 1) = lngZ Then
'____ab hier mein Code__________
Sheets("Ankunft").Select
For Each Spalte In wsZ.Range(wsZ.Cells(17, 5), wsZ.Cells(17, _
Columns.Count).End(xlToLeft))
If wsZ.Cells(17, Spalte.Column) = _
wsQ.Cells(Zelle.Row, 1) Then 'XXXXXX
For Each Zeile In wsZ.Range(wsZ.Cells(19, 3), _
wsZ.Cells(Rows.Count, 3).End(xlUp))
If wsZ.Cells(Zeile.Row, 3) = lngZ Then
'Ab hier soll der Datumsbereich berücksichtigt werden
If wsZ.Cells(Zeile.Row, 2) <= wsQ.Cells(Zelle.Row, 7) Then
If wsZ.Cells(Zeile.Row, 2) >= wsQ.Cells(Zelle.Row, 9) Then
wsZ.Cells(Zeile.Row, Spalte.Column) = wsQ.Cells(Zelle.Row, 3)
End If
End If
was bedeutet denn "leider funktioniert er nicht" ?
Ich würde z.B. mal die Überprüfung nutzen, den Code schrittweise laufen lassen und schauen, was hier steht
If wsZ.Cells(Zeile.Row, 3) = lngZ Then
und hier
Zeile.Row
und hier
If wsZ.Cells(Zeile.Row, 2) <= wsQ.Cells(Zelle.Row, 7) Then
und hier
If wsZ.Cells(Zeile.Row, 2) >= wsQ.Cells(Zelle.Row, 9)
und ggf. auch noch in die betreffenden Zellen schauen...
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Ich glaube ich bin der Lösung auf der Spur.
Dabei ist ein Problem aufgefallen.
Im Tabellenblatt "Rohdaten" habe ich das Datum auf die Schreibweise TT.MM.JJJJ festgelegt.
Im Tabellenblatt "Ankunft" liegt das Datum in der selben Schreibweise vor.
Lasse ich den Code schrittweise durchlaufen, fällt auf, dass bei Zeile.Row das Datum so ausgegeben wird TT.MM.JJJJ. Bei Zelle.Row so "TT.MM.JJJJ". Also ohne und mit "".
Das führt dazu, dass keine Übereinstimmung gefunden wird.
das liegt daran, dass es auf dem einen Blatt kein richtiges Datum ist. Wo kommen denn die Daten her? Ich sehe da auf dem Blatt auch keine Jahreszahl ...
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
das liegt daran, dass es auf dem einen Blatt kein richtiges Datum ist. Wo kommen denn die Daten her? Ich sehe da auf dem Blatt auch keine Jahreszahl ...
Die Zahlen im Sheet "Rohdaten" sind aus einer txt-Datei. Ich habe einen Code geschrieben, der die Jahreszahl hinzufügt. Die Zellen habe ich als Datum formatiert.
For Each Zelle In Range(Cells(1, 9), Cells(Rows.Count, 9).End(xlUp))
If Cells(Zelle.Row, 9) <> "" Then
If Not Cells(Zelle.Row, 9) Like "*2017" Then
Cells(Zelle.Row, 9).Value = Cells(Zelle.Row, 9).Value & "2017" And _
Cells(Zelle.Row, 9).Value = DateValue(Cells(Zelle.Row, 9).Value)
End If
End If
Next Zelle
For Each Zelle1 In Range(Cells(1, 11), Cells(Rows.Count, 11).End(xlUp))
If Cells(Zelle1.Row, 11) <> "" Then
If Not Cells(Zelle1.Row, 11) Like "*2017" Then
Cells(Zelle1.Row, 11).Value = Cells(Zelle1.Row, 11).Value & "2017" And _
Cells(Zelle.Row, 9).Value = DateValue(Cells(Zelle.Row, 9).Value)
End If
End If
Next Zelle1
End Sub
Das ist der Code, der in Rohdaten die Jahreszahl einfügt.
glaube ich nicht ganz. Lasse mal die beiden And _ weg, damit der Code erst mal läuft.
Dann änderst Du die Spalten 9 und 11, aber die 11 nur zur "Hälfte - schaue mal dorthin, in der zweiten Anweisung steht wieder Spalte 9. Die 11 ist übrigens leer, müsste eigentlich 7 sein ...
Bei den Rohdaten beziehst Du Dich im Vergleich auf
wsQ.Cells(Zelle.Row, 7)
und
wsQ.Cells(Zelle.Row, 9)
In der 9 wird mir korrekt ein Datum angezeigt, in der 7 aber ein Text. Die 7 wurde ja auch nicht geändert, sondern nur die 9 und der Versuch mit der 11 ...
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • tmessers