PDA

Vollständige Version anzeigen : Sverweis funktioniert nur bedingt


Gerhard1959
22.11.2013, 00:11
Hi!
Nachdem ich kein so super Programmierer bin muss ich mich an die Gilde der schlauen wenden.
Ich hab in meinem Makro folgenden Code:

#
Dim LoLetzte As Long
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count)
Range("g" & LoLetzte + 2).Formula = "=VLOOKUP(R5C4,Auswerten!R34C1:R45C2,2,TRUE)"

die dritte Zeile ist ein Sverweis in dem er aus der aktuellen Tabelle eine Wert ausliest und den in der Tabelle "Auswerten" in der Matrix vergleicht und einen Wert aus der Spalte 2 wieder zurück gibt.
Das funktioniert nur bedingt.
kann mir hier jemand helfen?

Danke und Schönen Tag

Hasso
22.11.2013, 06:29
Hallo Gerhard,Das funktioniert nur bedingt.ist als Fehlerbeschreibung nicht sehr aussagekräftig. Könntest du das bitte präzisieen?

GMG-CC
22.11.2013, 08:08
Hallo Gerhard,

ist der Zielbereich (1. Spalte) in Tabelle "Auswerten" aufsteigend sortiert?

Gerhard1959
22.11.2013, 11:26
Guten Tag!

Ich versuche es genauer zu beschreiben. Ich habe 2 Tabellen in meiner Zeitberechnung 1. "Auswerten" 2. "Zeitabrechnung".
In der Tabelle "Zeitabrechnung" suche ich in der Spalte G die letzte ausgefüllte Zeile, - ist hier die Summenzeile,- gehe eine Zeile tiefer und vergleiche dann den in der Tabelle "Zeitabrechnung" stehenden Wert (Zelle D5 = "Monat") mit dem in der Tabelle "Auswerten" Zeilen A34 bis A45 (hier stehen auch die Monate) stehenden Wert und übertrage den Wert der Tabelle "Auswerten" Spalte 2 in die Tabelle "Zeitabrechnung".
Und hier kommt immer ein "NV".
Hier beachte ich wahrscheinlich wieder mal irgendetwas nicht. KA
lg
Gerhard

Gerhard1959
22.11.2013, 11:29
Hallo Günther!
In der Tabelle "Auswerten" stehen in der Spalte "A" die Monate und die sind aufsteigend sortiert. Ich versuche mit dem Sverweis den neben den Monaten stehenden Wert auszulesen (sind in diesem Fall sie Sollstunden).
lg
Gerhard

Superingo2
22.11.2013, 11:45
Hallo Gerhard,

ist denn das Format aus Zelle D5 mit den Formaten aus A34:A45 idententisch?
Eine Zahlenwert kann nicht in Texten gefunden werden und andersherum.

LG Ingo

Hasso
22.11.2013, 11:48
Hallo Gerhard,

jetzt hat wieder das beliebte Frage-und-Antwort-Spiel begonnen.

Mein immer wieder gerne gegebener Tipp: Das Hochladen einer Beispieldatei, gerne auch mit anonymisierten Daten, in der das Problem und das gewünschte Ergebnis dargestellt werden, erhöht die Aussicht auf eine hilfreiche Antwort ungemein!
Ich habe keine Lust, nach deiner Fragestellung selbst eine Datei zu erstellen, wenn diese bei dir schon existiert.

Gerhard1959
22.11.2013, 12:59
Hi Hasso!
Habe eine Beispieldatei hochgeladen.

lg
Gerhard

Superingo2
22.11.2013, 13:14
Hallo Gerhard,

schreibe anstatt "wahr", "falsch" in Deinen Sverweis, dann funktioniert er auch.
Buchstaben sind keine Werte, somit kann der wahre Sverweis auch nichts nächst größeres finden.

LG Ingo

Gerhard1959
22.11.2013, 15:13
Hi Ingo!
Danke für deinen Rat!
Ich habe die Zeile in der Programmierung von

Range("g" & LoLetzte + 2).Formula = "=VLOOKUP(R5C4,Auswerten!R34C1:R45C2,2,WAHR)"

auf

Range("g" & LoLetzte + 2).Formula = "=VLOOKUP(R5C4,Auswerten!R34C1:R45C2,2,FALSCH)"

geändert.

Wenn ich die Zelle ansehe in der ich die Formel reinschreiben lasse steht da folgendes:

=SVERWEIS($D$5;Auswerten!$A$34:$B$45;2;'falsch')

Jetzt schreibt er statt #NV nur #NAME. Ich hab hier sicherlich ein Problem mit dem Format. Ich kann das aber nicht finden. Bin anscheindend zu blöd dazu.


lg
Gerhard

Superingo2
22.11.2013, 15:17
Hallo Gerhard,

dann schreibe anstatt "falsch" mal die Null "0".

LG Ingo

Gerhard1959
22.11.2013, 15:47
Hallo Ingo!

Ich habe die "0" und auch "false" in meinem Makro ausprobiert.

In die Zelle überträgt das Makro dann folgendes:

bei false

=SVERWEIS($D$5;Auswerten!$A$34:$B$45;2;FALSCH)

bei 0

=SVERWEIS($D$5;Auswerten!$A$34:$B$45;2;0)

beides funktioniert hervorragend.


Kannst du mir sagen warum das so ist? Das würde ich gerne verstehen.

Danke für deine Hilfe.
lg
Gerhard

GMG-CC
22.11.2013, 20:16
Moin,

Hinweis zu #10:
Wenn du per VBA eine Formel in die Tabelle eintragen willst wäre in diesem Fall entweder die US-Schreibweise TRUE/FALSE korrekt gewesen oder du schreibst FormulaLocal, dann erkennt Excel auch WAHR/FALSCH als Logik-Werte an und wandelt sie nicht in Text um.

Gerhard1959
22.11.2013, 23:52
Hallo Günther!

Danke für deinen Rat! Es funktioniert super. Ich habe alle Möglichkeiten die Excel hier bietet und ihr mir super beschrieben habt ausprobiert und ich glaube jetzt verstehe ich diese Formeln um einiges besser.
Danke jedenfalls an Alle für die ausgezeichnete Hilfe.
lg
GErhard