Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formelergebnis prüfen bevor Formel eingefügt wird

Formelergebnis prüfen bevor Formel eingefügt wird
12.03.2008 20:59:39
Hartwig
Hallo zusammen!
Ich möchte mit einem Makro einen sverweis in jede Zelle einer range einfügen, allerdings nur dann, wenn der sverweis einen Wert (also nicht #NV oder „“) liefert. Also im Prinzip geht es darum, dass das Makro erst das Ergebnis prüft, bevor es die Formel einfügt.
Es soll auch nicht hinterher eventuelle Fehler (also #NV etc.) ausbessern, sondern gar nicht erst ausführen.
Hintergrund ist folgender: In der Datei, in welche das Makro soll, werden alle Projekte, die in einem Jahr laufen oder gelaufen sind gepflegt. Die Datei, auf welche der sverweis verweist, ist ein Export aus einer anderen Anwendung und enthält nur Projekte, die aktuell noch laufen. Daten von Projekten, die in diesem Jahr beendet wurden sind also nicht mehr enthalten.
Hier noch mein derzeitiger Code von den sverweis in gekürzter Form (sind sonst noch eine iserror- und eine weitere wenn-Funktion enthalten):
Set ende = Range("b65536").End(xlUp)
Sheets("Blatt1").Select
Range("ah5", "Ah" & ende.Row).Select
Selection.FormulaR1C1 = _
...
Vielen Dank schon mal,
Hartwig

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formelergebnis prüfen bevor Formel eingefügt
12.03.2008 21:43:13
Uwe
Hi Hartwig,
also auf die Schnelle fällt mir dazu die Funktion:
Application.WorksheetFunction.VLookup
ein.
Wenn Du da Deinen SVERWEIS nachbildest und das ganze vor Selection.FormulaR1C1 mit:
If Not IsError(Application.WorksheetFunction.VLookup(........) Then
abfragst, könnte es vielleicht hinhauen!?
Gruß
Uwe
(:o)

Anzeige
AW: Formelergebnis prüfen bevor Formel eingefügt wird
12.03.2008 22:11:37
Daniel
Hi
prinzipiell halte ich nichts davon, Formelreihen lückenhaft aufzufüllen, weil sich die Datenbasis ja ändern könnte, ohne daß dein Makro drüber läuft, und dann würde der #NV-Fehler plötzlich wieder auftauchen.
Andererseits, wenn das Makro sowieso immer laufen muss, könnte man ja auch gleich die Fixwerte eintragen (bzw die Formeln reinrschreiben und gleich danach durch die Werte ersetzen)
aber egal wie du es machst, die Fehlerprüfung gehört meiner Ansicht nach in die Formel.
ich verwende dazu meist die Funktion ZÄHLENWENN, um abzuprüfen, ob der Suchberiff in der SVERWEIS-Matrix überhaupt vorhanden ist:

=WENN(ZÄHLENWENN(X:X;a1)=0;"";SVERWEIS(a1;X:Z;3;0))


solltest du es trotzdem in das Makro einbauen wollen, dann steht dir die ZählenWenn-Funktion als WORKSHEETFUNCTION.COUNTIF(Range("X:X"), Range("A1")) zur verfügung.
Gruß, Daniel

Anzeige
AW: Formelergebnis prüfen bevor Formel eingefügt w
12.03.2008 22:13:31
Worti
Hallo Hartwig, nicht ganz so wie gewünscht aber das Ergebnis ist das, was du möchtest:


Sub FuegeSVerweisEin()
    Dim lngEnde As Long
    Dim rngC As Range
    lngEnde = Range("C65536").End(xlUp).Row
    'Eintragen SVERWEIS-Formel in Spalte D mit Suchwert aus in Spalte C und Suchmatrix A1:B10
    'Das muß angepasst werden
    For Each rngC In Range("C1:C" & lngEnde)
        rngC.Offset(0, 1).Formula = "=VLookup(C" & rngC.Row & ", A1:B100, 2, 0)"
    Next rngC
    'Löschen der Formel, die #NV liefern
    For Each rngC In Range("D1:D" & lngEnde)
        If IsError(rngC.Value) Then
           rngC.ClearContents
        End If
    Next rngC
End Sub


Gruß Worti
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige