PDA

Vollständige Version anzeigen : Wert aus einer Spalte durch einen anderen Wert ersetzen


simsima12
24.07.2012, 13:54
Hallo zusammen,

habe folgendes Problem:
Ich habe ein Workbook mit zwei Sheets(Sheet1 und Sheet2). In Sheet1 habe ich in den Spalten E die Produktbezeichnung und in G die zugehörige Name, in Sheet 2 hab ich die Spalte H mit den gleichen Einträgen wie spalte E. Nun soll jeder Eintrag in H mit E verglichen werden und wenn dieser mit einem Wert in Zeile i übereinstimmt dann soll der Wert aus Spalte G Zeile i übernommen werden. Also ersetzt man Werte aus E durch die zu H zugehörigen Werte aus G.

Da diese Funktion öfters duchgeführt werden soll, will ich dies nicht mittels der SVERWEIS- Funktion lösen, sondern mit einem Macro-Code.
Kann mir da jemand bitte helfen

IngGi
24.07.2012, 17:13
Hallo simsima12,

die SVERWEIS-Formel lässt sich auch per VBA nutzen. Beispiel:

<table border="1" cellspacing="0" cellpadding="0" style="font-family:Arial,Arial; font-size:11pt; background-color:#ffffff; padding-left:2pt; padding-right:2pt; "> <colgroup><col style="font-weight:bold; width:30px; " /><col style="width:88px;" /><col style="width:88px;" /><col style="width:88px;" /><col style="width:88px;" /></colgroup><tr style="background-color:#cacaca; text-align:center; font-weight:bold; font-size:8pt; "><td >&nbsp;</td><td >A</td><td >B</td><td >C</td><td >D</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >1</td><td style="text-align:center; ">1</td><td style="text-align:center; ">h</td><td style="text-align:center; ">1</td><td style="text-align:center; ">h</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >2</td><td style="text-align:center; ">2</td><td style="text-align:center; ">z</td><td style="text-align:center; ">4</td><td style="text-align:center; ">j</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >3</td><td style="text-align:center; ">3</td><td style="text-align:center; ">u</td><td style="text-align:center; ">7</td><td style="text-align:center; ">d</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >4</td><td style="text-align:center; ">4</td><td style="text-align:center; ">j</td><td >&nbsp;</td><td >&nbsp;</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >5</td><td style="text-align:center; ">5</td><td style="text-align:center; ">n</td><td >&nbsp;</td><td >&nbsp;</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >6</td><td style="text-align:center; ">6</td><td style="text-align:center; ">m</td><td >&nbsp;</td><td >&nbsp;</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >7</td><td style="text-align:center; ">7</td><td style="text-align:center; ">d</td><td >&nbsp;</td><td >&nbsp;</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >8</td><td style="text-align:center; ">8</td><td style="text-align:center; ">e</td><td >&nbsp;</td><td >&nbsp;</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >9</td><td style="text-align:center; ">9</td><td style="text-align:center; ">r</td><td >&nbsp;</td><td >&nbsp;</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >10</td><td style="text-align:center; ">10</td><td style="text-align:center; ">s</td><td >&nbsp;</td><td >&nbsp;</td></tr></table><br /><table style="font-family:Arial; font-size:10pt; border-style: groove ;border-color:#00ff00;background-color:#fffcf9; color:#000000; "><tr><td ><b>Formeln der Tabelle</b></td></tr><tr><td ><table border = "1" cellspacing="0" cellpadding="2" style="font-family:Arial; font-size:9pt;"><tr style="background-color:#cacaca; font-size:10pt;"><td >Zelle</td><td >Formel</td></tr><tr><td >D1</td><td >=SVERWEIS(C1;$A$1:$B$10;2;0)</td></tr><tr><td >D2</td><td >=SVERWEIS(C2;$A$1:$B$10;2;0)</td></tr><tr><td >D3</td><td >=SVERWEIS(C3;$A$1:$B$10;2;0)</td></tr></table></td></tr></table> <br /><br /><span style="font-family:Arial; font-size:9pt; font-weight:bold;background-color:#ffffff; color:#000000; ">Excel Tabellen im Web darstellen &gt;&gt; </span><a style ="font-family:Arial; font-size:9pt; color:#fcf507; background-color:#800040; font-weight:bold;" href="http://www.excel-jeanie-html.de" target="_blank"> Excel Jeanie HTML 4 </a>

<blockquote><div style='background-color: #F2F2FF; border: 1px solid #3300B2; padding: 0px 24px;'><pre style='font-size: 12px; padding: 0px 10px;'><span style="color: #0000FF">Sub</span> sverweis<span style='color: #B200CC;'>(</span><span style='color: #B200CC;'>)</span><br><br>Range<span style='color: #B200CC;'>(</span><span style='color: #CC9900;'>"D1"</span><span style='color: #B200CC;'>)</span>.Formula = <span style='color: #CC9900;'>"=VLOOKUP(C1,$A$1:$B$10,2,0)"</span><br>Range<span style='color: #B200CC;'>(</span><span style='color: #CC9900;'>"D1:D"</span> & Cells<span style='color: #B200CC;'>(</span>Rows.Count, <span style='color: #CC9900;'>"C"</span><span style='color: #B200CC;'>)</span>.End<span style='color: #B200CC;'>(</span>xlUp<span style='color: #B200CC;'>)</span>.Row<span style='color: #B200CC;'>)</span>.FillDown<br><br><span style="color: #0000FF">End </span><span style="color: #0000FF">Sub</span><br></pre><hr style='color: #3300B2; background: #3300B2; height: 1px;'><p style='font-size: 8px; font-family: Verdana; text-align: right;'>VBA/HTML - CodeConverter für Excelforen<br>AddIn für Excel XP+2003 - komplett in VBA geschrieben von IngGi<br>Anbindung an VBE-Kontextmenü geklaut ;-) bei: <a href='http://www.cpearson.com/excel/VbeMenus.aspx'>http://www.cpearson.com/excel/VbeMenus.aspx</a></p></div></blockquote>

Gruß Ingolf

simsima12
27.07.2012, 11:32
Vielen danke für die Antwort.
Leider will ich die Einträge aus einem anderen Sheet und die Einträge aus Spalte H sollten durch die Werte in Spalte G ersetzt werden. Daher habe ich den code wie folgt umgewandelt:

Sub Name()

'Workbooks("Dateiname.xls").Activate
Sheets("Sheet1").Select
Range("H2").Formula = "VLOOKUP(E2,Worksheets("Sheet2").Range("E2:G19",3,0)"
Range("H: H" & Cells(Rows.Count, "E").End(xlUp).Row).FillDown
End Sub


Dieser Code geht aber nicht Syntaxfehler. Kann mir bitte jemand helfen

simsima12
27.07.2012, 11:43
Es wird "Sheet2" als Fehler angezeigt.
Ich versteh den fehler leider nicht

IngGi
27.07.2012, 12:10
Hallo simsima12,

so müsste es gehen:

<blockquote><div style='background-color: #F2F2FF; border: 1px solid #3300B2; padding: 0px 24px;'><pre style='font-size: 12px; padding: 0px 10px;'>Range<span style='color: #B200CC;'>(</span><span style='color: #CC9900;'>"H2"</span><span style='color: #B200CC;'>)</span>.Formula = <span style='color: #CC9900;'>"=VLOOKUP(E2,Sheet2!E2:G19,3,0)"</span><br>Range<span style='color: #B200CC;'>(</span><span style='color: #CC9900;'>"H2:H"</span> & Cells<span style='color: #B200CC;'>(</span>Rows.Count, <span style='color: #CC9900;'>"E"</span><span style='color: #B200CC;'>)</span>.End<span style='color: #B200CC;'>(</span>xlUp<span style='color: #B200CC;'>)</span>.Row<span style='color: #B200CC;'>)</span>.FillDown<br></pre><hr style='color: #3300B2; background: #3300B2; height: 1px;'><p style='font-size: 8px; font-family: Verdana; text-align: right;'>VBA/HTML - CodeConverter für Excelforen<br>AddIn für Excel XP+2003 - komplett in VBA geschrieben von IngGi<br>Anbindung an VBE-Kontextmenü geklaut ;-) bei: <a href='http://www.cpearson.com/excel/VbeMenus.aspx'>http://www.cpearson.com/excel/VbeMenus.aspx</a></p></div></blockquote>

Gruß Ingolf

simsima12
30.07.2012, 12:50
passt vielen dank