Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
304to308
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
304to308
304to308
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formel per VBA kopieren

Formel per VBA kopieren
05.09.2003 13:29:01
Cosi
Hallo zusammen

In der Spalte D steht entweder ein Wert, eine Formel oder nichts.

Nun möchte ich ein Makro das nur die Formel von der Spalte D in die Spalte I kopiert und die anderen Zellen in der Spalte I nicht überschreibt.

Könnt Ihr mir dabei behilflich sein.

Vielen Dank für Eure Unterstützung.

Gruss

Cosi

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel per VBA kopieren
05.09.2003 14:10:28
WernerB.
Hallo Cosi,

wie gefällt Dir das:

Sub FormelKopie()
Dim laR As Long, i As Long
Application.ScreenUpdating = False
laR = Cells(Rows.Count, 4).End(xlUp).Row
For i = 1 To laR
If Cells(i, 4).HasFormula = True Then
Cells(i, 4).Copy
Cells(i, 9).PasteSpecial Paste:=xlFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
Next i
Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.

P.S.: Das Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter (siehe dazu Forums-FAQ)!
Anzeige
Vielen Dank
05.09.2003 14:28:30
Cosi
Hallo Werner

Dein Makro funktioniert einwandfrei.

Vielen herzlichen Dank

Cosi
AW: Formel per VBA kopieren
06.09.2003 15:42:45
Hans W. Hofmann
Aha, ein Copy&Paster ;-).
Evtl. eine kleine Verbesserung:


Sub FormelKopie()
Dim laR As Long, i As Long
laR = Cells(Rows.Count, 4).End(xlUp).Row
For i = 1 To laR
If Cells(i, 4).HasFormula Then
Cells(i, 9).Formula = Cells(i, 4).FormulaR1C1
End If
Next i
End Sub


Gruß HW
Hauptsatz der Informatik: Man formuliere einen stabilen, sparsamen
und effizenten Algorithmus...
AW: Formel per VBA kopieren
06.09.2003 18:53:48
Martin Beck
Hallo hwh,

möglicherweise kleine Verbesserung (insb. bei wenigen Formeln in einer "langen" Spalte), da nur die Zellen mit Formeln in der Schleife geprüft werden:


Sub FormelKopie()
Dim Bereich As Range
Set Bereich = Columns("D:D").SpecialCells(xlCellTypeFormulas, 23)
For Each Cell In Bereich
If Cell.HasFormula Then
Cell.Offset(0, 5).Formula = Cell.FormulaR1C1
End If
Next
End Sub


Gruß
Martin Beck
Anzeige
AW: Formel per VBA kopieren
07.09.2003 11:38:23
Hans W. Hofmann
Könnte noch sparsammer sein :-)
und dann sparen wir auch gleich die IF-Abfrage noch ein, oder?

Gruß HW
Wo Du Recht hast ... ;-) (oT)
07.09.2003 12:01:50
Martin Beck
Nachfrage an hwh
07.09.2003 12:16:00
Martin Beck
Hallo hwh,

wieso funktioniert in meinem Makro eigentlich statt

For Each Cell In Bereich
Cell.Offset(0, 5).Formula = Cell.FormulaR1C1
Next

nicht

Bereich.Offset(0, 5).Formula = Bereich.FormulaR1C1

MaW: Warum muß man bei einem Bereich, der nicht angrenzende Zellen enthält, in einer Schleife alle Zellen einzeln abklappern?

Gruß
Martin Beck
Nachfrage an Hans W. Hofmann
07.09.2003 08:40:44
WernerB.
Hallo Hans W.,

vielen Dank für diesen nützlichen Hinweis.
Bisher kannte ich bei direkter Zuweisung nur den Werte-Zuweis (Value); dass so auch die Zuweisung von Formeln möglich ist, war mir neu.

Kennst Du darüber hinaus auch noch weitere ähnliche Direkt-Zuweisungsmöglichkeiten (z.B. Formate, Kommentare, usw.)?
Falls ja: Wie lautet die jeweilige Syntax?

Gruß
WernerB.
Anzeige
AW: Nachfrage an Hans W. Hofmann
07.09.2003 11:35:42
Hans W. Hofmann
Copy&Paste ein (unseeliges) aus der
Tabellenbearbeitung in die Programmierung
übernommenes Verfahren. Programmtechnisch
"kopiert" man einen Wert durch Zuweisung an
eine andere Variable.

Dim a as integer, b as Integer
a=1
b=a ' b ist eine kopie von a

Das geht immer soweit man
den gleichen Datentyp verwendet.
Eine Besonderheit sind Pointer-Typen wie
Objektzeiger, also sowas wie

Dim a As Collection, b As Collection
Set a = New Collection
a.Add 2, "1"
Set b = a
b.Add 3, "2"

a und b sind Zeiger auf das gleiche Objekt!

Gruß HW
Anzeige
AW: Nachfrage an Hans W. Hofmann
07.09.2003 15:44:08
WernerB.
Hallo Hans W.,

vielen Dank für Deine Antwort.

Allerdings verstehe ich in Bezug auf meine Fragestellung nur "Bahnhof".

Oder muss ich Deine Antwort so interpretieren, dass eine direkte Zuweisung (also kein "Copy & Paste") nur mit Werten (Values) und Formeln, aber nicht für z.B. Formate, Kommentare usw., möglich ist?

Gruß WernerB.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige