Clever-Excel-Forum

Normale Version: Makro um Wert aus Zelle in anderes Datenblatt kopieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe clever-excel-forum Mitglieder,

Ich sitze gerade vor einem sehr großen Problem. Das ich ein totaler VBA-Anfänger bin ist für meine aktuelle Situation auch nicht wirklich hilfreich.

Ich bin gerade dabei eine Exceldatei für meine Kollegen auf der Arbeit zu verändern. Manche Sachen habe ich auch schon mit Makros hinbekommen. Jetzt hänge ich aber total fest.

In der Excel-Tabelle befinden sich mehrere Tabellenblätter: 

1) Ein Tabellenblatt, welches sich "Keywordmap" nennt, dort befinden sich verschiedene rankings von Wörtern. Die rankings ändern sich monatlich. Die monatlichen Rankings bekomme ich aus einem anderen Tabellenblatt.

2) Ein zweites Tabellenblatt, welches sich z.B. DE nennt. Dort befindet sich eine Tabelle mit Keywörtern und den Monaten (Januar-Dezember)

3) Ich möchte nun ein Makro erstellen, das aus der Tabelle "DE" die Keywörter aus Spalte A nimmt, in dem Tabellenblatt "keywordmap" Spalte C nach diesen Wörtern sucht und dann die Werte aus dem Tabellenblatt "keywordmap" Spalte H in die nächste leere Spalte in Tabellenblatt "DE" kopiert.

4) Da wir verschiedene Länder haben (nicht nur DE, sondern auch CH,AT,IT, etc) war meine Überlegung entweder ein Makro für jedes Land zu erstellen oder ein Makro welches immer das aktive Tabellenblatt nimmt.

Irgendwie kommt mir das so vor als wenn ich gerade versuche eine "eierlegende Wollmilchsau" als Makro zu erstellen. Falls dies so nicht möglich ist, vielleicht gibt es dann Tipps um das in mehrere Makros zu schreiben.


Ich danke jetzt schon einmal allen für hilfreiche Tipps und Informationen =)

Euer Teq
Hi,

am Besten lädst Du mal ein Beispiel mit EXAKT Deinen Koordinaten hoch - inkl. manuell eingetragener Wunschergebnisse.
Hallo Boris,

Vielen Dank für deine schnelle Antwort. Bitte verzeih meine späte Antwort. Ich bin gestern in die Heimat gefahren und war dann nicht mehr an meinem Rechner.

Ich habe jetzt einmal eine Beispieltabelle hochgeladen. 

Die Tabelle im Tabellenblatt "Keywordmap" holt sich die Informationen aus den 3 Datenblättern (7 days / 28 days / 3 months). Die Informationen in den 3 Datenblättern ändern sich monatlich.  Dadurch ändern sich dann auch die Werte bei den Durchschnittspositionen. 

Da sich die Werte bei den Durchschnittspositionen ändern kann ich ja leider keine einfache Excelformel benutzen und auf die Spalte H bei keywordmap verweißen.

Ich hoffe ich habe dies so halbwegs gut erklärt. Bei Fragen stehe ich immer gerne zur Verfügung.

Noch einmal ganz ganz vielen lieben Dank für eure Hilfe und ein wunderschönes Wochenende euch allen!

Liebe Grüße,

Teq
Hallöchen Teq,

man kann so was natürlich voll ausprogrammieren, ich könnte mir ein einfach zu programmierende Variante vorstellen. Du könntest in der nächsten leeren Spalte SVERWEIS nutzen und anschließend mit Kopieren und Einfügen die Formel durch die Werte ersetzen. Den Code dazu brauchst Du nicht mal programmieren, da reicht aufzeichnen.

Es bliebe z.B. die Frage, ob Du die nächste freie Spalte herausfinden kannst. Der Code dazu wäre im Prinzip

lNextCol=Cells(1,Columns.Count).End(xlToRight).Column+1

(sucht in Zeile 1)

Das Land könntest Du z.B. über ActiveSheet.Name abrufen. Wenn Du mit dem aktiven Blatt arbeitest, müsstest Du aber z.B. auf jedem Blatt einen Button erstellen und dem Makro zuweisen. Du könntest das auch von Deiner Zusammenfassung aus machen und das Land mit einer Inputbox abfragen

strCountry = InputBox("Eingabe: ", "Landeswahl: ", "DE")

Die Ergebnisse der beiden Codes kannst Du dann zur Änderung des SVERWEIS nutzen
Aufgezeichnet könnte das so aussehen:

Range("H1").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC9,DE!R1C1:R1C2,2,FALSE)"

und geändert

Range(Cells(1,lNextCol),Cells(100,lNextCol)).FormulaR1C1 = "=VLOOKUP(RC9," & strCountry & "!R1C1:R1C2,2,FALSE)"

- einen Bereich kann man auch mit Cell-Angaben definieren statt mit konkreten Zellnamen. Die 1 und die 100 passt Du entsprechend Deinen Zeilen an.
- wenn da zuweilen #NV raus kommen kann dann kannst Du zur Vermeidung bei der Aufzeichnung auch WENNFEHLER um den SVERWEIS bauen.