Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
256to260
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
256to260
256to260
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

An ChrisL re:CODE?

An ChrisL re:CODE?
16.05.2003 09:23:16
Georg
Hallo ChrisL
Den hab ich hier gefunden komm aber nicht damit zurande.Liegt aber vielleicht auch daran das ich noch nie mit Makros gearbeitet hab jedenfalls nicht wissentlich.

Sub Vergleichen()
Dim wkb As Workbook
Dim wksA As Worksheet, wksB As Worksheet, wksC As Worksheet
Dim iWks As Integer, iRow As Integer, iRowT As Integer
On Error Resume Next
For iWks = 1 To 3
Set wkb = Workbooks("BTP_04_2003_sortiert_nach_Hotels" & iWks)
Next iWks
If Err > 0 Or wkb Is Nothing Then
Beep
Err.Clear
MsgBox prompt:="Die 3 Arbeitsmappen sind nicht vorhanden!"
Exit Sub
End If
On Error GoTo 0
Set wksA = Workbooks("BTP").Worksheets(1)
Set wksB = Workbooks("Adresses").Worksheets(1)
Set wksC = Workbooks("BTPAdresses").Worksheets(1)
iRow = 1
Do Until IsEmpty(wksA.Cells(iRow, 1))
If WorksheetFunction.CountIf( _
wksB.Columns(1), _
wksA.Cells(iRow, 1).Value) = 0 Then
iRowT = iRowT + 1
wksC.Cells(iRowT, 1).Value = wksA.Cells(iRow, 1).Value
wksC.Cells(iRowT, 2).Value = wksA.Parent.Name
End If
iRow = iRow + 1
Loop
iRow = 1
Do Until IsEmpty(wksB.Cells(iRow, 1))
If WorksheetFunction.CountIf( _
wksA.Columns(1), _
wksB.Cells(iRow, 1).Value) = 0 Then
iRowT = iRowT + 1
wksC.Cells(iRowT, 1).Value = wksB.Cells(iRow, 1).Value
wksC.Cells(iRowT, 2).Value = wksB.Parent.Name
End If
iRow = iRow + 1
Loop
End Sub

Wäre klasse wenn Du da was machen könntest .
Grüssle Georg

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: An ChrisL re:CODE?
16.05.2003 11:07:44
ChrisL

https://www.herber.de/forum/messages/256995.html

Hallo Georg

Das Makro greifft auf 3 verschiedene Arbeitsmappen (Dateien) zu.

Set wksA = Workbooks("BTP").Worksheets(1)
Set wksB = Workbooks("Adresses").Worksheets(1)
Set wksC = Workbooks("BTPAdresses").Worksheets(1)

BTP, Adresses, BTPAdresses, jeweils Blatt 1.

Du sagst du bekommst Fehler. Wo und welchen Fehler?

Gruss
Chris

Re: An ChrisL re:CODE?
16.05.2003 11:53:05
Georg

Hi
er gibt die Fehlermeldung "Arbeitsmappen nicht..." die auch im code steht aus.ich habe das schon geändert und habe in workbook den namen des workbooks das alle 3 listen in unterschiedlichen mappen enhält geändert und in worksheets die namen der Bätte eingetragen.
Set wksA = Workbooks("BTPAdresses2003").Worksheets(BTP)
Set wksB = Workbooks("BTPAdresses2003").Worksheets(Adresses)
Set wksC = Workbooks("BTPAdresses2003").Worksheets(BTPAdresses)

er bringt aber immer noch diese Fehlermeldung.
sollte ich die Listen vielleicht in drei verschiedene Arbeitsmappen kopieren?

Grüssle
Georg

Anzeige
Re: An ChrisL re:CODE?
16.05.2003 12:22:54
ChrisL

Hallo Georg

Es fehlen die Anführungszeichen...

Set wksA = Workbooks("BTPAdresses2003").Worksheets("BTP")

das System läuft so...

entweder:
Workbooks("Mappe1.xls").Worksheets("Blatt1")

oder:
Workbooks(1).Worksheets(1)

Also entweder mit Nummer ansprechen oder mit dem Mappen-/Blattnamen, dann aber in Anführungszeichen.

Gruss
Chris

Re: An ChrisL re:CODE?
16.05.2003 12:44:28
Georg

Hi chris,

es funktioniert immer noch nicht.
ich hab mir den code nochmal angeschaut und habe dann die Zeilen

For iWks = 1 To 3
Set wkb = Workbooks("Mappe" & iWks)
Next iWks

als Zähler interpretiert der dem Workbooks automatisch die namen Mappe 1-3 gibt.

Dann habe ich die Parameter in der SET anweisung geändert

Set wksA = Workbooks("Mappe 1").Worksheets(1)
usw.

gleiche Fehlermeldung wie zuvor.
Also so langsam steig ich durch aber immer noch nicht so richtig.
kannst du mir vielleicht noch ein bisschen weiterhelfen.

Gruss
Georg

Anzeige
Re: An ChrisL re:CODE?
16.05.2003 12:53:02
ChrisL

Hallo Georg

So...

For iWks = 1 To 3
Set wkb = Workbooks("Mappe" & iWks)
Next iWks

...kann es nicht gehen, da du die Variable wkb jedesmal wieder überschreibst und damit nur Mappe3 in die Variable übergibst.

Die 3 Mappen müssen vermutlich geöffnet sein, wenn du den Code abspielst.

Gruss
Chris

Re: An ChrisL re:CODE?
16.05.2003 13:26:23
georg

Hi chris,

macht der code überhaupt sinn?
irgendwie funktioniert gar nichts wenn ich den ausführe.


Re: An ChrisL re:CODE?
16.05.2003 13:51:28
ChrisL

Hallo Georg

Kann nicht sagen ob der Code Sinn macht, da ich die Ausgangslage nicht kenne. Wenn ich den Code auf die Schnelle richtig interpretiert habe, werden die Spalten A verglichen und in Spalte B wird der Dateinamen der Differenzdatei eingetragen. Das Makro läuft bis zur ersten Leerzeile. Wenn also A1 leer ist bricht er vermutlich gleich zu beginn ab.

Würde mal dies Zeile hier abändern, da du ja in der selben Datei suchst.
wksC.Cells(iRowT, 2).Value = "Differenz Blatt 2"
wksC.Cells(iRowT, 2).Value = "Differenz Baltt 3"

Hast du denn die gleiche Ausgangslage wie im Beitrag wo du den Code bezogen hast?

Gruss
Chris

Anzeige
Re: An ChrisL re:CODE?
16.05.2003 14:16:16
georg

Hi chris

so wie ich das verstanden habe schon.
Mein Problem ist das ich eine Liste mit Teilnehmern eines Projekts ohne Adressen habe in der zweiten Liste habe ich Daten der Angemeldeten mit Adressen aus der auch die Teilnehmer stammen.Und ich sollte jetzt in der dritten Liste die Teilnehmer aus der ersten Liste mit ihrer Adresse aus der zweiten Liste haben. raus kommt dabei das das Makro nur die ersten 4 Spalten der beiden Listen miteinander vergleichen darf aber alle zellen eines Eintrags der zweiten Liste in die dritte überttragen soll.

wenn ich das jetzt so lese hab ich das falsche Makro.
naja vielleicht weisst Du ja ein Makro oder Programm das das hinkriegt.

Gruss
Georg

Anzeige
Re: An ChrisL re:CODE?
16.05.2003 15:10:59
ChrisL

Hallo Georg

Ich hoffe ich habe dich richtig verstanden und hoffentlich funktioniert auch das Makro.

Tabelle 1
Spalte A-D Daten zum Vergleichen
Spalte E-? weitere Info

Tabelle 2
Spalte A-D Daten die mit Tabelle 1 abgeglichen werden müssen

Tabelle 3
Liste mit Daten aus Tabelle 2 inkl. Zusatzinfo aus Tabelle 1

Gehe davon aus, dass Zeile 1 Titel enthält und wird deshalb nicht abgeglichen.

Gruss
Chris


Re: An ChrisL re:CODE?
19.05.2003 09:20:06
georg

Hi Chris,

Danke erstmal für die Mühe (wenns auch wahrscheinlich schnell gieng)
bis auf das die Tabelle 2 die zusatzinformationen enthält ist alles richtig, aber die muss ich ja nur umkopieren.
Das Makro läuft gerade durch.
Weisst Du vielleicht eine Website in der ich eine VBE Referenz bekomme denn mit den Quellcodes komme ich nicht so zurecht weil ich vieles nicht verstehe.
Läuft seit 5 Minuten, kann das sein?
Jetzt seit 15.
Grüssle
Georg


Anzeige
Re: An ChrisL re:CODE?
19.05.2003 10:45:02
ChrisL

Hallo Georg

Kann schon sein, dass es relativ lange läuft, je nach dem, wieviele Zeilen zum Vergleichen.

Für die VB Referenz einfach die Hilfe benutzen. Die Homepage bietet auch einiges z.B. Excel FAQ.

Gruss
Chris

Re: An ChrisL re:CODE?
19.05.2003 11:12:42
georg

Hi chris,

Schade hat nicht funktioniert.
vielleicht bin ich auch zu doof das makro richtig zu starten.
sehe ich das richtig das wenn ich auf die Mappe rechtsklicke dann quellcode ansehen / code einfügen / speichern und dann über alt F8 im 1.Arbeitsblatt das makro starte müsste doch alles klar sein oder?

gruss

Re: An ChrisL re:CODE?
19.05.2003 11:23:15
ChrisL

Der Code muss in ein (Standart-)Modul. Am einfachsten zeichnest du irgend ein Makro auf, dann Menu Makro, bearbeiten und den Code ersetzen, dann ist es sicher am richtigen Ort.

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige