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

Automatisch Formeln in Werte umwandeln mit VBA

Automatisch Formeln in Werte umwandeln mit VBA
28.02.2007 10:05:15
Salim
Hallo zusammen,
ich würde gerne folgendes machen:
in C4: Eingabe eines Anfangsdatums, der sich nicht ändert.
in C5: Eingabe des aktuellen Datums, der immer wieder aktualisiert wird.
In den Spalten D bis AY steht in jeder Spalte in Zeile 8 einen Datum mit verschiedenen Formeln darunter in den Zeilen 9 bis 23.
Ich würde gerne wissen, ob es möglich ist, einen VBA-Code zu programmieren, der die Zeile 8 durchläuft und in den Spalten wo gilt: Datum in Zeile 8 liegt in der Vergangenheit: Formeln in den Zeile 9-23 in Werte umwandeln.
Wäre Super
Danke
Salim

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisch Formeln in Werte umwandeln mit VBA
28.02.2007 10:19:00
IngGi
Hallo Salim,
das geht zum Beispiel so:

Sub test()
Dim rng As Range
For Each rng In Sheets("Tabelle1").Range("D8:AY8")
   If rng < Date Then
      rng.Offset(1, 0).Resize(15 , 1).Copy
      rng.Offset(1, 0).Resize(15, 1).P asteSpecial Paste:=xlPasteValues
   End If
Next 'rng
End Sub

Gruß Ingolf
Anzeige
AW: Automatisch Formeln in Werte umwandeln mit VBA
28.02.2007 10:41:21
Salim
Hallo Ingolf,
vielen Dank. Ich bring es aber noch nicht zum Laufen.
Ich habe versucht Date durch C5 (aktuellen Datum) zu ersetzen.
Wenn ich dann ausführen möchte, schreibt er: Index ausserhalb des gültigen Bereichs?
Gruss
Salim
AW: Automatisch Formeln in Werte umwandeln mit VBA
28.02.2007 10:52:07
Bertram
Hallo Salim,
Date liefert das aktuelle Datum, ansonsten Range("C5").Value
Gruß
Bertram
AW: Automatisch Formeln in Werte umwandeln mit VBA
28.02.2007 10:56:52
Salim
Hallo Bertram,
Danke für den Tip.
Wenn ich dann ausführen möchte, schreibt er aber trotzdem: Index ausserhalb des gültigen Bereichs.
Woran liegts?
Gruss
Salim
AW: Automatisch Formeln in Werte umwandeln mit VBA
28.02.2007 11:03:49
IngGi
Hallo Salim,
hast du vielleicht ein Leerzeichen in "Tabelle 10" - also so, wie es hier steht und eigentlich heißt es "Tabelle10" - also ohne Leerzeichen? Ansonsten klick bei der Fehlermeldung mal auf "Debuggen" und sag mir, welche Programmzeile gelb hinterlegt ist.
Gruß Ingolf
Anzeige
AW: Automatisch Formeln in Werte umwandeln mit VBA
28.02.2007 11:11:23
Salim
Hallo Ingolf,
Wenn ich dann ausführen möchte, schreibt er: Index ausserhalb des gültigen Bereichs.
Es gibt keine Debuggen bzw. ich weiss nicht wie ich es hervorrufen kann.
Gruss
Salim
AW: Automatisch Formeln in Werte umwandeln mit VBA
28.02.2007 12:38:00
IngGi
Hallo Salim,
ich konnte den von dir beschriebenen Fehler jetzt reproduzieren, indem ich einen falschen Tabellenblattnamen angegeben habe. Wenn du den richtigen Tabellenblattnamen angegeben hast, ist vielleicht eine andere Arbeitsmappe aktiv? Gib mal zusätzlich noch den Arbeitsmappennamen nach folgendem Muster an:
For Each rng In Workbooks("Dateiname.xls").Sheets("Tabelle1").Range("D8:AY8")
Gruß Ingolf
Anzeige
AW: Automatisch Formeln in Werte umwandeln mit VBA
28.02.2007 14:02:00
Salim
Super klappt jetzt
Danke
AW: Automatisch Formeln in Werte umwandeln mit VBA
28.02.2007 10:32:00
Klaus
Hallo Salim,
dieser Code sollte es tuen.
Gruß,
Klaus M.vdT.

Option Explicit
Sub Umwandeln()
Dim iCol As Integer
Dim AktDat As Date
Application.ScreenUpdating = False 'Bildschirmflackern verhindern
AktDat = Range("C5") 'Datum übergeben
For iCol = 4 To 51   'Spalte D bis AY
If Cells(8, iCol) < AktDat Then                         'Wenn das Datum kleiner ist
Range(Cells(9, iCol), Cells(23, iCol)).Copy           'Dann kopiere die Formeln
Range(Cells(9, iCol), Cells(23, iCol)).PasteSpecial _
Paste:=xlPasteValues                                 'und füge sie mit "Inhalte _
einfügen" wieder ein
End If
Next iCol            'Spalte D bis AY
With Application
.CutCopyMode = False    'Die gestrichelte Linie vom kopieren abschalten
.ScreenUpdating = True  'Bildschirmaktualisierung anschalten
End With
End Sub

Anzeige
Ingolfs Code ist besser :-)
28.02.2007 10:33:53
Klaus
Hallo Salim,
nimm Ingolfs Code der ist eleganter.
Hallo Ingolf,
vielen Dank, man lernt nie aus ^^
Gruß an beide,
Klaus M.vdT.
AW: Ingolfs Code ist besser :-)
28.02.2007 10:46:00
Salim
Hallo Klaus,
Danke für deine Hilfe.
Ich bringe jedoch die Formel vom Ingolf nicht zum laufen.
Ich habe Date durch C5 ersetzt und Tabelle 1 durch Tabelle 10 (entspricht in der VBA Zuordnung den gültigen Tabellenblatt)
Beim Ausführen kommt eine Fehlermeldung: Index ausserhalb des gültigen Bereichs.
Hast du eine Idee?
Gruss und Danke
Salim
AW: Ingolfs Code ist besser :-)
28.02.2007 12:25:00
Klaus
ungetestet:

Sub test()
Dim rng As Range
Dim AktDat as Date
AktDat = Range("C5")
For Each rng In Sheets("NameDerTabelle").Range("D8:AY8")
If rng < AktDat Then
rng.Offset(1, 0).Resize(15 , 1).Copy
rng.Offset(1, 0).Resize(15, 1).P asteSpecial Paste:=xlPasteValues
End If
Next 'rng
End Sub

Was meinst du denn mit "entspricht der VBA Zuordung"? Wenn das Blatt Tabelle10 heisst, nenn es auch sheets("Tabelle10"). Wenn es MiracleEingabeBlatt heisst, dann Sheets("MiracleEingabeBlatt")
Gruß,
Klaus
Anzeige
AW: Ingolfs Code ist besser :-)
28.02.2007 14:03:11
Salim
Hallo,
Danke für die Unterstützung
Jetzt klappts
Gruss
Salim
AW: Ingolfs Code ist besser :-)
28.02.2007 16:52:00
Klaus
.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige