Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
588to592
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
588to592
588to592
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilen Vergleichen und anhängen

Zeilen Vergleichen und anhängen
29.03.2005 08:23:00
Jürgen
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.


14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Makro Hilfe
29.03.2005 08:38:33
Slugger
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
Zeilen Vergleichen und anhängen
29.03.2005 08:53:01
Heil
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
AW: Zeilen Vergleichen und anhängen
29.03.2005 09:16:18
Slugger
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ß
Anzeige
AW: Zeilen Vergleichen und anhängen
29.03.2005 09:36:12
Heil
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
Anzeige
AW: Zeilen Vergleichen und anhängen
29.03.2005 10:53:00
Slugger
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ß
Anzeige
AW: Zeilen Vergleichen und anhängen
29.03.2005 14:21:12
Heil
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
AW: Zeilen Vergleichen und anhängen
29.03.2005 14:34:13
Heil
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
AW: Zeilen Vergleichen und anhängen
29.03.2005 14:34:18
Heil
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
Anzeige
AW: Zeilen Vergleichen und anhängen
30.03.2005 08:06:28
Slugger
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ß
Anzeige
AW: Zeilen Vergleichen und anhängen
30.03.2005 11:47:40
Heil
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
AW: Zeilen Vergleichen und anhängen
29.03.2005 11:15:51
Martin
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
Anzeige
AW: Zeilen Vergleichen und anhängen
29.03.2005 14:15:30
Heil
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?
AW: Zeilen Vergleichen und anhängen
29.03.2005 14:24:18
Martin
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
Anzeige
AW: Zeilen Vergleichen und anhängen
29.03.2005 14:49:56
Peter
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
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige