PDA

Vollständige Version anzeigen : Namen suchen und Werte einfügen


franksen
04.05.2009, 16:28
Liebes Forum,

ich habe folgendes Problem. Ich muss jeden Monat Daten aus 4 verschiedenen Tabellen in einer Stammtabelle zusammenfügen. Alle haben die Spalte Namen gemeinsam...allerdings stehen in den anderen Tabellen Namen, die ich nicht brauche. Deswegen brauche ich nur zu den in der Stammtabelle vorhandenen Namen die Daten. Aber wie kann ich suchen?!

Kann mir jemand eine erste Hilfe geben?
Danke und Gruß
franksen

BoskoBiati
04.05.2009, 16:45
Hallo franksen,

so vielleicht:

franksen
04.05.2009, 16:57
kann man das auch per vba? muss diese aktion alle 4 wochen ausführen und die richtige tabelle ist 100 Zeilen und 15 Spalten groß....

BoskoBiati
04.05.2009, 17:04
Hallo franksen,

geht mit Sicherheit. Wäre wohl kein Problem sowas zu bauen. Frage ist, wenn das 4Tabellen sind, wie soll das mit den 15Spalten gestaltet sein? Muster?

franksen
04.05.2009, 17:13
Letztendlich wie das Muster nur eben in anderen Mappen. Brauche von Mappe 2 z.B nur Spalte 4 und 5 und von Mappe 3 die Spalte 6 und 7. Per Sverweis geht das, ich hatte die Vorstellung, dass er in der Stammtabelle schaut welcher Name und dann dazu die Infos aus den anderen Mappen holt.

BoskoBiati
04.05.2009, 19:05
Hallo franksen,

anhand der Daten von Dir mal ein Entwurf.

franksen
05.05.2009, 08:34
In der Stammtabelle stehen Namen und Überschriften. In den Datentabellen stehen viele Namen und viele Überschriften. Schön wäre, wenn er sich zu den jeweiligen Namen die Daten (farbig) holt...

Danke und Gruß
franksen

BoskoBiati
05.05.2009, 11:17
Hallo franksen,

wenn Du die Daten aus den einzelnen Spalten ziehen willst, dann bleibt nichts anderes als die einzelnen Zellen direkt anzusprechen:


If wks.Cells(lozeile2, 1) = Cells(loZeile, 1) Then
Cells(loZeile, loSpalte1) = wks.Cells(lozeile2, intA * 2)
Cells(loZeile, loSpalte1 + 1) = wks.Cells(lozeile2, intA * 2 + 1)

End If


In den rotmarkierten Zeilen ist der Übertrag der Werte enthalten. Das müstte dann entsprechend aufbereitet werden, wobei es sehr aufwendig wird, wenn Du aus vielen Tabellen viele unterschiedliche Zellen ansprechen willst, da die Schleife dann nicht mehr funktioniert.

franksen
05.05.2009, 11:35
Hallo Edgar,

es sind insgesamt 15 Spalten aus 3 Tabellen. Den Rest könnte ich dann anpassen. Wieviel kann eine Schleife denn schaffen?
Habe es ja statisch gehabt, dass er immer zweite Spalte der Tabelle 1 in die Stammtabelle kopiert, aber da die Namen nicht in allen Tabellen gleich sind...

Gruß
Franksen

BoskoBiati
05.05.2009, 11:43
Hallo Franksen,

eine Schleife schafft fast beliebig viele Spalten, aber es müssen immer die gleichen Spalten angesprochen werden. Wenn ich in jeder Tabelle andere Spalten ansprechen will, muß ich das ohne Schleife machen. Kann ich aber erst heute Abend.

BoskoBiati
05.05.2009, 16:44
Hallo Franksen,

die Geschichte sieht ja schon wieder anders aus.
1. Frage: Sind das unterschiedliche Dateien oder befinden sich die Tabellen alle in einer Datei? Macht schon einen gewaltigen Unterschied.
2. Frage: Welche Daten sollen denn kopiert werden? Ich zähle in 3 Dateien 8 Spalten und nicht 15 Spalten.
3. Frage: Sind die Spalten hintereinander oder, wie Du weiter oben erwähntest, mal die 3. oder 5. Spalte? Das ist für die Erstellung enorm wichtig.
Die Informationen solltest Du mal verfügbar machen.
Hast Du eigentlich den Code aus meinem Muster mit einer Kopie Deiner Tabelle probiert?

Ob das heute noch was wird ist sehr fraglich.

franksen
05.05.2009, 16:53
Nabend,

1. ja, es sind insgesamt 4 Dateien. Die "Stammtabelle" und 3 Tabellen mit Informationen. Sorry für die falsche Erklärung.
2. Es sollen immer die gleichen Daten kopiert werden (also immer aus den gleichen Spalten pro Datei, je Datei sind die Spalten unterschiedlich. Wichtig ist, der er den Namen aus der Stammtabelle als Verweis nimmt und dann dazu die jeweiligen Sachen kopiert.
3. Leider sind die Spalten nicht hintereinander.
4. Sicher habe ich den Code ausprobiert, aber leider nicht so abwandeln können, dass er mir gehorcht..
5. Ich habe es nicht eilig. Kein Stress. Habe wie gesagt eine statische Lösung, nur müssen dazu immer die richtigen Namen da stehen, sonst gibt es falsche Zuordnungen....

Danke und Gruß
Franksen

BoskoBiati
05.05.2009, 17:05
Hallo Franksen,

also immer aus den gleichen Spalten pro Datei, je Datei sind die Spalten unterschiedlich
was den nun? gleiche Spalten oder unterschiedliche?
Also: wie heißen die 4 Dateien?
welche Spalten aus welcher Datei werden kopiert?

franksen
05.05.2009, 17:25
In der Datei A immer die Spalte x und y, in der Datei B immer die Spalte A und D..........reicht die Musterdatei dazu nicht aus?

Hallo Franksen,


was den nun? gleiche Spalten oder unterschiedliche?
Also: wie heißen die 4 Dateien?
welche Spalten aus welcher Datei werden kopiert?

franksen
06.05.2009, 13:16
hallo,

habe es mit makrorekorder und sverweis hinbekommen.
habe nur noch eine sache nicht hinbekommen. am ende soll er einige funktionen einfügen. da die liste aber in der länge varieren kann, weiss ich nicht, wie ich es vba mäßig beschreibe.

Mit

Dim lngLast
lngLast = Cells(Rows.Count, 1).End(xlUp).Row
Range("A" & lngLast).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "Summe"

und jetzt brauche ich z.b die Summe der Zellen b2-b IngLast?!? wie muss das dann in vba code heißen?

Danke und Gruß
Franksen

jinx
06.05.2009, 16:11
Moin, franksen,

mein Vorschlag (ungetestet):
Dim lngLast As Long
Const cstrSPALTE As String = "B"

lngLast = Cells(Rows.Count, cstrSPALTE).End(xlUp).Row
Cells(lngLast + 1, cstrSPALTE).Offset(1, 0).Formula = "=Sum(B2:B" & lngLast & ")"

franksen
06.05.2009, 16:16
funktioniert einwandfrei, danke!