Zeilen Vergleichen und anhängen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Zeilen Vergleichen und anhängen von: Jürgen
Geschrieben am: 29.03.2005 08:23:00

Hallo Leute
bin ganz neu in dem VBA Bereich
bräuchte eine kleine hilfe und zwar:
Ich habe zwei Arbeitsmappen und in einer gebe ich meine ca 20 oder mehr Daten in einer Zeile ein und in der anderen Mappe soll alle Eingaben eingetragen werden und wenn ich einen neuen Nachamen(Spalte-A)Vorname(Spalte-B) habe ihn unten anhängen und wenn es der gleiche Name ist alle Werte aktualisieren. Ich hoffe ich hab mich deutlich genug ausgedrückt.
Danke schon mal.
Und noch was ganz kleines: wie lasse ich ein Makro beim öffnen einer Mappe gleich starten.
Danke ihr könntet mir da sehr weiter helfen.




Bild


Betrifft: Makro Hilfe von: Slugger
Geschrieben am: 29.03.2005 08:38:33

Hallo,

mit dem Makro geht wenn du im VB Editor auf "Diese Arbeitsmappe" klickst und dann dort
Workbooks_open
Application.Run "tabelle1.xls!Makroname1"
End sub

gruß Slugger


Bild


Betrifft: Zeilen Vergleichen und anhängen von: Heil Jürgen
Geschrieben am: 29.03.2005 08:53:01

Ok Danke das mit dem sofortöffnen hat geklappt.
Aber die andere Frage mit dem vergleichen usw wär noch super wenn das jemand herausfinden würde.

danke schon mal


Bild


Betrifft: AW: Zeilen Vergleichen und anhängen von: Slugger
Geschrieben am: 29.03.2005 09:16:18

Also du brauchst folgendes:

vergleiche Blatt1 Spalte A/B mit Blatt2 Spalte A/B. Wenn ein Name neu ist dann häng in mir unten ran. Danach sollen die Werte aktualisiert werden.

lieg ich da jetzt richtig? Wie sind die Werte zu den Namen verknüpft? Sverweis oder .....

Gruß


Bild


Betrifft: AW: Zeilen Vergleichen und anhängen von: Heil Jürgen
Geschrieben am: 29.03.2005 09:36:12

Also ich hab 2 Arbeitsmappen. In der einen Arbeitsmappe(Name=Fortschritt) werden einige Fragen gestellt wie Nachname Vorname Personalnummer usw. ca 20 Stück. Die Ergebnisse sind dann alle in einer Zeile.
In A und B stehen Nachname und Vorname.
Dann möchte ich ein Makro starten das den Nachnamen und Vorname mit den Zeilen der zweiten Arbeitspappe(Name=Matrix) vergleicht (A=auch Nachname & B=auch Vorname).
wenn beide Namen gleich sind dann soll er die restlichen Werte(Personalnummer usw.) aktualisieren.Wenn einer der namen verschieden sind oder beide Namen neu sind dann soll er den Namen unten anhängen mit den anderen werten.
Und das alles soll in der zweiten Arbeitsmappe ab der Zeile 10 beginnen, weil ich darüber noch ein Paar Eingaben gemacht werden.
Hoffe ich habs einigermaßen verständlich geschrieben.

Danke schon mal


Bild


Betrifft: AW: Zeilen Vergleichen und anhängen von: Slugger
Geschrieben am: 29.03.2005 10:53:00

Hallo,

hier hätt ich nen Code der das mit dem Vergleichen hinbekommt. Musst du natürlich noch anpassen. Fürs Berechnen schreibst du eben noch ein calculate an die jeweilige Stelle. Ich habe jetzt einfach angenommen, das du die Daten mit nem Sverweis verknüpfst.

Dim i As Integer
Dim k As Integer
Dim Suchwort As String
Dim Zelle As Range
Dim Gefunden As Boolean
Dim AnzahlZellenBlatt1 As Long
Dim AnzahlZellenBlatt2 As Long


AnzahlZellenBlatt1 = Worksheets("Tabelle1").UsedRange.Rows.Count
AnzahlZellenBlatt2 = Worksheets("Tabelle2").UsedRange.Rows.Count

Worksheets("Tabelle1").Activate
For i = 1 To AnzahlZellenBlatt1
Suchwort = Worksheets("Tabelle1").Cells(i, 1).Value
Gefunden = False
Worksheets("Tabelle2").Activate

For k = 1 To AnzahlZellenBlatt2
If Suchwort = Worksheets("Tabelle2").Cells(k, 1) Then
Gefunden = True
Exit For
End If
Next k

If Gefunden = False Then
Worksheets("Tabelle2").Cells(AnzahlZellenBlatt2 , 1).Value = Suchwort
AnzahlZellenBlatt2 = AnzahlZellenBlatt2
Worksheets("Tabelle1").Select
End If
Next i
MsgBox "Abgleich fertig!", vbInformation
End Sub

Ich hoff ich konnte dir etwas weiterhelfen,

Gruß


Bild


Betrifft: AW: Zeilen Vergleichen und anhängen von: Heil Jürgen
Geschrieben am: 29.03.2005 14:21:12

Hallo
irgendwie bekomme ich hier immer Laufzeitfehler ´9´

Suchwort = Worksheets("Tabelle1").Cells(i, 2).Value

woran liegt das??

Wo wird denn bei deinem code abgefragt ob Nachname(A) und Vorname(B) gleich sind?

hoffe du kannst mir helfen.

Danke heil Jürgen


Bild


Betrifft: AW: Zeilen Vergleichen und anhängen von: Heil Jürgen
Geschrieben am: 29.03.2005 14:34:13

Hallo
irgendwie bekomme ich hier immer Laufzeitfehler ´9´

Suchwort = Worksheets("Tabelle1").Cells(i, 2).Value

woran liegt das??

Wo wird denn bei deinem code abgefragt ob Nachname(A) und Vorname(B) gleich sind?

hoffe du kannst mir helfen.

Danke heil Jürgen


Bild


Betrifft: AW: Zeilen Vergleichen und anhängen von: Heil Jürgen
Geschrieben am: 29.03.2005 14:34:18

Hallo
irgendwie bekomme ich hier immer Laufzeitfehler ´9´

Suchwort = Worksheets("Tabelle1").Cells(i, 2).Value

woran liegt das??

Wo wird denn bei deinem code abgefragt ob Nachname(A) und Vorname(B) gleich sind?

hoffe du kannst mir helfen.

Danke heil Jürgen


Bild


Betrifft: AW: Zeilen Vergleichen und anhängen von: Slugger
Geschrieben am: 30.03.2005 08:06:28

Hallo,

mein COde bezieht sich nur auf eine SpalteA. Wenn du noch eine Spalte dazu willst müsstest du praktisch noch suchwort 2 und den Code entsprechend kopieren und verändern. Der Laufzeitfehler wird sich vermutlich auf die Zeile beziehen:
AnzahlzellenBlatt2 = Anzahlzellenblatt2. Ich hab das bei mir verändert drinstehen. Versuch mal dahinter +1 zu schreiben, oder die Zeile ganz zu löschen.

1. Block = deklarieren der Variablen
2. Block = benutzte Zeilen deiner 2 Arbeitsmappen "zählen"
3. Block = Suchwort (bspw. Nachname) suchen und "merken, bzw verlgeichen"
4, Block = Wenn Suchwort in Mappe 2 gefunden ist
5. Block = Funtkion gefunden Ja oder Nein, dann mach ne MSGBox

Wenn du es gar ncith hinbekommst, einfach Datei hochladen.

Gruß


Bild


Betrifft: AW: Zeilen Vergleichen und anhängen von: Heil Jürgen
Geschrieben am: 30.03.2005 11:47:40

Wo kann ich denn diese dateien hochladen???
Bin noch neu in diesem Forum.Aber du hast mir schon super weitergeholfen.Danke.

MfG

Heilö jürgen


Bild


Betrifft: AW: Zeilen Vergleichen und anhängen von: Martin Beck
Geschrieben am: 29.03.2005 11:15:51

Hallo Jürgen,

Du willst also,

1) neue Einträge anhängen
2) geänderte Einträge überschreiben
3) unveränderte Einträge unverändert lassen

Das ist logisch dasselbe wie alle Einträge in der Ausgangstabelle zu kopieren und in die Zieltabelle einzufügen, wobei alle vorhandenen Einträge in der Zieltabelle überschieben werden müssen.

Worksheets("Quellentabelle").Range("A1:Z50").Copy Destination:= Worksheets("Zieltabelle").Range("A10")

Blattnamen und Bereiche anpassen.

Gruß
Martin Beck


Bild


Betrifft: AW: Zeilen Vergleichen und anhängen von: Heil Jürgen
Geschrieben am: 29.03.2005 14:15:30

Hallo

Genau martin du weißt was ich meine. Doch er soll nur den nachnamen(A) und Vornamen(B)
vergleichen und wenn die gleich sind die gesamte Zeile dann aktualisieren.und wenn ungleich dann unten anhängen. Das erste Arbeitsblatt ist aber nur eine Eingabemaske für jeweils ein Namen und seinen Kriterien. wenn ich die wieder öffne ist alles weg und ich gebe einen neuen namen ein.Oder den gleichen mit neuen kriterien die aber alle in einer zeile stehen. kapiert???


Bild


Betrifft: AW: Zeilen Vergleichen und anhängen von: Martin Beck
Geschrieben am: 29.03.2005 14:24:18

Hallo Jürgen,

"kapiert???" Na ja, nicht so richtig. Und es ist m.E. die Aufgabe des Fragestellers, sein Problem nachvollziehbar zu formulieren. Anders gesagt: Einer muß sich quälen, der Schreiber oder der Leser, und warum sollte es in diesem Forum der Leser sein?

Wenn (Dir) keine bessere Problembeschreibung möglich ist, lade die (Muster)Dateien hoch.

Gruß
Martin Beck


Bild


Betrifft: AW: Zeilen Vergleichen und anhängen von: Peter W
Geschrieben am: 29.03.2005 14:49:56

Servus,

Ich hab mal in einem Makro von mir das selbe gemacht, allerdings ist das nur ein Denkansatz und den müsstest du anpassen. Sonst musst du mal ne Bsp. Mappe hochladen.

Application.ScreenUpdating = False
If Sheets("DB").Range("b419") <> 0 Then 'wenn Kundennr. vorhanden
zeile1wert = Sheets("DB2").Range("aa1") ' Zeile in der Kunde bereits steht
Sheets("DB2").Cells(zeile1wert, 2) = Firmawert
Formel aa1 =MIN(WENN(A$2:A$1000=DB!$B$419;ZEILE(2:1000))) (Array -Strg-Shift-Return)
Formel b419=WENN(ISTFEHLER(DBAUSZUG('DB2'!A1:Y1000;'DB2'!A1;DB!B417:B418));0;DBAUSZUG('DB2'!A1:Y1000;'DB2'!A1;DB!B417:B418))

Else ' wenn Kunde noch nicht vorhanden bzw. keine KDNR
kdnrwert = Sheets("DB2").Range("a1001") + 1 ' nächste Kundennr wird eingeteilt
zeile2wert = Sheets("DB2").Range("z1") + 1 ' letzte beschriebene Kundenzeile + 1
Application.ScreenUpdating = False
Sheets("DB2").Cells(zeile2wert, 1) = kdnrwert
formel z1 = =WENN(MAX((2:1000<>"")*ZEILE(2:1000))=0;1;MAX((2:1000<>"")*ZEILE(2:1000)))

Erklärung zu den Formeln:
in aa1 sucht er nach der vorhandenen Kundennr.
in z1 sucht er nach der nächsten freien Zeile
in b419 sucht er aus der Datenbank die Kundennr. wenn vorhanden

MfG
Peter


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeilen Vergleichen und anhängen"