Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel - Auslesen von Daten und Einfügen in anderes Arbeitsblatt

Frage Microsoft Microsoft Office

Mitglied: StephanAmount

StephanAmount (Level 1) - Jetzt verbinden

04.03.2010, aktualisiert 08:35 Uhr, 7035 Aufrufe, 21 Kommentare

Hallo,
bin neu hier und habe ein Problem bezüglich einer Automation für Excel. Wäre euch für jede Hilfe dankbar, bin eigentlich einigermaßen IT-erfahren habe nur die letzten Jahre wenig in der Richtung gemacht.

Problem ist folgendes:
Es sollen aus 2 sich von der Zeilenanzahl verändernden Excelblättern die immer selben Daten ausgelesen werden und in ein drittes Datenblatt eingefügt werden.
Dabei geht es um einen Lieferantenvergleich, Problem dabei ist, da es sich um Gemüse/Obst handelt, das immer mal wieder Artikel dazu kommen und auch wieder rausfallen, ausgelesen soll aber nur der Stammkern, der immer in den beiden Tabellen vorkommt, werden. Dieser ist auch anhand sich nicht verändernder Artikelnummern identifizierbar, ich weiß leider nur nicht wie ich Excel beibringe auf die Artikelnummern, also den Wert und nicht auf Zelle/Spalte einzugehen, weil sonst würde ja der Sverweis gehen.
Natürlich soll auch der zur Artikelnummer gehörende Preis übertragen werden.

Hoffe ich habe mich verständlich ausgedrückt.

Danke für jede Hilfe

Stephan
Mitglied: StefanKittel
04.03.2010 um 08:49 Uhr
Moin,

klingt nach einem Job für Mister VBA.
Kennst Du Dich mit VBA aus?

Stefan
Bitte warten ..
Mitglied: StephanAmount
04.03.2010 um 08:53 Uhr
Hallo,

danke für die schnelle Antwort. Zu deiner Frage, sagen wir mal so, ich habe Grundkenntnisse in VBA, aber ich hab leider seit ca. 4 1/2 Jahren nix mehr in VBA gemacht. Abschreiben kann ich aber

Grüße Stephan
Bitte warten ..
Mitglied: 76109
04.03.2010 um 10:12 Uhr
Hallo StephanAmount!

Probiers mal damit:
01.
Option Explicit 
02.
Option Compare Text 
03.
 
04.
Const SheetNeu = "Tabelle1"     'Tabellenname Neu 
05.
Const SheetAn1 = "Tabelle2"     'Tabellenname Artikel 1 
06.
Const SheetAn2 = "Tabelle3"     'Tabellenname Artikel 2 
07.
 
08.
Const StartZeile = 2            'Startzeile Tabelle1 
09.
 
10.
Const SpalteArtNr = 1           'Spalte Tabelle2/3 Artikel-Nummer 
11.
Const SpalteNamen = 2           'Spalte Tabelle2/3 Artikel-Bezeichnung 
12.
Const SpaltePreis = 3           'Spalte Tabelle2/3 Preis 
13.
 
14.
Const SpalteN1 = 1              'Spalte Tabelle2 Namen 
15.
Const SpalteA1 = 2              'Spalte Tabelle2 ArtNr 
16.
Const SpalteP1 = 3              'Spalte Tabelle2 Preis 
17.
Const SpalteA2 = 4              'Spalte Tabelle3 ArtNr 
18.
Const SpalteP2 = 5              'Spalte Tabelle3 Preis 
19.
 
20.
Sub InitTabelleNeu() 
21.
    Dim Wks0 As Worksheet, Wks1 As Worksheet, Wks2 As Worksheet 
22.
    Dim NextLine As Long, c As Range, i As Long 
23.
     
24.
    Set Wks0 = Sheets(SheetNeu) 
25.
    Set Wks1 = Sheets(SheetAn1) 
26.
    Set Wks2 = Sheets(SheetAn2) 
27.
     
28.
    NextLine = StartZeile 
29.
     
30.
    For i = StartZeile To Wks1.Cells(Rows.Count, SpalteNamen).End(xlUp).Row 
31.
        Set c = Wks2.Columns(SpalteNamen).Find(Wks1.Cells(i, SpalteNamen), LookIn:=xlValues, LookAt:=xlWhole) 
32.
        If Not c Is Nothing Then 
33.
            With Wks0 
34.
                .Cells(NextLine, SpalteN1) = Wks1.Cells(i, SpalteNamen) 
35.
                .Cells(NextLine, SpalteA1) = Wks1.Cells(i, SpalteArtNr) 
36.
                .Cells(NextLine, SpalteP1) = Wks1.Cells(i, SpaltePreis) 
37.
                .Cells(NextLine, SpalteA2) = Wks2.Cells(c.Row, SpalteArtNr) 
38.
                .Cells(NextLine, SpalteP2) = Wks2.Cells(c.Row, SpaltePreis) 
39.
                 NextLine = NextLine + 1 
40.
            End With 
41.
        End If 
42.
    Next 
43.
 End Sub
Wobei die Konstanten entsprechend angepasst werden müssen.

Den Quellcode im VB-Editor in ein Modul kopieren und mit <Extras><Makro><Makros><InitTabelleNeu> Makro starten.

Das Makro vergleicht die Namen der beiden Tabellen und bei Übereinstimmung, werden die entsprechenden Werte in die neue Tabelle geschrieben.

Gruß Dieter

[edit] geändert [/edit]
Bitte warten ..
Mitglied: StephanAmount
04.03.2010 um 10:28 Uhr
Hallo Dieter,

vielen Dank für das Script werde es nachher gleich mal testen und dir dann schreiben ob´s geklappt hat.

Beste Grüße aus München

Stephan

edit:

in dem Teil

Const SpalteArtNr = 1 'Spalte Artikelnummer
Const SpaltePreis = 2 'Spalte Preis (Aus Tabelle Artikel 2)

muss ich das nicht für Tabelle 1 und Tabelle 2 machen, war vielleicht von mir unverständlich ausgedrückt, die beiden Lieferanten haben verschiedene Artikelnummern, ich werde zu je einem Namen im zusammengefügten Sheet beide Artikelnummern angeben, also in der Art:
Name Art.Nr.L1 PreisL1 Art.Nr.L2 PreisL2

sorry danke
Bitte warten ..
Mitglied: 76109
04.03.2010 um 11:10 Uhr
Hallo StephanAmount!

Wie jetzt? Oben hast Du geschrieben, die Artikel wären anhand der Artikelnummer indentifizierbar?

Ich bin bei meinem Beispiel davon ausgegangen, das es zwei Tabellen gibt, in denen sich in den gleichen Spalten die Artikel-Nr. und der Preis befindet und wenn in beiden Tabellen die gleiche Artikenummer vorkommt, dann sollen diese in das neue Tabellenblatt übernommen werden. Wie auch immer, am sinnvollsten wäre es, wenn Du mal ein explizites Ist/Soll-Beispiel postest.

Grüße aus Mannheim

Dieter
Bitte warten ..
Mitglied: StephanAmount
04.03.2010 um 11:27 Uhr
Hallo Dieter,

entschuldige, ich meinte das so:
Tabelle 1 Lieferant 1:
Art Nr. Name Preis
123 TOMATE 1,50

Tabelle2 Lieferant 2:
Art.Nr Name Preis
789 TOMATE 1,80

zusammengefügte Tabelle 3:
Name ArtNr L1 Preis L1 ArtNr L2 Preis L2
TOMATE 123 1,50 789 1,80


Sorry das ich mich falsch ausgedrückt habe, Lieferant 1 und Lieferant 2 haben verschiedene Artikelnummern, diese ändern sich aber nicht, und ich schreibe beide Artikelnummern in mein Ziel Sheet, und so sollen dann die zwei Preise ins Ziel Sheet kommen.
Hoffen ich hab mich diesmal besser ausgedrückt.

Grüße Stephan
Bitte warten ..
Mitglied: StephanAmount
04.03.2010 um 11:32 Uhr
eins noch, via dem Attribut Tomate lässt es sich leider nicht identifizieren da die Lieferanten hier oftmals leicht abweichende Bezeichnungen haben, wie z.B Wassermelone - Melone, Wasser
Bitte warten ..
Mitglied: 76109
04.03.2010 um 12:26 Uhr
Hallo StephanAmount!

Aja, jetzt hab ich's auch verstanden, wobei mir nicht ganz klar ist, warum bei einem Lieferanten Tomaten die Bezeichnung Wassermelonen tragen

Code oben geändert.

Gruß Dieter
Bitte warten ..
Mitglied: StephanAmount
05.03.2010 um 09:57 Uhr
Tja, Wassermelonen und Tomaten ähneln sich manchmal

Auf jeden Fall:

ES FUNKTIONIERT!!!!

Vielen vielen Dank,
eine kleine letzte Frage habe ich aber noch, wenn des nicht geht auch net schlimm, aber Fragen kostet ja nix:
Wenn ich jetzt in Tabelle 1, also der wo alles zusammengefügt wird zwei Artikel nebeneinander machen möchte, damit die Liste nicht so lang wird, also Format:
Name Artnr1 P1 Artnr2 P2 Name Artnr1 P1 Artnr2 P2,
was müsste ich denn da bei deN Attributen ändern oder ist des net möglich, wäre nicht schlimm bin so schon sehr sehr glücklich

ein schönes Wochenende und Grüße aus dem sonnigen München

Stephan
Bitte warten ..
Mitglied: 76109
05.03.2010 um 11:02 Uhr
Hallo Stephan!

Wenn ich das richtig verstehe, dann meinst Du eine Art Zeilenumbruch. D.h. nur bis zu einer festgelegten Zeile und dann wieder oben ein paar Spalten weiter beginnen.

Mit ein paar zusätzlichen Codezeilen läßt sich das auch machen

Das Problem mit den unterschiedlichen Artikelbezeichnungen könnte man auch lösen und je nach Größenordnung eine Extra-Tabelle oder ein einfaches Text-Array verwenden. Oder eine komplette Liste in einer Extra-Tabelle?

Beispiel Tabelle:
A B
18 Tomaten Wassermelonen

Beispiel Array (pärchenweise):
GleicheArtikel = Array("Tomaten", "Wassermelonen", "Salat", "Grüne Blätter")

Machen kann man fast alles, die Frage ist dann immer nur DAS WIE

Wünsche auch ein schönes WE und Grüße aus Mannheim

Dieter
Bitte warten ..
Mitglied: StephanAmount
05.03.2010 um 12:04 Uhr
Hallo Dieter,

das mit den unterschiedlichen Artikelbezeichungen hab ich ganz einfach gelöst, ich hab die Bezeichnungsabfrage rausgenommen, da ich die Bezeichnung nur einmal vergebe in der Zieltabelle und diese nach dem Gusto des Küchenchefs aussehen soll

Nochmals vielen Dank, funktioniert wirklich ganz hervorragend



Beste Grüße

Stephan
Bitte warten ..
Mitglied: 76109
05.03.2010 um 13:26 Uhr
Hallo Stephan!

Hier der neue Code mit Zeilenumbruch:
01.
Option Explicit 
02.
Option Compare Text 
03.
 
04.
Const SheetNeu = "Tabelle1"     'Tabellenname Neu 
05.
Const SheetAn1 = "Tabelle2"     'Tabellenname Artikel 1 
06.
Const SheetAn2 = "Tabelle3"     'Tabellenname Artikel 2 
07.
 
08.
Const StartZeile = 2            'Zeile Starten Tabelle1 
09.
Const BreakZeile = 40           'Zeile Umbruch Tabelle1 
10.
Const FreiSpalte = 1            'Spalte Anzahl Spalten freilassen Tabelle1 
11.
 
12.
Const SpalteArtNr = 1           'Spalte Tabelle2/3 Artikel-Nummer 
13.
Const SpalteNamen = 2           'Spalte Tabelle2/3 Artikel-Bezeichnung 
14.
Const SpaltePreis = 3           'Spalte Tabelle2/3 Preis 
15.
 
16.
Const SpalteN1 = 1              'Spalte Tabelle2 Name 
17.
Const SpalteA1 = 2              'Spalte Tabelle2 ArtNr 
18.
Const SpalteP1 = 3              'Spalte Tabelle2 Preis 
19.
Const SpalteA2 = 4              'Spalte Tabelle3 ArtNr 
20.
Const SpalteP2 = 5              'Spalte Tabelle3 Preis 
21.
 
22.
Sub InitTabelleNeu() 
23.
    Dim Wks0 As Worksheet, Wks1 As Worksheet, Wks2 As Worksheet 
24.
    Dim NextLine As Long, NextCols As Long, c As Range, i As Long 
25.
     
26.
    Set Wks0 = Sheets(SheetNeu) 
27.
    Set Wks1 = Sheets(SheetAn1) 
28.
    Set Wks2 = Sheets(SheetAn2) 
29.
     
30.
    Wks0.Rows(StartZeile & ":" & Wks0.Cells(Rows.Count, SpalteN1).End(xlUp).Row).ClearContents 
31.
     
32.
    NextLine = StartZeile:  NextCols = 0 
33.
     
34.
    For i = StartZeile To Wks1.Cells(Rows.Count, SpalteNamen).End(xlUp).Row 
35.
        Set c = Wks2.Columns(SpalteNamen).Find(Wks1.Cells(i, SpalteNamen), LookIn:=xlValues, LookAt:=xlWhole) 
36.
        If Not c Is Nothing Then 
37.
            With Wks0 
38.
                .Cells(NextLine, SpalteN1 + NextCols) = Wks1.Cells(i, SpalteNamen) 
39.
                .Cells(NextLine, SpalteA1 + NextCols) = Wks1.Cells(i, SpalteArtNr) 
40.
                .Cells(NextLine, SpalteP1 + NextCols) = Wks1.Cells(i, SpaltePreis) 
41.
                .Cells(NextLine, SpalteA2 + NextCols) = Wks2.Cells(c.Row, SpalteArtNr) 
42.
                .Cells(NextLine, SpalteP2 + NextCols) = Wks2.Cells(c.Row, SpaltePreis) 
43.
                 NextLine = NextLine + 1 
44.
                 If NextLine > BreakZeile Then 
45.
                    NextLine = StartZeile 
46.
                    NextCols = NextCols + SpalteP2 + FreiSpalte 
47.
                End If 
48.
            End With 
49.
        End If 
50.
    Next 
51.
 End Sub
Die neuen Konstanten entsprechend anpassen:
Codezeile 09 = Bis zu dieser Zeile schreiben, danach wieder ab StartZeile
Codezeile 10 = Anzahl freie Spalten zwischen den einzelnen Blöcken (A:E|Anzahl Leer|X:Y...)

Gruß Dieter
Bitte warten ..
Mitglied: StephanAmount
08.03.2010 um 10:28 Uhr
Hallo Dieter,

hoffe du hattest ein gutes Wochenende.
Habe am Wochenende mal fleißig getestet und auch die Originaldaten eingefügt.
Dabei bin ich leider auf ein Problem gestoßen, irgendwie gleicht der die Art. nr in der Zieltabelle nicht mit der Artikelnr. aus der Quelldatei ab,
das heißt, da ich ja nicht alle Artikel aus der Quelldatei in meiner Zieldatei haben will, stimmen dann die Zuordnungen nicht mehr, hier ein Beispiel:

Tabelle 1 (vor dem Makro)

Gemüse Art. Nr. L1 Preis L1 Art. Nr. L2
Artischocken11501 4041
Auberginen 09401 4040
Blaukraut 11502 4018
Blumenkohl11503 4022
Bohnen, 10451 4033
Bohnen, Kenia10454 4034
Broccoli 11504 4023
Fenchel 11506 4036
Frühlingszwiebel11553 4086
Gurken 09405 4044

Tabelle 3 (Quelldaten)

Artikel-Nr. Beschreibung Menge G-Menge VK-Netto
4231 Ananas 8er kg 1,00 8,000 1,26
4224 Apfel Boskop kg 1,00 21,000 5,00
4220 Apfel Braeburn kg 1,00 21,000 0,89
0617 Apfel Cox Orange kg 1,00 21,000 0,00
4218 Apfel Gala kg 1,00 21,000 0,86
4217 Apfel Gold Delicious kg 1,00 21,000 0,86
4221 Apfel Granny kg 1,00 16,000 0,99
4308 Apfel Red Delicious kg 1,00 8,000 1,35
4200 Aprikose kg 1,00 5,000 10,80
4041 Artischocken kg 1,00 5,000 1,62
4040 Auberginen kg 1,00 5,000 2,25
0075 Austernpilzkappen 2,0 kg Kiste 1,00 2,000 4,14
4060 Avocado Hass kg 1,00 4,500 3,56

Tabelle 1 (nach dem Makro)

Artischocken 4220 0,89 €
Auberginen 0617 0 €
Blaukraut 4218 0,86 €
Blumenkohl 4217 0,86 €
Bohnen, 4221 0,99 €
Bohnen, Kenia 4308 1,35 €
Broccoli 4200 10,80 €
Fenchel 4041 1,62 €
Frühlingszwiebel 4040 2,25 €
Gurken 0075 4,14 €
Ingwer 4060 3,56 €



Woran kann des denn liegen?
Weil so ist´s einfach eine Art KOpierfunktion mit vorgegebener Spalte, aber ich dachte mir das des geht das der beim Abgleich nur die Nummern kopiert und an die richtige Stelle schiebt die in dem Zielsheet sind so das ich da dann von den Artikeln die ich habe die neuen PReise bekomme. Hintergrund ist eben auch das in der Quelldatei immer wieder Artikel rausfallen und dazukommen, so dass eine direkte Zuordnung nicht möglich ist, sondern eben nur ühber den Abgleich zwischen Zieldatei und Quelldatei


Grüße und sorry das ich nochmal was fragen muss

Stephan
Bitte warten ..
Mitglied: 76109
08.03.2010 um 12:38 Uhr
Hallo Stephan!

Irgendwie blicke ich da jetzt nicht mehr so richtig durch.

Von daher erst nochmal die Funktion des Makros:
Schritt 1: Löschen des aktuellen Inhalts ab der StartZeile in Tabelle1
Schritt 2: Alle Zeilen in Tabelle 2 Spalte B (Namen) durchlaufen und Namen in Tabelle 3 Spalte B suchen:
A B C ... A B C
1 Art-Nr. Namen Preis ... Art-Nr. Namen Preis
X 12345 Aprikose 10,80 ... 98765 Aprikose 11,90
Schritt 3: Wenn gefunden, dann in Tabelle1 eintragen:
A B C D E
1 Namen Art-Nr. Preis Art-Nr. Preis
X Aprikose 12345 10,80 98765 11,90
Das ist der aktuelle Ablauf

Jetzt sehe ich anhand Deiner Aufstellung sowas: 4200 Aprikose kg 1,00 5,000 10,80
Wobei sich mir zuerst mal die Frage stellt, wie steht das jetzt in der Tabelle?
4200 Aprikose ? ? ? ?
Und sieht die Tabelle des anderen Lieferanten genauso aus?

Bei der aktuellen Suche, wird explizit nach dem ganzen Zellinhalt in Namen gesucht.
D.h. "Aprikose" findet nicht "Aprikosen" sondern nur "Aprikose"

Beim ändern des Parameters xlWhole in xlPart, wäre diese Ergebnis zu erwarten:
"Aprikose" findet "Aprikosen" aber "Aprikosen" findet nicht "Aprikose"

Möglich wäre dann noch, nur nach einer bestimmten Anzahl von Buchstaben zu suchen z.B.:
Left("Aprikosen", 5), das würde dann nach "Aprik" suchen

Gruß Dieter
Bitte warten ..
Mitglied: StephanAmount
08.03.2010 um 13:41 Uhr
Hallo Dieter,
langsam wird´s mir ja echt schon peinlich aber naja ich frag einfach nochmal:
ich kapiere jetzt den Ablauf des ganzen Makros, allerdings wäre folgender Ablauf besser wenn des machbar ist,
in Tabelle 1 soll nichts gelöscht werden, bis auf die Preise in den Spalten C und E.
Die Tabellen 2 und 3 sollten nach Artikelnummern in Tabelle 1 suchen und wenn es die Artikelnummer in Tabelle 1 gibt,, dann soll ein Preis von der Tabelle 2 bzw 3 nach 1 übertragen werden, Hintergrund wie gesagt folgender es sollen nur ca. 140 preise verglichen werden, die gemüsehändler haben aber ca 800 artikel daher soll eben nur die liste aus tabelle 1, die ich geschrieben habe verglichen werden und die preise aus denn tabellen 2 und 3 dort eingefügt werden.

hoffe ich hab´s gut ausgedrückt um was es geht und du bist noch net sauer auf mich

beste grüße
stephan
Bitte warten ..
Mitglied: 76109
08.03.2010 um 16:12 Uhr
Hallo Stephan!

Zitat von StephanAmount:
hoffe ich hab´s gut ausgedrückt um was es geht und du bist noch net sauer auf mich
Ja mei. Sauer bin ich noch net, awwer dess konn noch kumme, wenn Du mich nochmal so hinters Licht führst

Da haben wir aber ganz schön aneinander vorbeigeredet. Ich hatte das irgendwie so verstanden, dass eine Tabelle erstellt werden soll, die alle Artikel aufführt, die in beiden Lieferanten-Tabellen mit gleicher Bezeichnung (Namen) zu finden sind.

Dann bleibt die Frage, weil Du es erwähnt hattest, ob in Deiner Tabelle jetzt alles untereinander oder über mehrere Spalten verteilt ist?

Gruß Dieter
Bitte warten ..
Mitglied: 76109
08.03.2010 um 22:24 Uhr
Hallo Stephan!

Auf ein Neues:
01.
Option Explicit 
02.
Option Compare Text 
03.
 
04.
Const SheetNeu = "Tabelle1"     'Tabellenname Neu 
05.
Const SheetAn1 = "Tabelle2"     'Tabellenname Lieferant1 
06.
Const SheetAn2 = "Tabelle3"     'Tabellenname Lieferant2 
07.
 
08.
Const StartZeile = 2            'Zeile Starten Tabelle1 
09.
Const SpalteArtNr = 1           'Spalte Tabelle2/3 Artikel-Nummer 
10.
Const SpalteNamen = 2           'Spalte Tabelle2/3 Artikel-Bezeichnung 
11.
Const SpaltePreis = 3           'Spalte Tabelle2/3 Preis 
12.
 
13.
Const SpalteN1 = 1              'Spalte Tabelle2 Name 
14.
Const SpalteA1 = 2              'Spalte Tabelle2 ArtNr 
15.
Const SpalteP1 = 3              'Spalte Tabelle2 Preis 
16.
Const SpalteA2 = 4              'Spalte Tabelle3 ArtNr 
17.
Const SpalteP2 = 5              'Spalte Tabelle3 Preis 
18.
 
19.
Sub InitTabelleNeu3() 
20.
    Dim Wks0 As Worksheet, Wks1 As Worksheet, Wks2 As Worksheet, c As Range, i As Long 
21.
     
22.
    Set Wks0 = Sheets(SheetNeu) 
23.
    Set Wks1 = Sheets(SheetAn1) 
24.
    Set Wks2 = Sheets(SheetAn2) 
25.
     
26.
    For i = StartZeile To Wks0.Cells(Rows.Count, SpalteA1).End(xlUp).Row 
27.
        Set c = Wks1.Columns(SpalteArtNr).Find(Wks0.Cells(i, SpalteA1), LookIn:=xlValues, LookAt:=xlWhole) 
28.
        If Not c Is Nothing Then Wks0.Cells(i, SpalteP1) = Wks1.Cells(c.Row, SpaltePreis) 
29.
    Next 
30.
    For i = StartZeile To Wks0.Cells(Rows.Count, SpalteA2).End(xlUp).Row 
31.
        Set c = Wks2.Columns(SpalteArtNr).Find(Wks0.Cells(i, SpalteA2), LookIn:=xlValues, LookAt:=xlWhole) 
32.
        If Not c Is Nothing Then Wks0.Cells(i, SpalteP2) = Wks2.Cells(c.Row, SpaltePreis) 
33.
    Next 
34.
 End Sub
Gruß Dieter
Bitte warten ..
Mitglied: StephanAmount
09.03.2010 um 08:09 Uhr
Hallo Dieter,

ich wünsche dir einen guten Morgen, vielen Dank für deine erneute Hilfe, es klappt jetzt auch fast perfekt, einziges Problem ist noch er ordnet den Preis nicht der Artikelnummer zu, d.h. er findet eine Artikelnummer in Zeile 13, die er kennt dann wird dieser automatisch der Preis aus Zeile 13 zugeordnet, die Artikelnummer auf der Preistabelle ist aber nicht an der selben stelle wie in der vergleichstabelle, also man müsste des irgendwie gebundelt übertragen, so dass zu der artikelnummer auch der entsprechend der artikelnummer richtige preis zugeordnet wird.

danke grüße stephan

p.s1: wenn du mal in muc bist geb ich dir einen aus
p.s2: so günstig hätte ich im märz noch nie thai-spargel eingekauft ))
Bitte warten ..
Mitglied: 76109
09.03.2010 um 08:53 Uhr
Hallo Stephan!

Auch einen schönen guten Morgen!

Sorry, da hatte sich doch tatsächlich ein Fehler in Zeile 28 und 32 eingeschlichen (i anstatt c.Row) Hab's oben korrigiert.

Hoffe der Preis vom Thai-Spargel stimmt jetzt

Gruß Dieter

PS. Nja, muc is äh bissl weit, ca 350Km bis Schwabing und glaube nochmal ca 30Km nach Oberföhring. Ist schon ne Weile her, als ich das letztemal in der Gegend war Trotzdem Danke für das Angebot
Bitte warten ..
Mitglied: StephanAmount
09.03.2010 um 09:26 Uhr
Hallo Dieter,

jep jetzt passt alles vielen Dank für deine großartige und schnelle Hilfe,
wünsche dir noch eine gute Woche und vielleicht schaffst es ja doch mal wieder nach MUC, ansonsten sieht man sich bestimmt noch öfter hier.

Grüße Stephan
Bitte warten ..
Mitglied: 76109
09.03.2010 um 10:01 Uhr
Hallo Stephan!

Zitat von StephanAmount:
jep jetzt passt alles vielen Dank für deine großartige und schnelle Hilfe,
Gern geschehen
wünsche dir noch eine gute Woche und vielleicht schaffst es ja doch mal wieder nach MUC, ansonsten sieht man sich bestimmt
noch öfter hier.
Danke, wünsche Dir auch ne angenehme Woche.

Ja, dann bis demnächst

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Microsoft Office
gelöst SharePoint, Word, Excel. Auslesen mittels VBA und XML (10)

Frage von schwazza zum Thema Microsoft Office ...

Microsoft Office
Aus Outlook 2013 Daten aus Tabellenfeldern in Excel übertragen (9)

Frage von ich2110 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (10)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...