Hilfe bei Code
13.08.2015 16:06:16
anna
ich habe einen Code gebastelt der leider noch nicht ganz funktioniert und auch noch ein wenig gekürzt werden soll (MsgBox).
Im Code selbst habe ich auch geschrieben was passieren soll.
Erstmal der Code:
Public Sub FormelnAnpassen()
Dim wks As Worksheet
Dim z As Range
Dim strSB As String, alteFormel As String, neueFormel As String
Dim intFarbe As Integer, intAnt As Integer
Dim q
''''''''''''''''''''''' Schleife von Anfang'''''''''''''''''
Do
q = 8
With ActiveSheet
dsumme = WorksheetFunction.Sum(.Range(.Cells(9, 3), .Cells(12, 3)))
dsumme2 = WorksheetFunction.Sum(.Range(.Cells(14, 3), .Cells(15, 3)))
End With
'''''''''''''''''''''Werte nacheinander einfügen'''''''''''''
ActiveSheet.Cells(q + 1, 6) = dsumme
ActiveSheet.Cells(q + 1, 7) = dsumme2
For Each wks In ThisWorkbook.Worksheets
strSB = "C:\Beispiel\[test2.xlsx]" & wks.Index
For Each z In wks.Range("c9:c15")
If z.HasFormula = True And InStr(1, z.Formula, strSB) 0 Then
wks.Activate
z.Activate
alteFormel = z.Formula
neueFormel = Replace(alteFormel, _
"test2.xlsx]" & wks.Index, _
"test2.xlsx]" & wks.Index + 1)
''''''''''''''''''''''''''keine MsgBox'''''''''''''''''''''
intAnt = MsgBox("soll die Formel in Zelle " & z.Address & " ersetzt werden?" _
& vbNewLine & vbNewLine _
& "alt:" & vbTab & alteFormel & vbNewLine _
& "neu:" & vbTab & neueFormel, vbYesNoCancel, "Formel ersetzen?")
If intAnt = 6 Then z.Formula = neueFormel
If intAnt = 2 Then Exit Sub
End If
''''''''''''''Zellen aktualisieren'''''''''''''''''''
Application.CalculateFullRebuild
Next z
Next wks
Loop
End Sub
1. Ich würde gern die Messagebox raus schmeißen. Das hab ich zwar schon paar mal versucht, aber dann funktioniert der Code nicht mehr bei mir. 2. Der ganze Code soll nun als Schleife durchlaufen werden.
3. Die Zellen ("c9:c15") sollen immer wieder aktualisiert werden, nachdem sie einmal durchlaufen wurden und dann kopiert werden.
4. Die aktualisierten Werte der Zellen sollen kopiert und eingefügt werden.
Danke schon mal im Voraus.
Einen schönen Tag
Anna