Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
25.11.2015 23:00:15 |
Maximilian |
|
|
|
26.11.2015 09:52:52 |
BigBen |
|
|
Makro Kopieren wenn Bedingung |
26.11.2015 10:38:45 |
BigBen |
|
|
|
26.11.2015 18:31:49 |
Maximilian |
|
|
|
26.11.2015 18:12:04 |
Maximilian |
|
|
Von:
BigBen |
Datum:
26.11.2015 10:38:45 |
Views:
745 |
Rating:
|
Antwort:
|
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
|
- 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
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- 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 |
|
|
|
26.11.2015 09:52:52 |
BigBen |
|
|
Makro Kopieren wenn Bedingung |
26.11.2015 10:38:45 |
BigBen |
|
|
|
26.11.2015 18:31:49 |
Maximilian |
|
|
|
26.11.2015 18:12:04 |
Maximilian |
|
|