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

Per VBA bestimmte Zellen mit Formel Füllen

Per VBA bestimmte Zellen mit Formel Füllen
Benjamin
Hallo
ich habe das Probelm, dass ich bestimmte Zellen in mehreren Dokumenten habe, in denen die Formel geändert werden muss.
nun wollte ich wissen, ob dies Mittels VBA geht wenn die reihen folge wie folg t ist
A9 sowie W9
A130 W130
. .
. .
. .
. .
. .
usw usw
und Vorallem wie kann ich der formel dann sagen dass sie die Variable in der Formel immer 6 zelle weiter oben liegt die formel lautet zum bsp für das Feld A9 so =WENN(A3="";0;TEXT(A3;"MM""/""JJ")) und für das feld A130 =WENN(A124="";0;TEXT(A124;"MM""/""JJ"))
für helfe wäre ich sehr dankbar

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Formeln / Fuktionen / Bezüge per VBA kopieren
07.12.2011 17:37:37
NoNet
Hallo Benjamin,
mit folgendem Makro kannst Du Formeln/Funktionen/Bezüge von Ausgangszellen in andere Zellen kopieren :
Sub Funktionen_Anpassen()
'Kopiert Formeln/Funktionen von Zellen in andere Zellen
Dim strZ As String, lngz As Long, rngZ, rngQ
'Folgende Zeile bedeutet : Formel in A9 wie in W9, in A130 wie in W130 etc.
'Wichtig : Zellen immer durch = getrennt, Bereiche immer durch Komma (,)
strZ = "A9=W9,A130=W130,B7:B13=C20"
rngQ = Split(strZ, ",")
For lngz = LBound(rngQ) To UBound(rngQ)
rngZ = Split(rngQ(lngz), "=")
Range(rngZ(LBound(rngZ))).Formula = Range(rngZ(UBound(rngZ))).Formula
Next
End Sub
In diesem Beispiel wird die Funktion von W9 nach A9, von W130 nach A130 und von C20 nach B7:B13 kopiert.
Wenn Du relative Zelladressen (also ohne $-Zeichen) in den Ausgangszellen verwendet hast, dann werden diese beim Kopieren automatisch angepasst. Falls Du absolute Zelladressen (also z.B. $A$3) verwendet hast, dann wird nichts angepasst - das lässt sich auf die Schnelle auch nicht lösen....
Gruß, NoNet
Anzeige
AW: Per VBA bestimmte Zellen mit Formel Füllen
08.12.2011 16:15:04
Benjamin
Hab es jetzt wie folgt gemacht.
Aber er kopiert mir leider nix von a9 nach a131 und so weiter
Modul1

Sub Zusammen()
On Error GoTo Fehler
For i = 5 To 1000 'Ab Zeile 5 bis Zeile 1000
Pfad = Cells(i, 1) 'Dateiname
If Cells(i, 1).Value = "" Then 'wenn Zeile = leer, dann ist er fertig
GoTo OK
Else
Workbooks.Open (Pfad) 'öffnet den Pfad aus Excel
End If
Call Modul2.Funktionen_Anpassen 'dein Makro, welches nach dem öffnen ausgeführt werden soll
ActiveWorkbook.Close savechanges:=True  'Schließt das Workbook und speichert die Änderungen
Next i 'Nimmt die nächste Datei
GoTo OK
Fehler:
MsgBox "Es ist ein Fehler aufgetreten."
OK:
MsgBox "Ihre Daten wurden erfolgreich aktualisiert."
End Sub

Sub Funktionen_Anpassen() 'Das Makro, welches nach dem öffnen ausgeführt wird
MsgBox "Das Makro 'test' wurde ausgeführt."
End Sub
Modul 2
Option Explicit
Sub Funktionen_Anpassen()
'Kopiert Formeln/Funktionen von Zellen in andere Zellen
Dim strZ As String, lngz As Long, rngZ, rngQ
'Folgende Zeile bedeutet : Formel in A9 wie in W9, in A130 wie in W130 etc.
'Wichtig : Zellen immer durch = getrennt, Bereiche immer durch Komma (,)
strZ = "A9=W9,A9=A130,A130=A251,A251=A372,A372=A493,A493=A614,A614=A735,A735=A856,A856=A977, _
_
_
_
_
A977=A1098,A1098=A1219,A1219=A1340;A1340=A1461,A1461=A1582,A1582=A1703,A1703=A1824,A1824=A1945,  _
_
_
_
A1945=A2060,A2060=A2187,A2187=A2308,A2308=A2429,A2429=A2550,A2550=A2671,A2671=A2792,A2792=A2913, _
_
_
A2913=A3034,A130=W130,A251=W251,A372=W372,A493=W493,A614=W614,A735=W735,A856,W856,A977=W977, _
A19098=W1098,A1219=W1219,A1340=W1340,A1461=W1461,A1582=W1582,A1703=W1703,A1824=W1824,A1945= _
W1945,A2060=W2060,A2187=W2187;A2308=W2308,A2429=W2429,A2550=W2550,A2671=W2761,A2792=W2792,A2913=W2913,A3034=W3034"
rngQ = Split(strZ, ",")
For lngz = LBound(rngQ) To UBound(rngQ)
rngZ = Split(rngQ(lngz), "=")
Range(rngZ(LBound(rngZ))).Formula = Range(rngZ(UBound(rngZ))).Formula
Next
End Sub

aber er macht nix und bricht dann bei der 2. Datei ab nachdem er sie geöfnet hat.
kann dies an dem Passwort auf den einzelnen Blättern liegen
oder muss ihm noch gesat werden welches Blat er nehmen soll wenn er die Datei öffnet
und wie mach ich es, dass er mene Formel zu erst in A9 anlegt und dann kopiert
Anzeige

339 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige