Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wertkopie

Forumthread: Wertkopie

Wertkopie
04.05.2021 11:53:56
Hilfesuchender
Hallo Experten-Team!
Ich benötige euren Support für die Anpassung eines Makros. Dieses erstellt mir eine "Wertkopie" in den Zellen, wo bestimmte Datenbankformeln stehen (alle anderen Excelformel bleiben erhalten). Das Makro läuft dabei auch prinzipiell fehlerfrei:

Private Sub DBR(Bl)
Dim Z
On Error Resume Next
For Each Z In Bl.Cells.SpecialCells(xlCellTypeFormulas)
Select Case Left(Z.Formula, 4)
Case "=DBR", "=DBS", "=SUB", "=VIE", "=DIM"
Z.Value = Z.Value
End Select
Next Z
End Sub
Jetzt gibt es aber Zellen, in denen nicht direkt die Datenbankformel (DBR, DBS usw.) steht, sondern es ist eine Formelverknüpfung vorhanden:
=WENN(DBRW(Parameter...)=0;"";DBRW(Parameter...))
Wie kann das o.g. Makro verändert/erweitert werden, damit auch in solchen Fällen die Werte in die Zelle kopiert werden? Danke euch im Voraus!
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ein 2. Select
04.05.2021 12:28:31
lupo1
...
Select Case Left(Z.Formula, 4)
Case "=DBR", "=DBS", "=SUB", "=VIE", "=DIM"
Z.Value = Z.Value
End Select
Select Case Left(Z.Formula, 9)
Case "=WENN(DBR"
Z.Value = Z.Value
End Select
...
AW: Wertkopie
04.05.2021 12:37:01
Luschi
Hallo Hilfesuchender,
hier mal mein Vorschlag:

Private Sub DBR(Bl As Worksheet)
Dim Z As Range, sF As String
''On Error Resume Next
For Each Z In Bl.Cells.SpecialCells(xlCellTypeFormulas)
sF = Z.Formula
Select Case Left(Z.Formula, 4)
Case "=DBR", "=DBS", "=SUB", "=VIE", "=DIM"
Z.Value = Z.Value
Case Else
If InStr(1, sF, "DBRW(", vbTextCompare) > 0 Then
Z.Value = Z.Value
End If
End Select
Next Z
Set Z = Nothing
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Wertkopie
04.05.2021 12:42:34
Daniel
Hi
probiers mal so, damit sollte egal sein, wo die Datenbankfunktion in der Zelle steht.

Private Sub DBR(Bl)
Dim Z
Dim F
On Error Resume Next
For Each Z In Bl.Cells.SpecialCells(xlCellTypeFormulas)
For Each F in Array( "DBR(", "DBS(", "SUB(", "VIE(", "DIM(")
if Z.Formula like "*" & F & "*" then
Z.Value = Z.Value
exit for
end if
Next F
Next Z
End Sub
Gruß Daniel
Anzeige
AW: Wertkopie
04.05.2021 12:56:49
Hilfesuchender
Klasse. Vielen Dank @Daniel. Das läuft super.
Das kann nicht super laufen! Denn: =WENN(DBRW(
04.05.2021 14:25:51
lupo1
AW: Das kann nicht super laufen! Denn: =WENN(DBRW(
04.05.2021 15:11:16
Daniel
ich denke, auch ein mittelmäßiger bis schlechter Programmierer sollte erkennen, wie hier die Funktionsnamen einzubringen sind und dann in der Lage sein, das Makro an seine Bedürfnisse anzupassen und auch mit geänderten Funktionsnamen ans laufen zu bringen, ohne dass ihm jemand den 100% passenden Code liefern muss.
Gruß Daniel
Anzeige
Du bist ja nicht schuld :-) ...
04.05.2021 15:28:47
lupo1
... denn "es läuft doch super!"
ich hatte mich auch nicht wegen irgenwas
04.05.2021 15:31:00
Daniel
schuldig gefühlt.
ich fragte mich nur, warum dein Einwand, wenns doch super läuft.
Dein Code konnte so nicht laufen ...
04.05.2021 15:41:57
lupo1
... aber zum Glück hast Du ihn das ja reparieren lassen und er hat es - in Trance? - tatsächlich geschafft.
Und man muss ja wirklich keine Änderungen mitteilen. Nein, muss man nicht. So, jetzt wieder an Dich das letzte Wort: Daniels Wort zum Threadende.
Anzeige
warum konnte mein Code so nicht laufen?
04.05.2021 15:50:38
Daniel
kannst du mir da mal auf die Sprünge helfen?
ich finde den Fehler nicht.
Gruß Daniel
04.05.2021 15:52:18
Das kann nicht super laufen! Denn: =WENN(DBRW(
Das kann nicht super laufen! Denn: =WENN(DBRW(
04.05.2021 15:53:14
lupo1
Anzeige
AW: Das kann nicht super laufen! Denn: =WENN(DBRW(
04.05.2021 15:59:56
Daniel
sorry, ich verstehs nicht.
warum sollte es deswegen nicht funkionieren?
er muss sich ja nur das "DRBW(" im Array ergänzen.
soviel Selbstständigkeit kann man eigentlich voraussetzen.
(zumal es ja wahrscheinlich noch mehr Datenbankfunkionen gibt, die ggf ersetzt werden sollen und ergänzt werden müssen)
oder bist du jetzt Eifersüchtig, weil dein Lösungsforschlag (der übrigens auch nicht funktioniert, nur so neben bei), keine Resonanz findet?
Anzeige
Hihi ...
04.05.2021 19:30:09
lupo1
... nein, eifersüchtig bin ich auf Dich nicht. Ich bin ziemlich froh, dass ich nicht Du bin.
Meinen Vorschlag habe ich nicht getestet. Wie immer kommen meine Vorschläge vor allem schnell. Ob sie funktionieren oder nicht, ist mir da weniger wichtig. Es muss schnell sein.
Und TE hat Deinen ersten Vorschlag ja anscheinend umgesetzt. Er hat halt nur nicht geschrieben, dass er ihn noch umsetzen musste. Ansonsten drehen wir uns - wie immer mit Dir - nur im Kreis. Und jetzt gibt es wieder Dany mit Sahne zum Schluss.
Anzeige
kann ich gut verstehen
04.05.2021 20:23:58
Daniel
niemand hat gerne Diskussionspartner wie dich.
offensichtlich auch du selber nicht.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige