Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
388to392
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
388to392
388to392
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Teil einer Formel per VBA austauschen

Teil einer Formel per VBA austauschen
27.02.2004 14:16:34
Thorsten Becker
Hallo Zusammen,
ich habe sehr viele Zellen mit folgender Formel zu versehen:
=INDIREKT("'"&home!$A$17&"ic'!B23")+INDIREKT("'"&home!$A$18&"ic'!B23")
Leider verändert Excel den Zellbezug B23 nicht. D.h., dies muss ich nun selbst manuell machen, was jedoch bei mehreren hundert Zellen, z.B. von B23 bis Z50 sehr zeitaufwendig ist. Mir schwebt nun ein Makro vor, welches nach diesem "B23" sucht und es entsprechend einfach durch "ActiveCell.Adress", also die jeweils aktuelle Zellkoordinate ersetzt, z.B. G35 oder $G$35.
Dazu bin ich schon auf folgenden Code gestoßen:

Sub string_aus_formel()
raus = "B23" 'zu ersetzender String
rein = ActiveCell.adress  'PROBLEM, FUNKTIONIERT LEIDER SO NICHT
'einzufügender String
For Each cell In Selection
If cell.HasFormula = True Then
cell.Formula = Application.WorksheetFunction.Substitute(cell.Formula, raus, rein)
End If
Next
End Sub


Hat vielleicht jemand eine Idee, wie ich die Zeile "rein = ActiveCell.adress" korrigieren muss?
Schon jetzt recht herzlichen Dank
Thorsten

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Teil einer Formel per VBA austauschen
27.02.2004 14:48:47
Alex K.
Hallo Thorsten,
der Computer versteht nur Englisch :-)
rein = ActiveCell.address
Beachte bitte, dass damit eine absoluter Zellbezug eingefügt wird, also z.B. "$B$10". Wenn du dass nicht willst, also die Form "B10" bevorzugst, dann
rein = ActiveCell.address(False, False)
Besten Dank -> wer 'Schreiben' kann ist ...
27.02.2004 14:54:56
Thorsten Becker
... klar im Vorteil und wenn's dann auch noch mit dem Englischen klappt ... ;-)
Besten Dank nochmal, bin wohl reif für's Wochenende
Viele Grüße
Thorsten
Danke für die Rückmeldung oT
27.02.2004 15:34:00
Alex K.
AW: Teil einer Formel per VBA austauschen
27.02.2004 14:54:17
Ramses
Hallo
das klappt nicht, weil du eine Selection hast.
Damit wird "Rein" automatisch aus der Selection genommen ("ActiveCell.Address")
Mache es auf folgende Weise

Sub string_aus_formel()
Dim rein As Range, cell As Range, repBereich As Range
Dim raus As String
raus = InputBox("Was möchten Sie ersetzen ?", "Ersetzen", "B23")
Set rein = Application.InputBox("Zellbezug..." & vbCrLf & "Wählen Sie die Zelle, auf die Sie sich beziehen wollen", Type:=8)
If rein.Address = "" Then Exit Sub
Set repBereich = Application.InputBox("... ersetzen in:" & vbCrLf & "Wählen Sie den Bereich, wo sie den Bezug ersetzen wollen", Type:=8)
'einzufügender String
For Each cell In repBereich
cell.Replace What:=raus, Replacement:=rein, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next
End Sub

Gruss Rainer
Anzeige
AW: Teil einer Formel per VBA austauschen
27.02.2004 14:56:40
florian
ich habe es auf diese weise zusammengebracht:

Private Sub CommandButton1_Click()
raus = "B23" 'zu ersetzender String
b = 1
For a = 1 To 10
rein = ActiveSheet.Cells(a, b).Address
If Cells(a, b).HasFormula = True Then
Cells(a, b).Formula = Application.WorksheetFunction.Substitute(Cells(a, b).Formula, raus, rein)
End If
Next a
End Sub

was a und b und so ist kannst du dir ja noch nach belieben definieren bzw auf andere zellen legen oder was weis ich...

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige