Anzeige
Archiv - Navigation
792to796
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
792to796
792to796
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Historie automatisieren

Historie automatisieren
18.08.2006 10:22:34
topsi
Hallo zusammen!
Ich hoffe es kann mir jemand bei meinem Problem helfen:
In Spalte T stehen aktuelle %Zahlen übereinander (ca 40 Zeilen).
In Spalten P bis R stehen die Werte der Vorperioden 1-3. Nun habe ich bereits ein Programm, welches die Werte von T selbstständig aktualisiert. Nur muss ich zuvor die Vorperiodenwerte von Hand "nach links" schieben, das Programm überscheibt einfach den Wert in T. Die Vorperiodenspalten lässt es wie sie sind.
Gibt es eine Programmvariation die dies vornimmt? und wäre es auch möglich nur 1 vorperiode sichtbar zu haben und die restlichen 12 (Monatsdaten) in ein separates Sheet zu werfen (automatisch)?
Leider habe ich noch nicht sehr viele VBA kenntnisse, weshalb ich auf euch angewiesen bin, das aktuelle Makro habe nicht ich geschrieben.
Danke für allfällige Inputs und schon jetzt ein schönes Wochenende!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Historie automatisieren
18.08.2006 11:22:11
Heide_Tr
hallo Topsi,
nimm in den Code vor die Berechnung die Zeile:
Columns("T:T").Insert Shift:=xlToRight
auf. Damit wird vor T eine neue Spalte eingefügt (die dann T ist), der Rest nach rechts verschoben.
viele Grüße. Heide
AW: Historie automatisieren
18.08.2006 11:42:47
Topsi
Hm wo muss ich dass genau einfügen? Der code lautet:

Sub Aktualisiere()
Dim Zielzelle As Range
Dim Quellzelle As Range
For Each Zielzelle In Sheets("cockpit").Range("I1:I200")
If Mid(Zielzelle.Formula, 1, 1) = "=" Then
Call Kopiere(Zielzelle, Sheets(Blatt(Zielzelle.Formula)).Range(Zell(Zielzelle.Formula)))
End If
Next Zielzelle
End Sub


Sub Kopiere(Zielzelle As Range, Quellzelle As Range)
Dim Zelle As Range
'Kopieren der Istwerte
Set Zelle = Quellzelle.Offset(0, 34)
Do Until (Zelle.Value <> "" Or Zelle.Address = Quellzelle.Offset(0, 1).Address)
Set Zelle = Zelle.Offset(0, -3)
Loop
Zielzelle.Offset(0, 11).Value = Zelle.Value
'Kopieren der Zielwerte
Set Zelle = Quellzelle.Offset(0, 35)
Do Until (Zelle.Value <> "" Or Zelle.Address = Quellzelle.Offset(0, 2).Address)
Set Zelle = Zelle.Offset(0, -3)
Loop
Zielzelle.Offset(0, 12).Value = Zelle.Value
End Sub


Function Blatt(str As String) As String
Dim i As Integer
i = 3
Do While Not Mid(str, i, 1) = "'"
Blatt = Blatt & Mid(str, i, 1)
i = i + 1
Loop
End Function


Function Zell(str As String) As String
Dim i As Integer
i = 3
Do While Not Mid(str, i, 1) = "'"
i = i + 1
Loop
Zell = Mid(str, i + 2)
End Function


Sub FindLinks()
Dim Mappe As Workbook
Dim VLink As Variant
Dim i As Integer
Set Mappe = ThisWorkbook
VLink = Mappe.LinkSources(xlExcelLinks)
If Not IsEmpty(VLink) Then
For i = 1 To UBound(VLink)
Debug.Print "Verknüpfung " & i & " : " & VLink(i)
Next i
End If
End Sub

deine neue Zeile hängt eine neue Spalte an, und verschiebt alle anderen nach rechts? Nehme an mit "to left" nach links (bräuchte ich). Dann habe ich nach 12 Monaten 12 Spalten die links von T sind? Kann man die auch automatisch in ein neues Sheet verschieben? so dass es in der Exceldatei ein spezielles "Historiesheet" gibt? weil sonst wird meine Tabelle mit der Zeit äusserst unübersichtlich und gross....
... hoffe man versteht was ich meine?!
Anzeige
AW: Historie automatisieren
18.08.2006 14:11:59
Heide_Tr
hallo topsi,
am besten, Du stellst Deine Daten mal zur Verfügung, so ist der Code schwer nachzuvollziehen.
Normalerweise hat man links keinen Platz und schiebt deshalb beim Einfügen alles nach rechts. Aber es kann natürlich sein, dass das bei Dir nicht geht.
Man kann die Historienführung auch auf einem anderen Blatt machen - kein Problem.
also, schick Deine Daten mal, dann werden wir sehen...
viele Grüße. Heide
AW: Historie automatisieren
18.08.2006 15:09:35
topsi
tja da ist das problem. Ich darf die Daten nicht aus der Firma geben :-).
Aber ich kann die Namen der Spalten, Zeilen etwas abstrakt mal reinhängen.
Ist eine Beispieldatei, die genau so aussieht wie meine Datei. Nur dass ich noch viel mehr zeilen habe.
https://www.herber.de/bbs/user/35919.xls
Anzeige
AW: Historie automatisieren
18.08.2006 15:43:54
Heide_Tr
hallo topsi,
mit Deinem Beispiel läuft Dein Code nicht!
Es ist immer am einfachsten per Debugger durch den Code zu gehen und die entscheidende Stelle dadurch zu finden.
Falls Du also eine Historienführung organisieren willst, lege ein neues Tabellenblatt an, ermittle dort die letzte belegte Spalte (Cells(1, 256).End(xltoLeft).Column) und kopiere (bevor Deine Kopierroutine läuft (also irgendwo kurz hinter "Sub Aktualisieren")) die alten Daten auf das neue Tabellenblatt in die Spalte hinter dem zuletzt belegten.
viele Grüße. Heide
AW: Historie automatisieren
18.08.2006 16:15:48
Topsi
Dass es nicht geht ist klar, war ja auch nur zum illustrieren wie mein Sheet aussieht. Ist halt doof, dass ich es nicht uploaden darf (Firmendaten).
Da ich wirklich nicht viel Ahnung von Excel VBA habe weiss ich nicht genau wie das was du beschreibst umgesetzt werden kann. Aber es tönt ziemlich genau nach dem was ich brauche!
Anzeige
AW: Historie automatisieren
18.08.2006 19:07:07
Heide_Tr
... dann erstell halt eine Datei, bei der Du alle Werte durch 1 ersetzt, das wirst Du wahrscheinlich dürfen?
AW: Historie automatisieren
21.08.2006 08:31:05
topsi
so, habe es nochmals versucht. hoffe es klappt... das ziel im moment ist, dass es die werte von sheet 2 in sheet eins in die spalte "wert aktuel"kopiert. klappt bei mir.
nun sollte es die alten aktuellen werde in die vorperiodenspalte verschieben und diese nach vorne.... etc.
https://www.herber.de/bbs/user/35969.xls

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige