Anzeige
Archiv - Navigation
960to964
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
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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)

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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige