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

Alle DBRW-Formeln mittels Makro in Werte umwandeln

Alle DBRW-Formeln mittels Makro in Werte umwandeln
05.07.2013 15:23:51
Nik
Hallo zusammen..
ich habe noch ein weiteres Problem: ich habe ein Reporting das mittels DBRW-Formeln zusammengestellt wird. Ist es möglich ein VBA-Code zu erstellen der alle im File vorkommenden Formeln, die mit DBRW anfangen in fixe Werte umzuwandeln?
Wie könnte ein solcher Code aussehen?
Vielen lieben Dank für Eure Hilfe! :-)
Gruss
Nik

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Da biste relativ weit....
05.07.2013 15:34:09
NoNet
Hallo Nik,
wenn Du die DBRW-Funktion kennst, kann ich dazu nur sagen :
Da Biste Relativ Weit...
Soll heißen : ICH kenne diese Funktion zumindest (leider) nicht :-(
Vielleicht erklärst Du uns erst einmal woher diese Funktion stammt und was sie bewirkt !
Danke und Gruß, NoNet
Hast Du Interesse, andere Excel-Begeisterte kennenzulernen ? - Dann komme zum
Exceltreffen 11.-13.10.2013 in Duisburg

http://www.exceltreffen.de/index.php?page=230
Es sind noch genügend Plätze für Interessenten frei - schau doch mal rein !

Anzeige
AW: Da biste relativ weit....
05.07.2013 15:43:07
Nik
Hallo zusammen..
sorry... Also soweit natürlich nicht. Die DBRW-Formeln ist eben aus TM1, oder jetzt Cognos eine Datenbanformeln mit der wir Werte aus der Cognos-Datenbank ziehen. Und wenn ich dann eben einen Report wegschicken möchte hab ich bisher immer alles kopiert und dann in Werte umgewandelt, so dass der nächste der den Report öffnet keine Fehlermeldung bekommt da ja nichts aktualisiert werden kann weil er keine Verbindung zu Cognos hat.
Aber das komplette kopieren und in Werte ersetzen ist eben nicht so wirklich sinnvoll, da auch Verknüpfungen etc. ersetzt werden.
Kann man das irgendwie mittels VBA umsetzen dass das ganze File nach dieser Formel durchsucht wird und die dann durch Werte ersetzt?
Nochmals sorry für die Verwirrung...
DANKE und Gruss
Nik

Anzeige
DBRW = Database Read-Write von IBM ?
05.07.2013 15:57:56
IBM
Hallo Nik,
habe jetzt doch mal gegoogelt und eine informative Seite gefunden : Bei DBRW handelt es sich offenbar um ein Excel-AddIn von IBM !?!?
http://publib.boulder.ibm.com/infocenter/ctm1/v9r4m1/index.jsp?topic=/com.ibm.swg.im.cognos.tm1_ref.9.4.1.doc/tm1_ref_id12154wrk_dbrw.html
Hier ein Codeansatz, der alle Zellen, deren enthaltene Funktion mit =DBRW( beginnt, durch ihre Werte ersetzt :
Sub DBRW_durch_Werte_ersetzen()
Dim rngZ As Range, ws As Worksheet, bolSchutz As Boolean
For Each ws In Worksheets
ws.Activate
bolSchutz = False
Set rngZ = Cells.Find("=DBRW(", LookIn:=xlFormulas, lookat:=xlPart)
While Not rngZ Is Nothing And Not bolSchutz
If ws.ProtectContents = False Then
rngZ.Value = rngZ.Value
Set rngZ = Cells.FindNext(rngZ)
Else
bolSchutz = True
MsgBox "Im folgenden Blatt konnten keine Ersetzungen vorgenommen werden, da es  _
geschützt ist :" & _
vbLf & vbLf & ws.Name, vbCritical, "Bitte Blatschutz entfernen !"
End If
Wend
Next
End Sub
Gruß, NoNet
Hast Du Interesse, andere Excel-Begeisterte kennenzulernen ? - Dann komme zum
Exceltreffen 11.-13.10.2013 in Duisburg

http://www.exceltreffen.de/index.php?page=230
Es sind noch genügend Plätze für Interessenten frei - schau doch mal rein !

Anzeige
AW: DBRW = Database Read-Write von IBM ?
05.07.2013 16:07:53
IBM
Hi NoNet,
ja das ist von IBM, zumindest die haben Cognos meines Erachtens geschluckt..
Bin es eben mal ausprobieren wobei ich sinnvollerweise wohl noch die Displayaktualisierung ausschalten, sind eben doch ein paar Formeln..
Grad eben ist er fertig geworden...hat jedoch nicht alle Formeln ersetzt :-( Ich muss es Montag nochmals genau anschauen, hab jetzt eben noch Sitzung.
Aber Dir vielen lieben Dank und schönes Weekend.
Gruss
Nik

Alle DBRW-Formeln durch ihr Ergebnis ...
05.07.2013 15:52:43
Luc:-?
…ersetzen sollte wie bei anderen Fmln auch fktionieren, Nik;
also ungefähr so:
Const adRelBer$ = "…"
Dim ber As Range, relBer As Range
Set relBer = ActiveSheet.Range(adRelBer)
For Each ber in relBer
If ber.HasFormula Then
If Left(ber.Formula, 6) = "=DBRW(" Then ber.FormulaLocal = ber.Value
End If
Next ber
Zu adRelBer natürlich noch die Adresse des zu behandelnden GesamtBereichs angeben.
Gruß Luc :-?
Besser informiert mit …

Anzeige
AW: Alle DBRW-Formeln mittels Makro in Werte umwandeln
05.07.2013 16:07:32
UweD
Hallo
hier auch noch eine Lösung von mir
Sub DBWR_raus()
Dim Zelle As Range
For Each Zelle In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas, 23) ' alle Zellen mit  _
Formeln
If Left(Zelle.FormulaLocal, 6) = "=DBWR(" Then
Zelle.Value = Zelle.Value
End If
Next
End Sub
Gruß UweD

:-( DBRW nicht DBWR...
05.07.2013 16:11:02
UweD

Sub DBWR_raus()
Dim Zelle As Range
'Nur alle Zellen mit Formeln
For Each Zelle In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas, 23)
If Left(Zelle.FormulaLocal, 6) = "=DBRW(" Then Zelle.Value = Zelle.Value
Next
End Sub

Anzeige
AW: inkl. der Anmerkung von NONET
05.07.2013 16:41:34
NONET

Sub DBRW_raus()
Dim Zelle As Range
'Nur alle Zellen mit Formeln
For Each Zelle In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas, 23)
If InStr(Zelle.FormulaLocal, "DBRW(") > 0 Then Zelle.Value = Zelle.Value
Next
End Sub

AW: inkl. der Anmerkung von NONET
08.07.2013 14:08:06
NONET
Hey Uwe,
vielen lieben Dankd für Deine Hilfe, wie aber auch generell allen die sich das Problem mal angeschaut haben. Ich habe mich jetzt einfach mal spontan für Deine Lösung entschieden, die ich am ehesten habe nachvollziehen können, da mein KnowHow doch arg beshränkt ist..:-(
Ich habe den Code jetzt mal für die komplette Datei anwenden wollen, funktioniert jettz aber nicht.. Ich habe eigentlich nur ActiveSheet durch ActiveWorkbook ersetzt...aber passiert ist nichts, die Formeln stehen in den anderen Sheets noch immer drin.
Sub DBRW ()
Dim Zelle As Range
'Nur alle Zellen mit Formeln
For Each Zelle In ActiveWorkbook.Cells.SpecialCells(xlCellTypeFormulas, 23)
If InStr(Zelle.FormulaLocal, "DBRW(") > 0 Then Zelle.Value = Zelle.Value
Next
End Sub
Habe ich noch etwas vergessen?
DANKE und Gruss
Nik

Anzeige
Nur DBWR? TM1 kennt noch ein paar...
05.07.2013 16:16:36
EtoPHG
andere, Nik
Siehe: TM1 Worksheet Functions
Muss auf all diese Functions getestet werden, den theoretisch könnten alle benutzt werden?
Zudem was meinst du mit:
die mit DBRW anfangen in fixe Werte umzuwandeln
und
Aber das komplette kopieren und in Werte ersetzen ist eben nicht so wirklich sinnvoll, da auch Verknüpfungen etc. ersetzt werden.
1. Können die TM1-Funktionen beliebig geschachtelt in Formeln vorkommen und da nützen Ansätze wie die von NoNet und Luc (Suche auf =DBWR) wirklich nur rudimentär.
2. Was verstehst du unter Verknüpfung? Wenn eine Formel durch den Wert ersetzt wird, geht natürlich auch diese verloren, falls sich die Formel auf Zellreferenzen in einer anderen Mappe bezog.
Gruess Hansueli

Anzeige
Zelle BEGINNT mit =DBWR
05.07.2013 16:23:00
NoNet
Hallo Hansueli,
ich pflichte dir bei, dass diese Funktionen natürlich auch verschachtelt vorkommen können - daran hatte ich bei der Code-Entwicklung auch gedacht, aber ich habe Nik dann wörtlich genommen :
 Formeln, die mit DBRW anfangen 
Daher überprüft mein Code auch nur die Zellen, deren Inhalt mit der Funktion =DBRW( beginnen !
Salut, NoNet

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige