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

Zahlen in Zelle nebendran kopieren

Zahlen in Zelle nebendran kopieren
13.08.2014 10:52:43
Nastja
Hallo Leute,
folgendes Problem.
Hier eine Beispieldatei: www.herber.de/bbs/user/92069.xlsx
Eigentlich soll lediglich beim Ausführen des Makros die Zahlen von K34-K36 in P34-P36 kopiert werden und in P38 das Datum vom Ausführen des Makros geschrieben werden.
Bei jeder weiteren Ausführung des Makros sollen weiterhin die Zahlen von K34-K36 kopiert werden, jetzt nur nicht wie vorher in P34-P36 & Schreiben des Datum in P38 sondern immer eins nebendran. Also in Q34-Q36 und Datum in Q38.
Danke im Voraus.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
in einer .xlsx ist kein Makro... owT
13.08.2014 11:17:39
robert

AW: in einer .xlsx ist kein Makro... owT
13.08.2014 13:36:29
Nastja
Ja ich weiß. Das soll auch nur ein Beispiel sein, um das Makro dort zu implementieren.

vielleicht geht es so.
13.08.2014 18:32:01
Tino
Hallo,
hier mal ein Code zum testen.
(Datei als xls oder xlsm speichern wegen VBA)
Sub Beispiel()
Dim rngCopy As Range
Dim lngCol&
With Tabelle1 'Tabelle anpassen
If .Cells(33, .Columns.Count)  "" Then
MsgBox "keine Spalte mehr frei"
Exit Sub
End If
lngCol = .Cells(33, .Columns.Count).End(xlToLeft).Column + 1
'wenn nächste 
Gruß Tino

AW: vielleicht geht es so.
14.08.2014 19:17:46
Kremel
Vielen Dank Tino, funktioniert optimal.
Jetzt nur noch 2 kleine Sachen:
1. Anstatt des Datumformates TT.MM.YYYY soll nur der Monat und das jahr angezeigt werden. (Also: August 14, September 14 ....)
2. Das Ausführen des Makros soll nur funktionieren, wenn bisher noch keine Werte aus dem aktuellen Monat kopiert worden sind. Sprich: Wenn ich das Makro jetzt ausführe, soll als Datum August 2014 und darunter die kopierten Werte erscheinen. Wenn ich das Makro dannach nochmal ausführe, soll nichts geschehen, da die Werte für August schon übertragen worden sind. Erst ab September darf es wieder funktionieren usw. Im Endeffekt soll einfach verhindert werden, dass der gleiche Monat nochmal erscheint.

Anzeige
AW: vielleicht geht es so.
18.08.2014 01:46:53
Kremel
Keiner ne Ahnung?

AW: vielleicht geht es so.
18.08.2014 14:22:32
fcs
Hallo Nastja,
mit den folgenden Anpassungen (Datumsprüfung und Formatierung der Datumszelle) sollte es wie gewünscht funktionieren.
Gruß
Franz
Sub Beispiel()
Dim rngCopy As Range
Dim lngCol&, Datum As Date
With Tabelle1 'Tabelle anpassen
If .Cells(33, .Columns.Count)  "" Then
MsgBox "keine Spalte mehr frei"
Exit Sub
End If
lngCol = .Cells(33, .Columns.Count).End(xlToLeft).Column + 1
'wenn nächste  16 Then Datum = .Cells(33, lngCol - 1)
If Month(Date) = Month(Datum) Then
MsgBox "Daten wurden in diesem Monat schon kopiert"
Else
'Bereich der kopiert werden soll
Set rngCopy = .Range("K34:K36")
'kopieren
rngCopy.Copy .Cells(34, lngCol)
'Datum eintragen
With .Cells(33, lngCol)
.NumberFormat = "MMMM YY"
.Value = Date
End With
End If
End With
End Sub

Anzeige
AW: vielleicht geht es so.
18.08.2014 15:38:52
Nastja
Hallo Franz,
vielen Dank. es klappt super!!!! Nun noch ne letzte Frage. Habe total vergessen, dass sich die zu kopierenden Werte aus einer ZÄHLENWENN Funktion ergeben. Dadurch werden wahrscheinlich beim Ausführen des Makros nicht die richtigen Werte übertragen bzw. alles Nuller.
Ist es möglich dies noch zu beheben?
Hier die aktuellste Version https://www.herber.de/bbs/user/92174.xlsm

AW: vielleicht geht es so.
19.08.2014 10:55:54
fcs
Hallo Nastja,
dann muss man beim Kopieren nur Formate und Werte einfügen.
Gruß
Franz
Sub Beispiel()
Dim rngCopy As Range
Dim lngCol&, Datum As Date
With Tabelle1 'Tabelle anpassen
If .Cells(33, .Columns.Count)  "" Then
MsgBox "keine Spalte mehr frei"
Exit Sub
End If
lngCol = .Cells(33, .Columns.Count).End(xlToLeft).Column + 1
'wenn nächste  16 Then Datum = .Cells(33, lngCol - 1)
If Month(Date) = Month(Datum) Then
MsgBox "Daten wurden in diesem Monat schon kopiert"
Else
'Bereich der kopiert werden soll
Set rngCopy = .Range("K34:K36")
'kopieren
rngCopy.Copy
With .Cells(34, lngCol)
.PasteSpecial Paste:=xlPasteFormats
.PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
'Datum eintragen
With .Cells(33, lngCol)
.NumberFormat = "MMMM YY"
.Value = Date
End With
End If
End With
End Sub

Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige