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.

Tabellenblatt auswerten Werte kopieren
#11
OK. :19:


Code:
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.
Antworten Top
#12
@snb und atilla

Danke für Eure Unterstützung.

Das ist ein schöner Code.

Vielleicht fällt Euch auch ein Lösung zu meinem anderen Problemen ein.
Antworten Top
#13
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")

Call Tabelle1.M_snb


wsZ.Select
letztezeile = wsZ.Cells(Rows.Count, 5).End(xlUp).Row
letztespalte = wsZ.Cells(19, Columns.Count).End(xlToLeft).Column
wsZ.Range(Cells(19, 5), Cells(letztezeile, letztespalte)).ClearContents


'______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

                            wsZ.Cells(Zeile.Row, Spalte.Column) = _
                            wsQ.Cells(Zelle.Row, 3)
                            
                            

                            End If
                        Next Zeile
                    End If
                Next Spalte
                
            End If
            
        Next lngZ
        
    Next Zelle

End Sub


Leider funktioniert er nicht. Weiß wer wie ich das Problem lösen kann?


Angehängte Dateien
.xlsm   17-02-10 Analyse.xlsm (Größe: 163,43 KB / Downloads: 2)
Antworten Top
#14
Hallöchen,

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)
Antworten Top
#15
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.

Woran könnte das liegen?
Antworten Top
#16
Hallöchen,

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)
Antworten Top
#17
(16.02.2017, 19:19)schauan schrieb: Hallöchen,

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.
Antworten Top
#18
Hallo,

hab keinen entsprechenden Code gefunden Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#19
(16.02.2017, 22:18)schauan schrieb: Hallo,

hab keinen entsprechenden Code gefunden Sad

Sheets("Rohdaten").Activate

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.
Antworten Top
#20
Hallöchen,

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:
  • tmessers
Antworten Top


Gehe zu:


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