Thema Datum  Von Nutzer Rating
Antwort
25.11.2015 23:00:15 Maximilian
Solved
26.11.2015 09:52:52 BigBen
Solved
Rot Makro Kopieren wenn Bedingung
26.11.2015 10:38:45 BigBen
*****
Solved
26.11.2015 18:31:49 Maximilian
Solved
26.11.2015 18:12:04 Maximilian
Solved

Ansicht des Beitrags:
Von:
BigBen
Datum:
26.11.2015 10:38:45
Views:
745
Rating: Antwort:
 Nein
Thema:
Makro Kopieren wenn Bedingung

Hallo,

falls die Zeitwerte bereits als dezimalzahl in Excel gespeichert worden sind, kann folgender Code eingesetzt werden:

Sub CopyData()
    Dim rngDest As Range, rngFound As Range
    Dim rngCopy As Range
    Dim rngSource As Range
    Dim varTime As Variant
    Dim datTime As Date
    Dim iRow As Integer
    Dim bValid As Boolean
    Set rngSource = ActiveWorkbook.Worksheets(1).UsedRange
    With ActiveWorkbook.Worksheets(2)
        ' ggf. Löschen von bereits bestehende Altdaten
        Set rngFound = Intersect(.UsedRange.Offset(0, 1), .UsedRange)
        If Not rngFound Is Nothing Then
            rngFound.Delete (xlShiftToLeft)
        End If
        Set rngFound = Nothing
        ' Kopieren von Daten
        For iRow = 1 To .UsedRange.Rows.Count
            varTime = .Cells(iRow, 1).Value
            bValid = False
            If Not IsNumeric(varTime) Then
                If IsDate(varTime) Then
                    datTime = varTime
                    bValid = True
                End If
            Else
                datTime = varTime
                varTime = Format(datTime, "hh:nn:ss")
                bValid = True
            End If
            If bValid Then
                Set rngFound = rngSource.Columns(1).Find(varTime, LookIn:=xlValues)
                If Not rngFound Is Nothing Then
                    Set rngFound = rngSource.Rows(rngFound.Row)
                    Set rngFound = Intersect(rngFound.Offset(0, 1), rngSource)
                    rngFound.Copy (.Cells(iRow, 2))
                    Set rngCopy = rngFound
                Else
                    If Not rngCopy Is Nothing Then
                        ' Einsetzen von vorherigen Daten
                        rngCopy.Copy (.Cells(iRow, 2))
                    End If
                End If
            End If
            VBA.DoEvents
        Next
    End With
End Sub

Bei Bedarf muss der Find-Befehl angepasst werden.

VG, BigBen


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
25.11.2015 23:00:15 Maximilian
Solved
26.11.2015 09:52:52 BigBen
Solved
Rot Makro Kopieren wenn Bedingung
26.11.2015 10:38:45 BigBen
*****
Solved
26.11.2015 18:31:49 Maximilian
Solved
26.11.2015 18:12:04 Maximilian
Solved