Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Excel Makro: Falls Suchkriterium in Tabelle, ersetze Wert mit wert aus Tabelle
#1
Hallo,

folgende Situation:

Zwei Tabellen: Tabelle A enthält falsche Werte, Tabelle B enthält die richtigen Werte für die Stellen, wo in Tabelle A falsche Werte eingetragen sind. Da Tabelle A ständig geändert wird, würde ich die Situation gerne mit einem Makro lösen. Sodass die Werte automatisch ausgetauscht werden, für den Fall, dass in Tabelle B ein richtiger Wert vorliegt.

Code:
Sub neu()
   If ActiveCell.FormulaR1C1 = _
       "COUNTIF(Umsatzexperten!R[-4]C[-14]:R[10]C[-14],Daten!RC[-1])" Then
       ActiveCell.FormulaR1C1 = _
       "=VLOOKUP(RC[-1],Umsatzexperten!R[-4]C[-14]:R[10]C[-13],2,FALSE)"
   End If
End Sub
 Zur Erklärung:
Die Tabelle "Umsatzexperten" enthält die korrigierten Werte. Der Aufbau der Tabelle ist immer so, dass in der linken Spalte das Suchkriterium ist und in der rechten der Wert.

Leider tut sich gar nichts wenn ich das Makro ausführe. Hab ich einen Fehler gemacht oder ist der ganze Ansatz falsch? Ich bin blutiger Anfänger :D
Antworten Top
#2
Hallo,

Dein Makro ersetzt in der Aktiven Zelle die in der Bedingung enthaltene Formel, wenn sie drin steht.
Bist Du gerade in X1000 und dort steht nix oder was anderes, dann passiert nix.

Du schreibst
Code:
Tabelle A enthält falsche Werte

Mit dem Code tauschst Du, wie gesagt, eine Formel aus. Als Bedingung steht da nicht, dass es um einen Wert geht, sondern, wie gesagt, um eine Formel. Steht also ein Wert und keine Formel in der Zelle, passiert nix.

Wie erkennst Du denn, dass es sich um falsche Werte handelt?
Durch welchen Wert willst Du denn einen falschen Wert ersetzen?

Wenn Durch diese Formel
"=VLOOKUP(RC[-1],Umsatzexperten!R[-4]C[-14]:R[10]C[-13],2,FALSE)"
richtige Werte geholt werden, kannst Du die nicht in allen Zellen einsetzen?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
(23.03.2017, 19:56)schauan schrieb: Hallo,

Dein Makro ersetzt in der Aktiven Zelle die in der Bedingung enthaltene Formel, wenn sie drin steht.
Bist Du gerade in X1000 und dort steht nix oder was anderes, dann passiert nix.

Du schreibst
Code:
Tabelle A enthält falsche Werte

Mit dem Code tauschst Du, wie gesagt, eine Formel aus. Als Bedingung steht da nicht, dass es um einen Wert geht, sondern, wie gesagt, um eine Formel. Steht also ein Wert und keine Formel in der Zelle, passiert nix.

Wie erkennst Du denn, dass es sich um falsche Werte handelt?
Durch welchen Wert willst Du denn einen falschen Wert ersetzen?

Wenn Durch diese Formel
"=VLOOKUP(RC[-1],Umsatzexperten!R[-4]C[-14]:R[10]C[-13],2,FALSE)"
richtige Werte geholt werden, kannst Du die nicht in allen Zellen einsetzen?

Es handelt sich um eine Umfrage:
In der Auswertung sieht das folgendermaßen aus: Links der Name, rechts daneben das Geburtsjahr
In der Umfrage haben aber nicht alle geschafft ihr Geburtsdatum ordnungsgemäß einzugeben...mal mit datum, mal mit irgendwelchen Kommentaren...
Nun in der zweiten Tabelle (B) habe ich eine Liste angefertigt, in der die Namen aufgeführt sind, die in der Auswertung fehlerhaft sind und ein richtiges Jahr eingetragen... da immer wieder neue Umfragen eintrudeln, ändert sich Tabelle A permanent, dabei werden alle werte aktualisiert...auch die falschen daher brauche ich ein makro das ungefähr folgendes macht:

schaue in tabelle A nach allen Namen, überall wo der Name in Tabelle A und B gleich ist, nimm das geburtsjahr, dass in tabelle B steht und setzte es in tabelle A neben den namen ein
Antworten Top
#4
Hi,
hier mit Hilfsspalte:
A
ABCD
2Name1Vorname1Name1Vorname11970
3Name2Vorname2Name2Vorname2
4Name3Vorname3Name3Vorname3

verwendete Formeln
Zelle Formel Bereich N/A
D2=SVERWEIS($C2;B!$C$1:$D$2000;2;0)
C2:C4=A2&B2


B
ABCD
2Name1Vorname1Name1Vorname11970

verwendete Formeln
Zelle Formel Bereich N/A
C2=A!A2&A!B2
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 19.08 einschl. 64 Bit



oder so, ohne Hilfsspalte in A:

A
ABC
2Name1Vorname11970
3Name2Vorname2#NV
4Name3Vorname3#NV

verwendete Formeln
Zelle Formel Bereich N/A
C2:C4=VERWEIS(A2&B2;B!C2: D3)
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 19.08 einschl. 64 Bit

Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste