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

Hilfe bei Makro !

Hilfe bei Makro !
28.12.2004 11:43:04
mykey
Moin moin,
ich benötige Hilfe beim erstellen eines Makros:
Ich möchte aus zwei Tabellen Daten in einer Tabelle wiedergeben. Es sind ca. 1000 Daten in beiden Tabellen eingetragen. Deshalb dachte ich es wäre sinnvoll ein Makro zu schreiben ... allerdings fehlen mir die nötigen Kenntnisse.
Hier mein Projekt:
In einer Haupttabelle werden Daten, sortiert nach Name, aus zwei Tabellen zusammengefügt.
Die zwei Tabellen:
1.Tabelle mit Namen Leistung: mit der Spalte Name, Ort und Leistung.
2.Tabelle mit Namen Arbeit: mit den spalten Name, Ort und Kwh
Ziel ist es nun in der Haupttabelle die Spalten
Name, Ort, Leistung und kWh
aus den beiden Tabellen zusammenzufügen. Das ganze soll Excel für mich automatisch erledigen. Sobald ich neue Einträge in beiden Tabellen eingebe, sollen diese in der Haupttabelle übernommen werden.
Geht so etwas mit Hilfe eines Makros ?
Mir fehlen die nötigen Kenntnisse in VBA und Excel ...
Wie erstelle ich solch ein Makro ?
Klar ist mir, dass es sich um eine Bedingungsfunktion handelt.
Der Name soll die Bedingung sein, nach der die Daten in der Haupttabelle sortiert werden. (Beispiel hier: Mustermann, Musterfrau)
Wäre sehr nett wenn mir irgendjemand dabei helfen könnte.
MfG
mykey

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

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei Makro !
28.12.2004 12:09:34
Dieter
Hallo mykey,
wenn Name und Ort in beiden Tabellen gleich ist, löst Du das ganze am besten als Query. Dazu mußt Du allerdings Query noch installieren, falls dies noch nicht geschehen sein sollte.
Gruß
Dieter
AW: Hilfe bei Makro !
28.12.2004 12:41:48
mykey
wie und wo mache ich das ?
AW: Hilfe bei Makro !
Beni
Hallo mykey,
dieser Code sucht in Tabell2 nach den Namen aus Tabelle1 und vergleicht den Ort, wenn beides übereinstimmt, fügt er die Daten in die Haupttabelle.
Gruss Beni

Sub Zusammenfassen()
With Sheets("Tabelle1")
For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
Name = .Cells(i, 1)
Set n = Sheets("Tabelle2").Columns(1).Find(What:=Name, LookIn:=xlValues, LookAt:=xlWhole)
If Not n Is Nothing And .Cells(i, 1) = n(1, 2) Then
lz = Sheets("Haupttabelle").Cells(Rows.Count, 1).End(xlUp).Row
Sheets("Haupttabelle").Cells(lz + 1, 1) = .Cells(i, 1)
Sheets("Haupttabelle").Cells(lz + 1, 2) = .Cells(i, 2)
Sheets("Haupttabelle").Cells(lz + 1, 3) = .Cells(i, 3)
Sheets("Haupttabelle").Cells(lz + 1, 4) = n(1, 3)
End If
Next i
End With
End Sub

Anzeige
AW: Hilfe bei Makro !
28.12.2004 15:28:21
mykey
Hi Beni,
danke für deine hilfe !! :]
das Makro funktioniert. Allerdings bis zu der Zeile:
If Not n Is Nothing And .Cells(i, 1) = n(1, 2) Then ....
dort tritt der fehler auf:
Laufzeitfehler '91'
Objektvariable oder with-blockvariable nicht festgelegt.
was muss ich machen ?
MfG
mykey
AW: Hilfe bei Makro !
Beni
Hallo mykey,
bei mir funktioniert es bestens, deklariere
Dim n As Variant
Dim i As Long
Gruss Beni
AW: Hilfe bei Makro !
mykey
hmm leider funktioniert das bei mir nicht.
ich hab die datei mal angehängt. wäre nett wenn du mir sagen könntest was ich falsch gemacht habe ...
https://www.herber.de/bbs/user/15396.xls
mfG
mykey
Anzeige
AW: Hilfe bei Makro !
Beni
Hallo mykey,
ich habe das Makro entsprechen angepasst und es funktioniert bei mir.
Gruss Beni

Sub Zusammenfassen()
Dim n As Variant
Dim i As Long
With Sheets("Leistung")
For i = 2 To .Cells(Rows.Count, 6).End(xlUp).Row
Name = .Cells(i, 6)
Set n = Sheets("Kwh").Columns(9).Find(What:=Name, LookIn:=xlValues, LookAt:=xlWhole)
If Not n Is Nothing And .Cells(i, 9) = n(1, 8) Then
lz = Sheets("Haupttabelle").Cells(Rows.Count, 1).End(xlUp).Row
Sheets("Haupttabelle").Cells(lz + 1, 1) = .Cells(i, 6)
Sheets("Haupttabelle").Cells(lz + 1, 2) = .Cells(i, 9)
Sheets("Haupttabelle").Cells(lz + 1, 4) = .Cells(i, 4)
Sheets("Haupttabelle").Cells(lz + 1, 3) = n(1, 28)
End If
Next i
End With
End Sub

Anzeige
AW: Hilfe bei Makro !
mykey
Hi Beni,
danke für deine Hilfe ! :)
Nun bin ich überglücklich, dass das so gut funktioniert.
Allerdings hat das Makro anscheinend Probleme, wenn ich in der einen tabelle nur 300 einträge habe und in der anderen 700 einträge ... sprich: in der einen Tabelle sind 300 namen mit daten und der anderen 700 stück.
Fehlt da eventuell etwas ? Was muss ich machen ?
Ich bedanke mich für Deine Hilfe.
;)
mykey
AW: Hilfe bei Makro !
Beni
Hallo mykey,
er überträgt nur die Daten, die in beiden Tabellen vorhanden sind.
Gruss Beni
AW: Hilfe bei Makro !
mykey
hmm ja hast recht. :)
und wie mache ich das wenn die namen wild durcheinander in der tabelle herumliegen ?
wenn sie nicht geordnet sind ?
mfG
mykey
Anzeige
AW: Hilfe bei Makro !
mykey
ups ...
ja habs jetzt verstanden wie du das meinst.
mein problem is jetz nur noch, dass er nur die daten von 'leistung' und 'Kwh' übernimmt sofern er in beiden die namen oder ort findet.
wie mach ich das denn, damit er mir alle daten in das hauptfenster überträgt ?
auch wenn einige personen in der anderen liste nicht vorhanden sind ?
mfG
mykey
AW: Hilfe bei Makro !
Beni
Hallo mykey,
zuerst werden die Daten, die in beiden Tabellen kombiniert, anschliessend die Daten, die nur in Tabelle("Leistung") vorhanden sind und am Schluss die nur in Tabelle("Kwh") vorhanden sind.
Gruss Beni

Sub Zusammenfassen()
Dim n As Variant
Dim i As Long
With Sheets("Leistung")
For i = 2 To .Cells(Rows.Count, 6).End(xlUp).Row
Name = .Cells(i, 6)
Set n = Sheets("Kwh").Columns(9).Find(What:=Name, LookIn:=xlValues, LookAt:=xlWhole)
lz = Sheets("Haupttabelle").Cells(Rows.Count, 1).End(xlUp).Row
Sheets("Haupttabelle").Cells(lz + 1, 1) = .Cells(i, 6)
Sheets("Haupttabelle").Cells(lz + 1, 2) = .Cells(i, 9)
Sheets("Haupttabelle").Cells(lz + 1, 4) = .Cells(i, 4)
If Not n Is Nothing Then
If .Cells(i, 9) = n(1, 8) Then Sheets("Haupttabelle").Cells(lz + 1, 3) = n(1, 28)
End If
Next i
End With
With Sheets("Kwh")
For i = 2 To .Cells(Rows.Count, 9).End(xlUp).Row
Name = .Cells(i, 9)
Set n = Sheets("Leistung").Columns(6).Find(What:=Name, LookIn:=xlValues, LookAt:=xlWhole)
If n Is Nothing Then
lz = Sheets("Haupttabelle").Cells(Rows.Count, 1).End(xlUp).Row
Sheets("Haupttabelle").Cells(lz + 1, 1) = .Cells(i, 9)
Sheets("Haupttabelle").Cells(lz + 1, 2) = .Cells(i, 16)
Sheets("Haupttabelle").Cells(lz + 1, 3) = .Cells(i, 36)
End If
Next i
End With
End Sub

Anzeige
AW: Hilfe bei Makro !
mykey
DAAAAAAANKEEEE !!!
Es funktioniert !
Subbbiiii!
^^ ^^ ;D
Herzlichen Dank Beni!
Denke mal du bist sehr fitt in Excel. :)
mykey

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige