Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1020to1024
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Vergleich und zuordnen
01.11.2008 17:32:09
Rolf
Hallo Excel Experten!
Aus Tabellenblatt Stammdaten werden Daten nach Tabellenblatt Stammdatenrfid kopiert.
Nun sollen die StNR und Zeile der StNR fest zu geordnet werden.
Es können 3000 Startnummern untereinander stehen.
Beispeil:
STNT = 13 soll STNR fest = 13 zugeordnet Dahinter dann Patmore, Philip, m, 20, 10km
Ein File Upload habe ich eingestellt!

Die Datei https://www.herber.de/bbs/user/56445.xls wurde aus Datenschutzgründen gelöscht


Vielen Dank für eure Hilfe!
Gruß
Rolf

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vergleich und zuordnen
01.11.2008 18:09:00
Rolf
Hallo Uwe!
SVERWEIS ist super!
Danke!
Gruß
Rolf
AW: Vergleich und zuordnen
01.11.2008 18:09:15
Daniel
Hi
das machst du in diesem Fall am besten über die SVERWEIS-Formel, auch diese kann man per Makro eintragen:

Sub stammdatenübertragenrfid1()
If MsgBox("Achtung: Sollen die aktuellen Daten aus dem Stammdaten Tabellenblatt nach  _
Stammdatenrfid Tabellenblatt übertragen werden?", vbYesNo) = vbNo Then Exit Sub
With Sheets("Stammdatenrfid").Range("C2:H5000")
.ClearContents
.FormulaR1C1 = _
"=IF(RC1="""","""",IF(COUNTIF(Stammdaten!C1,RC2)=0,"""",VLOOKUP(RC2,Stammdaten!C1:C10, _
MATCH(R1C,Stammdaten!R1,0),0)))"
.Formula = .Value
End With
End Sub


damit das Makro funktioniert, müssen folgende Bedingungen erfüllt sein (was in deiner Beispieltabelle nicht immer der Fall ist, aber ich denke, das kannst du ändern).
1. in beiden Tabellenblätten müssen gleiche Spalten gleiche Überschriften haben, bei dir heißt die eine Spalte mal TEAM und in der anderen Tabelle MAN, daß musst du vereihnheitlichen, da die Formel über diese Werte die passenden Spalten sucht.
2. die Tabelle darf nicht als TEXT formatiert werden, du musst darauf achten, das Zahlen auch wirklich Zahlen sind und nicht als Texte interpretiert werden, dann gehts.
https://www.herber.de/bbs/user/56447.xls
Gruß, Daniel

Anzeige
AW: Vergleich und zuordnen
01.11.2008 18:18:17
Uwe
Hi Rolf,
was Daniel erwähnt:

du musst darauf achten, das Zahlen auch wirklich Zahlen sind und nicht als Texte interpretiert werden, 


hatte ich auch bemerkt und wollte Dich noch drauf aufmerksam machen, hatte es aber vergessen. Damit der SVERWEIS trotzdem klappt habe ich die beiden Minuszeichen eingesetzt (SVERWEIS(--($B2); ...... ), die machen aus dem Text "1" die Zahl 1.
Es wäre aber auf jeden Fall besser wenn Du dafür sorgst, dass diese Spalte auch als Zahl formatiert ist.
Gruß
Uwe
(:o)

AW: Vergleich und zuordnen
01.11.2008 18:59:00
Rolf
Hallo Daniel!
Das Makro funktioniert ist bloß ziemlich langsam!
Auch in Tabellenblatt Stammdaten können 3000 beschriebene Zeilen untereinander stehen.
Gibt es vielleicht noch eine Möglichkeit das es schneller geht?
Danke!
Gruß
Rolf
Anzeige
AW: Vergleich und zuordnen
01.11.2008 19:45:00
Daniel
Hi
kann das Tabellenblatt "Stammdaten" nach der Startnummer sortiert werden?
dann könnte man die schnellere Variante des SVerweises verwenden (4. Parameter = WAHR)
ansonsten müsste man die Zeilen-Nr für die Startnummern in einer Hilfsspalte mit der Vergleichsfunktion ermitteln und die restlichen Daten dann über die Index-Funktion holen.
hier mal als Beispiel ohne Makro: https://www.herber.de/bbs/user/56451.xls
fall du das als Makro brauchst, brauchst du ja nur den Zellbereich und die Formeln entsprechend anzupassen.
(falls du wissen willst, wie die Formel in der R1C1-Schreibweise lautet: einfach Zelle mit Formel selektieren und im Editor im Direktfenster: "?selection.FormulaR1c1" eingeben, das ergebnis kann dann kopiert und in den Code eingefügt werden, aber Achtung: anführungszeichen, die zur Formel gehören, müssen verdoppelt werden.)
Gruß, Daniel
Anzeige
AW: Vergleich und zuordnen
01.11.2008 18:16:23
Tino
Hallo,
hier mal ein VBA- Code, solltest Du noch fragen haben, kannst ja noch mal nachfragen.
Reihenfolge spielt keine Rolle.
Modul Modul1
Sub stammdatenübertragenrfid1() 
Dim rBereich As Range, EinfügBerich As Range 
Dim vArea1, vArea2 
Dim i As Integer, j As Integer 
Dim lLetzte As Long 
 
 
 
If MsgBox("Achtung: Sollen die aktuellen Daten aus dem Stammdaten Tabellenblatt nach Stammdatenrfid Tabellenblatt übertragen werden?", vbYesNo) = vbNo Then Exit Sub 
 
Application.ScreenUpdating = False 
Application.EnableEvents = False 
    With Sheets("Stammdaten") 
        lLetzte = .Cells(.Rows.Count, "B").End(xlUp).Row 
        Set rBereich = .Range("A2:i" & lLetzte) 
    End With 
Set EinfügBerich = Sheets("Stammdatenrfid").Range("B2:H5000") 
 
Sheets("Stammdatenrfid").Range("C2:H5000").ClearContents 
vArea1 = rBereich 
vArea2 = EinfügBerich 
 
For i = 1 To Ubound(vArea1) 
 For j = 1 To Ubound(vArea2) 
    If vArea2(j, 1) Like vArea1(i, 1) Then 
        vArea2(j, 2) = vArea1(i, 1) 
        vArea2(j, 3) = vArea1(i, 2) 
        vArea2(j, 4) = vArea1(i, 3) 
        vArea2(j, 5) = vArea1(i, 4) 
        vArea2(j, 6) = vArea1(i, 8) 
        vArea2(j, 7) = vArea1(i, 9) 
        Exit For 
    End If 
  Next j 
Next i 
  EinfügBerich = vArea2 
Application.ScreenUpdating = True 
Application.EnableEvents = True 
 
End Sub 
 
 
 


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: Vergleich und zuordnen
01.11.2008 18:39:00
Tino
Hallo,
hier noch eine veränderte Variante mit der Vergleich Funktion.
Modul Modul1
Sub stammdatenübertragenrfid1() 
Dim rBereich As Range, EinfügBerich As Range 
Dim vArea1, vArea2, tempAr 
Dim i As Integer, j As Integer 
Dim lLetzte As Long 
 
 
 
If MsgBox("Achtung: Sollen die aktuellen Daten aus dem Stammdaten Tabellenblatt nach Stammdatenrfid Tabellenblatt übertragen werden?", vbYesNo) = vbNo Then Exit Sub 
 
Application.ScreenUpdating = False 
Application.EnableEvents = False 
    With Sheets("Stammdaten") 
        lLetzte = .Cells(.Rows.Count, "B").End(xlUp).Row 
        Set rBereich = .Range("A2:i" & lLetzte) 
    End With 
Set EinfügBerich = Sheets("Stammdatenrfid").Range("B2:H5000") 
tempAr = Sheets("Stammdatenrfid").Range("B2:B5000") 
Sheets("Stammdatenrfid").Range("C2:H5000").ClearContents 
vArea1 = rBereich 
vArea2 = EinfügBerich 
 
With Application.WorksheetFunction 
 
For i = 1 To Ubound(vArea1) 
 On Error Resume Next 
  j = .Match(CStr(vArea1(i, 1)), tempAr, 0) 
 On Error GoTo 0 
 If j > 0 Then 
    If vArea2(j, 1) Like vArea1(i, 1) Then 
        vArea2(j, 2) = vArea1(i, 1) 
        vArea2(j, 3) = vArea1(i, 2) 
        vArea2(j, 4) = vArea1(i, 3) 
        vArea2(j, 5) = vArea1(i, 4) 
        vArea2(j, 6) = vArea1(i, 8) 
        vArea2(j, 7) = vArea1(i, 9) 
    End If 
 End If 
 j = 0 
Next i 
End With 
  EinfügBerich = vArea2 
Application.ScreenUpdating = True 
Application.EnableEvents = True 
 
End Sub 
 
 
 


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: Vergleich und zuordnen
01.11.2008 19:32:18
Rolf
Hallo Tino!
Das Makro ist super es läuft auch schnell!
Habe es jetzt in meine Hauptdatei mit vielen Makros eingebaut!
Da funktioniert es plötzlich nicht!
Können sich Makros stören?
Danke!
Gruß
Rolf
AW: Vergleich und zuordnen
01.11.2008 19:46:00
Tino
Hallo,
Makros insbesondere Eventgesteuerte Makros können schon unerwünschte Effekte hervorrufen.
Im Code ist aber Application.EnableEvents = False eingebaut, dieser Befehl sollte eigentlich dass auslösen von Eventmakros unterbinden.
Müsstest also den Code mal hier reinstellen um zu schauen wo es hängt.
Gruß Tino

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige