# Einfaches VBA Excel - Zellen kopieren in Zellen mit schon vorhandenem Inhalt



## PeterPan61 (7. Dezember 2012)

Guten Abend zusammen.

Ich habe ein kleines VBA-Problem:
Ich möchte eine Uhrzeit aus einem Feld in einer bestimmen Spalte in eine das selbe Feld einer andere Spalte kopieren.

Probleme dabei:

-In der anderen Spalte steht unter Umständen etwas drin, was erhalten bleiben muss! Die Informationen 
müssen also zusätzlich in die Zielzelle eingefügt werden.

-Zudem muss aus dem Format HH:MM aus der Ursprungszelle das Format UHR=HH:MM werden

-Wenn die Information 00:00 in der Ursprungszelle enthalten ist, soll gar nichts passieren

-Wenn in einer anderen Spalte eine Uhrzeit steht (das kann möglich sein), dass soll diese Information
im oben genannten Format verwendet werden

Könnt Ihr mir bitte helfen?
Ich weiß, das müsste ich schon hinbekommen, komme aber mit dem Beibehalten der Inhalte nicht klar.
Im Anhang einmal ein Beispiel mit dem Excel-Tabellenaufbau. Die betroffenen Spalten sind Rot markiert.

Vielen Dank im Voraus und ein schönes Wochenende
PeterPan


----------



## Zvoni (10. Dezember 2012)

So ganz verstanden habe ich das jetzt nicht. Kannst du mal ein vorher/nacher hier reinstellen?
Ausserdem: Von einer "bestimmten" Zelle in eine andere kopieren.
Wenn du schon ein Bild hier reinhängst, dann sag auch bitte aus welcher Zelle in welche Zelle. Hier muss ich raten.


----------



## tombe (10. Dezember 2012)

Du möchtest bitte was?


> in einer bestimmen Spalte in eine das selbe Feld einer andere Spalte kopieren.



Wenn ich dich richtig verstehe soll der Inhalt der Spalte Anfangszeit oder der Spalte Zeitraum an den Inhalt der Spalte Bemerkung angehängt werden.

Wenn du dafür eine neue Spalte nehmen könntes, dann könntest du es einfach mit VERKETTEN lösen. Wenn du aber wrklich die Spalte Bemerkung erwitern willst, musst du es mit einer VBA-Funktion machen.


```
'erst in Zeile 2 beginnen
zeile = 2
'so lange bis in Spalte A keine Eintrag vorhanden ist
Do While (Tabelle1.Cells(zeile, 1) <> "")
'wenn in Spalte A nicht "00:00" angegeben ist und Spalte B keinen Eintrag enthält
    If Format(Tabelle1.Cells(zeile, 1), "hh:mm") <> "00:00" And Tabelle1.Cells(zeile, 2) = "" Then
'prüfen ob in Spalte C bereits die Angabe "Uhr=" vorhanden ist
        pos = InStr(1, Tabelle1.Cells(zeile, 3), "Uhr=")
        If pos <> 0 Then
'dann Wert aktualisieren
            Tabelle1.Cells(zeile, 3) = Left(Tabelle1.Cells(zeile, 3), pos + 3) & Format(Tabelle1.Cells(zeile, 1), "hh:mm")
        Else
'wenn nicht Eintrag vornehmen
            Tabelle1.Cells(zeile, 3) = Tabelle1.Cells(zeile, 3) & " Uhr=" & Format(Tabelle1.Cells(zeile, 1), "hh:mm")
        End If
    End If
'wenn Spalte B einen Wert enthält, Rest wie oben
    If Tabelle1.Cells(zeile, 2) <> "" Then
        pos = InStr(1, Tabelle1.Cells(zeile, 3), "Uhr=")
        If pos <> 0 Then
            Tabelle1.Cells(zeile, 3) = Left(Tabelle1.Cells(zeile, 3), pos + 3) & Format(Tabelle1.Cells(zeile, 2), "hh:mm")
        Else
            Tabelle1.Cells(zeile, 3) = Tabelle1.Cells(zeile, 3) & " Uhr=" & Format(Tabelle1.Cells(zeile, 2), "hh:mm")
        End If
    End If
    zeile = zeile + 1
Loop
```

In diesem Beispiel steht die Anfangszeit in Spalte A, der Zeitraum in Spalte B und die Bemerkungen stehen in Spalte C.


----------

