Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Friedrichroda /
Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.

Uhrzeit kopieren und einfügen
#1
Hallo liebes Forum !

Kann mir bitte jemand helfen?
Ist es möglich, dass ein Zellenbereich mit lauter Uhrzeiten (z.B. 8:00 etc.) der per VBA kopiert wird bei diesem Einfüge-Befehl:
Selection.PasteSpecial Paste:=xlPasteValues
die einzufügenden Werte manchmal einfügt und manchmal nicht ?
Ich verwende anstelle dieses Befehls nun den:
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats

Ich kann leider trotz Einzelschritt-Ablauf des Makros nicht sagen, ob es nun passt, da es vorher auch meistens gepasst hat.
Darum meine Frage: Kann es sein, dass das die Ursache des Fehlers ist ?
Ich verwende WINDOWS 7 und EXCEL 2013.
Vielen Dank für Eure Hilfe.

Liebe Grüße aus Innsbruck
Helmut
to top
#2
Hallo Helmut,

aus dieser einen Codezeile kann man nicht herausfinden, warum es manchmal einfügt und manchmal nicht. Was man aber sagen kann, das das Selektieren meistens überflüssig ist. Warum kannst Du im Einzelschrittmodus nicht sagen ob es funktioniert?
Gruß Stefan
Win 7 / Office 2007
[-] Folgende(r) 1 Benutzer sagt Danke an Steffl für diesen Beitrag:
heli
to top
#3
Hallo Helmut,

wenn Du nur die Werte einfügst, spielen eventuell vorhandenen Formatierungen der Zelle und Optionen z.B zum Ausblenden von Nullwerten eine Rolle. Ich hab hier mal 8:00 Uhr kopiert und die Werte in unterschiedlich foratierte Zellen eingefügt.

Arbeitsblatt mit dem Namen 'Tabelle1'
 AB
108:000
208:000,333333333
308:0000.01.1900
408:000

ZelleFormatWert
B1#.##00,333333333333333
B2@0,333333333333333
B3TT.MM.JJJJ08:00:00
B400,333333333333333
Diese Tabelle wurde mit Tab2Html (v2.5.0) erstellt. ©Gerd alias Bamberg
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
heli
to top
#4
Hallo Stephan, hallo André !

Vielen Dank für Eure Antwort.
Zur ersten Frage betreffend Einzelschrittmodus: In diesem Modus funktionierte es eigentlich immer.
Aber mit dem dafür vorgesehenen Command Button mal ja, mal nein, macht aber bis auf die Geschwindigkeit keinen Unterschied.

Zu André:
Der Zellenblock sieht z.B. so aus:

MO 8:00 12:00 13:00 17:00
DI 9:30 12:30 13:00 17:00
MI 9:00 13:00 13:30 17:00
DO 8:30 13:00 13:00 17:00
FR 8:30 12:30 13:00 16:00

Das Format ist Uhrzeit 13:30

und dieser Zellenblock wird mittels Selection.Copy kopiert und auf die folgenden Tabellenblätter bis Dezember eingefügt.
Ich hoffe, dass Ihr damit etwas anfangen könnt.

Liebe Grüße
Helmut
to top
#5
Hallo Helmut,

die VBA-ler können dir sicherlich schnell helfen. Du solltest aber dein Makro hier vorstellen. Das wollte dir Stefan mit diesem Satz

Zitat:aus dieser einen Codezeile kann man nicht herausfinden, warum es manchmal einfügt und manchmal nicht.

auch schon sagen.
?mage

Misserfolg ist eine Chance, es beim
nächsten Mal besser zu machen.

(Henry Ford)
http://www.sprueche-zum-nachdenken.eu
[-] Folgende(r) 1 Benutzer sagt Danke an WillWissen für diesen Beitrag:
heli
to top
#6
Hallo liebe Freunde !

Ich bin nicht sicher, ob ich den Code in der gewünschten Form eingegeben habe, aber so sieht er aus.

Liebe Grüße
Helmut


Code:
Sub WoStu_NextMon_Übertr()          

Dim n, tb, loErste, LfdMonat, loLetzte
    
    Application.ScreenUpdating = False
    
    LfdMonat = Month(Date)
    
    ActiveSheet.Select
    loLetzte = Range("A60").End(xlUp).Offset(-2, 0).Row
    loErste = Range("B" & loLetzte).End(xlDown).Offset(0, 0).Row
    
    If ActiveSheet.Cells(loErste + 6, 7).Value = 0 Then
    MsgBox "Noch keine Einträge in 'Wochenstunden-Tabelle ' " & tb & " '" & vbLf & _
    "Bitte jetzt eintragen!", vbExclamation, "Hinweis"
Exit Sub
    End If
    
    
    tb = ActiveSheet.Name
    
    If tb = "Jänner" Then
    n = 0
    ElseIf tb = "Feber" Then
    n = 1
    ElseIf tb = "März" Then
    n = 2
    ElseIf tb = "April" Then
    n = 3
    ElseIf tb = "Mai" Then
    n = 4
    ElseIf tb = "Juni" Then
    n = 5
    ElseIf tb = "Juli" Then
    n = 6
    ElseIf tb = "August" Then
    n = 7
    ElseIf tb = "September" Then
    n = 8
    ElseIf tb = "Oktober" Then
    n = 9
    ElseIf tb = "November" Then
    n = 10
    ElseIf tb = "Dezember" Then
    n = 11
    End If
        
    Dim arrMon, i, Übertrag

    arrMon = Array("Jänner", "Feber", "März", "April", "Mai", "Juni", "Juli", "August", "September", _
    "Oktober", "November", "Dezember")

For i = n To 11

Sheets(arrMon(i)).Activate

    If (i) = n Then GoTo weiter
    
    loLetzte = Range("A60").End(xlUp).Offset(-2, 0).Row
    loErste = Range("B" & loLetzte).End(xlDown).Offset(0, 0).Row
    Cells(loErste, 3).Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats     'Einfügen von Zahlen und Zahlenformat
GoTo nextMon

weiter:
    
    loLetzte = Range("A60").End(xlUp).Offset(-2, 0).Row
    loErste = Range("B" & loLetzte).End(xlDown).Offset(0, 0).Row
    ActiveSheet.Range(Cells(loErste, 3), Cells(loErste + 5, 6)).Select     'WochStu-Tab kopieren
    Selection.Copy

nextMon:
Next i

End Sub
to top
#7
Hallöchen,
Wie ich schon schrieb, das Problem wird mit der Formatierung zu tun haben. (und nicht mit dem VBA-Code). Man kann nach dem Einfügen in die Zelle gehen, wo anscheinend nix steht und in der Eingabezeile nachschauen, ob das wirklich so ist. Oder man ändert nach dem Kopieren mit Formaten die Ausgangsdaten und kopiert noch mal ohne Formate...
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
heli
to top
#8
Hallo Helmut,

teste mal so:

Code:
Sub WoStu_NextMon_Übertr()
  Dim arrMon As Variant, i As Long
  Dim loErste As Long, loLetzte As Long
  Dim rngQ As Range
  
  arrMon = Array("Jänner", "Feber", "März", "April", "Mai", "Juni", "Juli", _
                 "August", "September", "Oktober", "November", "Dezember")
    
  With Sheets(arrMon(Month(Date) - 1))
    loLetzte = .Range("A60").End(xlUp).Offset(-2, 0).Row
    loErste = .Range("B" & loLetzte).End(xlDown).Offset(0, 0).Row
    
    If .Cells(loErste + 6, 7).Value = 0 Then
      MsgBox "Noch keine Einträge in 'Wochenstunden-Tabelle ' " & .Name & " '" & vbLf & _
              "Bitte jetzt eintragen!", vbExclamation, "Hinweis"
      Exit Sub
    Else
      Set rngQ = .Range(.Cells(loErste, 3), .Cells(loErste + 5, 6))
    End If
  End With
  
  For i = Month(Date) + 1 To 12
    With Sheets(arrMon(i - 1))
      loLetzte = .Range("A60").End(xlUp).Offset(-2, 0).Row
      loErste = .Range("B" & loLetzte).End(xlDown).Offset(0, 0).Row
      rngQ.Copy .Cells(loErste, 3)
    End With
  Next i
End Sub

Gruß Uwe
[-] Folgende(r) 1 Benutzer sagt Danke an Kuwer für diesen Beitrag:
heli
to top
#9
Vielen Dank für die Hilfe.

Ich werde Uwes Code bei mir testen und darf mich dann wieder melden.

Liebe Grüße
helmut
to top
#10
Hallo Uwe !

Dein Code funktioniert einwandfrei, er hat für meinen Bedarf nur einen kleinen Fehler, er startet immer beim aktuellen Monat des Datums, es könnte aber vorkommen, dass von einem anderen Monatsblatt gestartet werden soll.
Ich habe versucht Deinen Code dahingehend abzuändern, es ist mir aber bis jetzt nicht gelungen.
Wenn es nicht möglich ist, kann ich auch mit dem unveränderten Code leben.
Vielen Dank für Deine Hilfe,.
Liebe Grüße
Helmut
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  fehlende Daten (Datum) in Datensatz einfügen und dabei Zellen einfügen fredo2611 4 79 14.03.2017, 10:02
Letzter Beitrag: fredo2611
  Wochentag mit Uhrzeit berechnen composer 7 142 12.03.2017, 11:53
Letzter Beitrag: WillWissen
  Uhrzeit Aufrunden Mori 1 48 09.03.2017, 10:31
Letzter Beitrag: lupo1
  Tabellenbereich kopieren, neues Dokument erstellen, einfügen und speichern DrWahnsinn 8 144 21.02.2017, 15:41
Letzter Beitrag: DrWahnsinn
  Berechnung Stunden aus Uhrzeit Lucarios 17 469 18.02.2017, 14:52
Letzter Beitrag: Lucarios
  Smarte Tabelle Problem beim Kopieren/Einfügen soky001 1 85 10.02.2017, 22:06
Letzter Beitrag: soky001
  Uhrzeit gruppieren Inel 9 327 06.02.2017, 11:43
Letzter Beitrag: GMG-CC
  VBA Bestimmte Zeile Kopieren + Einfügen nick_001 6 216 03.02.2017, 07:46
Letzter Beitrag: Kuwer
  Eindeutige Datumswerte mit Uhrzeit zählen madmaddin 11 206 24.01.2017, 18:27
Letzter Beitrag: GMG-CC
  Kopieren und am Ende einfügen über Filter fbehrendt 1 93 23.01.2017, 15:11
Letzter Beitrag: atilla

Gehe zu:


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