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

Alle Zeiten plus 1 Stunde erhöhen

Alle Zeiten plus 1 Stunde erhöhen
29.05.2021 07:31:04
Albin
Hallo Zusammen
Benötige mal wieder Eure Hilfe, habe leider keine Hilfe im Netz gefunden.
Es geht um die Zeiteinträge in den Spalten E und G, dies ab Zeile 2. TTTT.T.M.JJJJ h:mm
Nun möchte ich via VBA alle Zeiten, um eine Stunde erhöhen. So das auch der Tagesname entsprechen
bei Mitternacht angepasst wird. ich bekomme die Liste täglich neu und die Zeilenanzahl kann mehrere hundert Zeilen
betragen.
Ich danke mich jetzt schon für Euch Hilfe.
Gruss Albin
"https://www.herber.de/bbs/user/146415.xlsx"

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Zeiten plus 1 Stunde erhöhen
29.05.2021 07:34:18
Hajo_Zi
warum VBA
in eine Zelle schreiben 1/24, kopieren, Bereich markieren, rechte Maustaste, Inhalte einfügen, Addition.
GrußformelHomepage
AW: Alle Zeiten plus 1 Stunde erhöhen
29.05.2021 07:51:19
Albin
Hallo, guten Morgen Hajo
Es geht hier um eine Changeliste, die noch viele ander Einträge hat. Dies filtere und passe ich so an, dass zum Beispiel
nur noch die nächsten 3 Tage vorhanden sind. Danach sende ich dies an die Mitarbeiter, automatisch via Mail weiter. Dies
mache ich eben schon via VBA. Nun möchte ich gerne nun auch noch diesen Zusatz mit der Stunden - Erhöhung einbinden.
LG
Albin
Anzeige
AW: Alle Zeiten plus 1 Stunde erhöhen
29.05.2021 07:49:04
RPP63
Moin!
Als kleines Makro mit der von Hajo angesprochenen Methode:
Sub Add_1_Hour()
Dim lZ&
lZ = Cells(Rows.Count, "E").End(xlUp).Row
With Range("M1")
  .Value = TimeSerial(1, 0, 0)
  .Copy
  Range("E2:E" & lZ & ",G2:G" & lZ).PasteSpecial xlPasteValues, xlPasteSpecialOperationAdd
  .Clear
End With
End Sub
Gruß Ralf
Anzeige
AW: Alle Zeiten plus 1 Stunde erhöhen
29.05.2021 13:08:47
Herbert_Grom
Hallo Ralf,
den "xlPasteSpecialOperationAdd" kannte ich auch noch nicht, der ist super! Vielen Dank!
Servus
AW: Alle Zeiten plus 1 Stunde erhöhen
29.05.2021 13:41:52
Herbert_Grom
Hallo Ralf,
ich stehe gerade auf dem Schlauch! Kann man das Ganze auch ohne die Hilfszelle (M1) machen? Ich bringe es einfach nicht hin. Die "For ... Each"-Methode finde ich nicht so gut, wenn es sich um größere Datenmengen handelt.
Servus
AW: Alle Zeiten plus 1 Stunde erhöhen
29.05.2021 16:53:55
RPP63
Moin Herbert!
Zunächst mal:
Eine einzige der 2^34 (2^20*2^14) aka 17.179.869.184 müsste doch eventuell noch frei sein?
(zumal sie ja nur temporär genutzt wird)
Um Deine Frage zu beantworten:
Es gibt ja die Möglichkeit, mittels VBA Text ins Clipboard zu schreiben.
Offensichtlich jedoch bedient sich o.g. Methode NICHT der Zwischenablage, denn folgender Code funktioniert NICHT:
1. Dabei ist es egal, ob ich 1 oder "1" schreibe
2. Denkbar, dass ein Range-Objekt benötigt wird
Modul Modul1
Option Explicit 
Sub ohne_Zelle() 
'Extras, Verweise, Microsoft Forms 2.0 Object Library setzen! 
Dim Clipboard As New DataObject 
Clipboard.SetText 1 
Clipboard.PutInClipboard 
Range("A1:A10").PasteSpecial xlPasteValues, xlPasteSpecialOperationAdd 
End Sub 
 
Gruß Ralf
Anzeige
AW: Alle Zeiten plus 1 Stunde erhöhen
29.05.2021 17:03:03
Herbert_Grom
Hallo Ralf,
vielen Dank für deine Antwort. Da bin ich ja schon beruhigt, dass das bei dir auch nicht geklappt hat, denn ich dachte schon, ich bin bekloppt. Aber die Lösung mit dem Range-Objekt ist ja auch praktikabel, muss man halt an die jeweiligen Gegebenheiten anpassen.
Servus
AW: Alle Zeiten plus 1 Stunde erhöhen
29.05.2021 18:17:48
Daniel
Hi
In Excel gibt es zwei Zwischenablagen:
a) die allgemeine Windows-Zwischenablage
b) die Excel-spezifische Zwischenablage
Das "Inhalte Einfügen" / PasteSpecial bedient sich aus der Excel-Zwischenablage.
Das normale Einfügen / Paste nimmt die Werte aus der Windows-Zwischenablage.
Der .Copy-Befehl befüllt beide Zwischenablage parallel, das PutInClipBoard nur die allgemeine Windows-Zwischenablage.
Da hier das PasteSpecial verwendet wird, braucht man einen Wert in der Excel-Zwischenablage und muss daher eine Zelle mit diesem Wert kopieren.
Eine freie Zelle dafür findet man zuverlässig mit Cells.Specialcells(xlcelltypelastcell).offset(1, 1)
Dass man sein Blatt bis zur letzten Zeile verwendet, dürfte die große Ausnahme sein.
Gruß Daniel
Anzeige
AW: Alle Zeiten plus 1 Stunde erhöhen
29.05.2021 23:35:55
EtoPHG
Hallo Herbert,
Natürlich kann man. Einfach die erste Zelle des Zielbereichs benutzen:

Sub Add_1_Hour()
Dim lZ&, SaveFirst
lZ = Cells(Rows.Count, "E").End(xlUp).Row
With Range("E2")
SaveFirst = .Value
.Value = TimeSerial(1, 0, 0)
.Copy
Range("E3:E" & lZ & ",G2:G" & lZ).PasteSpecial xlPasteValues, xlPasteSpecialOperationAdd
.Value = .Value + SaveFirst
End With
End Sub
Gruess Hansueli
AW: Alle Zeiten plus 1 Stunde erhöhen
30.05.2021 07:58:43
Herbert_Grom
Hi Hansueli,
vielen Dank, das ist spitze! Da kann ich nur sagen: "Wer hat's erfunden? Wer genau? Die Schweizer"! ;o)=)
Servus
Anzeige
AW: Alle Zeiten plus 1 Stunde erhöhen
29.05.2021 08:05:57
Albin
Guten Morgen RPP63
Super, Danke !!! :-)
Die Makro passt 100%. Wie macht Ihr das bloss so schnell?
Ich wünsche Euch allen ein schönes Weekend und vor allem beleibt
in diesen, schei........ Zeiten gesund.
Albin
AW: Alle Zeiten plus 1 Stunde erhöhen
29.05.2021 08:10:43
Luschi
Hallo Albin,
so geht das in Vba:
Code:

[Cc]

Sub plus_1_Stunde() Dim ws As Worksheet, rg1 As Range, rg2 As Range Set ws = ThisWorkbook.Worksheets("Tabelle1") With ws Set rg2 = .Range("E2") Set rg1 = .Range(rg2, .Cells(.Rows.Count, rg2.Column).End(xlUp)) End With For Each rg2 In rg1 rg2.Offset(0, 2).Value = rg2 + 1 / 24 rg2.Offset(0, 2).NumberFormat = "hh:mm .D.M.YYYY.DDDD" Next rg2 Set rg1 = Nothing: Set rg2 = Nothing: Set ws = Nothing End Sub

'  VBA, XML, HTML => Forum-HTML, (c) 2018 by KHV (VBA) und Haklesoft (VB)

Gruß von Luschi
aus klein-Paris

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige