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

Werte (Uhrzeiten) kopieren/übertragen

Werte (Uhrzeiten) kopieren/übertragen
09.08.2014 19:56:05
urmila
Hallo zusammen,
ich brauche wieder Eure Hilfe.
In Tabelle1 aktualisiere ich Daten aus einer anderen Datei.
Diese sind wie folgt aufgebaut: SpalteA=Uhrzeit, SpalteB=Bemerkung
Die Uhrzeiten sind immer stundenweise, also 7:00 - 8:00 - 9:00 - 10:00 etc.
Mit VBA lege ich ein neues Tabellenblatt mit aktuellem Datum und mit vordefinierten Uhreziten von 0:00 bis 23:00 - bis hier ist alles noch in Ordnung.
Nun würde ich gerne mit VBA die Werte in der neu angelegten Tabellenblatt kopieren, zugeordnet zu jeder Uhrzeit.
Ich habe eine Beispieldatei (ohne Makros wie oben beschrieben)
Ich hoffe ihr könnt mir weiterhelfen...
Vielen Dank und LG
Urmila

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Beispieldatei vergessen hochzuladen OWT
09.08.2014 19:58:49
Spenski

AW: Beispieldatei ist hochgeladen...
09.08.2014 20:01:45
urmila
LG
Urmila

AW: Beispieldatei ist hochgeladen...
09.08.2014 20:45:13
urmila
LG
Urmila

AW: Werte (Uhrzeiten) kopieren/übertragen
09.08.2014 21:41:20
Dieter
Hallo Urmila,
du kannst das mit dem folgenden Programm machen:
Sub Übertragen()
Dim letzteZeileQ As Long
Dim wsQ As Worksheet ' Quelle
Dim wsZ As Worksheet ' Ziel
Dim zeileQ As Long
Dim zeileZ As Long
Set wsQ = ThisWorkbook.Worksheets("Tabelle1")
Set wsZ = ThisWorkbook.Worksheets("09.08.2014")
letzteZeileQ = wsQ.Cells(wsQ.Rows.Count, "A").End(xlUp).Row
For zeileQ = 2 To letzteZeileQ
zeileZ = 2 + wsQ.Cells(zeileQ, "A") * 24
wsZ.Cells(zeileZ, "B") = wsQ.Cells(zeileQ, "B")
Next zeileQ
End Sub
Viele Grüße
Dieter

Anzeige
AW: Werte (Uhrzeiten) kopieren/übertragen
09.08.2014 23:04:37
urmila
Hallo Dieter,
vielen Dank für den Code, funktioniert einwandfrei.
Doch eine Frage (bevor ich diese irgendwann stellen sollte): Was wenn sich die Uhrzeiten sich ändern,
also halbstündlich oder andere Routine, statt volle Stunden immer z.B. 12:15 - 13:25 - 14:35?
Da verschieben sich die Zellen. WIe kann ich das verallgemeinern oder was muss ich dann einstellen?
Gute Nacht und LG
Urmila

Rückfragen
10.08.2014 00:53:30
cross
Hi,
vor einer Antwort stellen sich erst mal weitere Fragen.
a) Können die Stundenfolgen von (Tages-)Blatt zu (Tages-)Blatt variieren?
(Dann müsste VBA bei jedem Tag erst mal feststellen, wie der Tag in Zeiten aufgeteilt ist.)
b) Im ersten Beispiel ging es um vollen Stunde, in deinem neuen Beispiel (12:15 - 13:25 - 14:35) beträgt der Abstand
jeweils 70 Minuten. Ist dann das Intervall an diesem Tag immer 70 Minuten oder kann auch das sich ändern?
Was stünde übrigens beim Beispiel (12:15 - 13:25 - 14:35) in A2:A3, was in A24?
c) Oder ist fast gar nichts mehr gleichmäßig? In jedem (Tages-)Blatt könnten auch beliebige Zeiten stehen,
nur nach Größe sortiert sollten sie schon sein.
d) Wie auch immer: Wäre zu prüfen, ob jede der Zeiten in Tabelle1 im (Tages-)Blatt gefunden wird?
Was, wenn sie nicht gefunden wird?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Rückfragen
10.08.2014 13:12:22
urmila
HAllo cross,
also Tabellenblatt ist immer das selbe (Datum) und die Uhrzeiten sind auch immer die selben. Nur war die Frage was wenn sich die Uhrzeiten ändern sollten, also statt volle Stunden unterschiedliche Abstände.
Der zweite Code vomn Dieter ist genau das richtige.
Dir aber auch lieben Dank für Deine Hilfe und schönen Sonntag.
LG
Urmila

AW: Werte (Uhrzeiten) kopieren/übertragen
10.08.2014 10:54:46
Dieter
Hallo Urmila,
wenn sich die Zeilennummer nicht mehr aus der Uhrzeit direkt berechnen lässt, dann muss nach ihr gesucht werden. Das könnte z.B. so aussehen:
Sub Übertragen_2()
Dim letzteZeileQ As Long
Dim nichtVorhanden As Boolean
Dim wsQ As Worksheet ' Quelle
Dim wsZ As Worksheet ' Ziel
Dim zeileQ As Long
Dim zeileZ As Long
Set wsQ = ThisWorkbook.Worksheets("Tabelle1")
Set wsZ = ThisWorkbook.Worksheets("09.08.2014")
letzteZeileQ = wsQ.Cells(wsQ.Rows.Count, "A").End(xlUp).Row
For zeileQ = 2 To letzteZeileQ
zeileZ = ZielZeile(wsQ.Cells(zeileQ, "A"), wsZ.Columns("A"), nichtVorhanden)
If nichtVorhanden Then
MsgBox Format$(wsQ.Cells(zeileQ, "A"), "hh:mm") & _
" in Blatt " & wsZ.Name & " nicht vorhanden"
Else
wsZ.Cells(zeileZ, "B") = wsQ.Cells(zeileQ, "B")
End If
Next zeileQ
End Sub
Function ZielZeile(Gesucht As Double, _
Suchbereich As Range, _
NichtGefunden As Boolean) As Long
On Error GoTo Fehler
ZielZeile = Application.WorksheetFunction.Match(Gesucht, Suchbereich, False)
Exit Function
Fehler:
NichtGefunden = True
End Function
Viele Grüße
Dieter

Anzeige
AW: Werte (Uhrzeiten) kopieren/übertragen
10.08.2014 13:14:41
urmila
Hallo Dieter,
ich habe den Code kurz getest und es scheint genau das zu sein wonach ich im Anschluss gefragt hatte.
Vielen Dank für deine Hilfe und vorallem für die Fehlermeldung, falls Uhrzeit nicht gefunden.
LG
Urmila

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige