Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in 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
  Zeile kopieren und einfügen, Positionierung stimmt nicht. Icepic 0 11 Vor 7 Stunden
Letzter Beitrag: Icepic
  Suchen, Finden, Kopieren, Einfügen mit VBA Aynor 5 72 Gestern, 22:42
Letzter Beitrag: schauan
  Zeilen kopieren und mit Formeln und Format, aber ohne Werte einfügen Peter Pan 7 130 18.11.2016, 08:17
Letzter Beitrag: Kuwer
  Datum/Uhrzeit automatisch eintragen Marius4444 13 236 05.11.2016, 14:08
Letzter Beitrag: schauan
  ausgewählte Daten kopieren und einfügen Berndt 1 130 26.09.2016, 18:48
Letzter Beitrag: schauan
Photo Wenn Abfrage bei Berechnete Uhrzeit erst nach Mitternacht adamelsheimer 14 428 20.08.2016, 22:57
Letzter Beitrag: adamelsheimer
  Uhrzeit als Schichtzuteilung MATTIS2016 5 207 17.08.2016, 19:16
Letzter Beitrag: MATTIS2016
  Datum und Uhrzeit in der X Achse gentlel 4 335 26.07.2016, 19:27
Letzter Beitrag: schauan
  Bei Bestimmter Uhrzeit wert eintragen pilger00 1 194 18.07.2016, 12:55
Letzter Beitrag: gbr
  MsgBox bei uhrzeit aus Zelle magro24 4 406 13.07.2016, 15:55
Letzter Beitrag: schauan

Gehe zu:


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