Das Archiv des Excel-Forums
Makro zum kopieren
Betrifft: Makro zum kopieren
von: Sonja
Geschrieben am: 22.09.2003 20:48:58
Hallo Helfer
Ich habe in Tabelle1 von E1 bis E10 Namen stehen
In Tabelle2 stehen unter anderem diese Namen auch in Spalte B1:B1000
Da die Namen in Tabelle1 auch wechseln, möchte ich ,dass er an Hand von E1:E10
diese Namen in Tabelle2 sucht und die komplette Zeile (von B bis G )in die Tabelle3 kopiert mit 5 Leerzeilenzwischen den Begriffen (Anfang soll A10 sein)
Ich hoffe ich habe mich verständlich ausgedrückt
Da ich in VBA nicht gut bin hoffe ich, das einer mir helfen kann
Viele Grüße
Sonja
Betrifft: AW: Makro zum kopieren
von: Josef Ehrensberger
Geschrieben am: 22.09.2003 21:34:07
Hallo Sonja,
Warum willst du unbedingt ein Makro?
Ich würde mit SVERWEIS arbeiten.
In Tabelle3 "A10" schreibst du
=SVERWEIS(Tabelle1!$E$1;Tabelle2!$B$1:$G$30;1;0)
dann kopierst du die formel in die entsprechenden Zellen der zeile 10
und passt in der Zeile 10 die Spaltennummern an und kopierst nun alle zellen
in die nächste zeile die du zur anzeige verwenden willst.
Dort musst du dann in jeder zeile aus z.B. $E$1 - $E$2, $E$4,...usw. machen
ich hoffe du verstehs was ich meine gruß - Sepp
Betrifft: AW: Ein Fehler im Makro
von: Sonja
Geschrieben am: 22.09.2003 22:51:18
Hallo Sepp
Mit dem Sverweis bin ich leider nicht zurechtgekommen
Ich hab jetzt mit einem Makro aus dem Forum schon mal vorgearbeitet
zeile = 10
For z = 1 To 1500
If Sheets("TB2").Cells(z, 2) = Sheets("TB1").Cells(7, 5) Then
Sheets("TB3").Cells(zeile, 2) = Sheets("TB2").Cells(z, 2)
Sheets("TB3").Cells(zeile, 3) = Sheets("TB2").Cells(z, 4)
Sheets("TB3").Cells(zeile, 4) = Sheets("TB2").Cells(z, 5)
Sheets("TB3").Cells(zeile, 5) = Sheets("TB2").Cells(z, 7)
zeile = zeile + 1
" hier wollte ich das gleiche noch mal einfügen "
End If
Next
End Sub
Das geht auch sehr gut
Nun wollte ich das einfach kopieren und bei TB1 einfach .Cells(8, 5) Schreiben und
die Zeile in z.B 30 verändern, das macht er aber nicht Fehlermeldungen z.B For z To wird
schon verwendet - Next ohne For
Was mache ich Falsch
Wie stelle ich es an das er mit den 2 Veränderungen weitermacht
Vielen Dank im voraus
Gruß
Sonja
Betrifft: AW: Ein Fehler im Makro
von: Björn B.
Geschrieben am: 23.09.2003 02:19:28
Hallo Sonja,
ich weiß, ich bin ein Ignorant aber lass doch mal Deine Makrolösung beiseite. Ich versuche Dir noch mal Sepp's Ansatz näher zu bringen.
Trage auf Tabelle 3 in Zeile 10 folgendes in die angegebenen Spalten ein:
Spalte A =SVERWEIS(Tabelle1!$E1;Tabelle2!$B$1:$G$1000;1;0)
Spalte B =SVERWEIS(Tabelle1!$E1;Tabelle2!$B$1:$G$1000;2;0)
Spalte C =SVERWEIS(Tabelle1!$E1;Tabelle2!$B$1:$G$1000;3;0)
Spalte D =SVERWEIS(Tabelle1!$E1;Tabelle2!$B$1:$G$1000;4;0)
Spalte E =SVERWEIS(Tabelle1!$E1;Tabelle2!$B$1:$G$1000;5;0)
Spalte F =SVERWEIS(Tabelle1!$E1;Tabelle2!$B$1:$G$1000;6;0)
Nun markiere die sechs Zellen und kopiere die Formel in die neun darunterliegenden Zeilen. Als nächstes füge fünf Leerzeilen vor Zeile 11 ein. Markiere die fünf Leerzeilen, kopiere sie und füge sie überall dort ein, wo die sie haben willst.
Gruß
Björn
Betrifft: AW: Ein Fehler im Makro
von: Sonja
Geschrieben am: 23.09.2003 08:08:01
Hallo Björn
versuch mal zu erklären warum ich mit sverweis nicht weiterkomme
In E1 steht z.B Suppe und in E2 Butter - die erste Zeile geht logisch
Wenn ich die Formel nach unten Kopiere geht er natürlich auf E2, ich möchte aber von E1
erst mal alles unternander haben - also nicht 1 Zeile Suppe 2. Butter 3. Bier, wie soll ich denn da weiterrechnen
Ich weis doch auch gar nicht wie oft Suppe in Tabelle2 auftaucht
und das Makro sucht alle Suppen und schreibt sie schön untereinander
Ich kann ja auch 10 Makros schreiben und das 11 führt die 10 alle aus
wenn nichts besseres zu haben ist
Gruß
Sonja
Betrifft: AW: Ein Fehler im Makro
von: Björn B.
Geschrieben am: 23.09.2003 16:05:41
Hallo Sonja,
nun hab' ich's begriffen (glaub' ich zumindest).
Versuch's mal mit folgendem Makro:
Sub kopieren()
ThisWorkbook.Sheets("Tabelle3").Range("A10:F1000").Clear
Zeile = 5
For zaehler_1 = 1 To 10
Zeile = Zeile + 5
For zaehler_2 = 1 To 1000
If ThisWorkbook.Sheets("Tabelle1").Cells(zaehler_1, 5) = ThisWorkbook.Sheets("Tabelle2").Cells(zaehler_2, 2) Then
For zaehler_3 = 1 To 6
ThisWorkbook.Sheets("Tabelle3").Cells(Zeile, zaehler_3) = ThisWorkbook.Sheets("Tabelle2").Cells(zaehler_2, zaehler_3)
Next zaehler_3
Zeile = Zeile + 1
End If
Next zaehler_2
Next zaehler_1
End Sub
Ich hoffe das hilft Dir.
Gruß
Björn
Betrifft: AW: Dank mit Text
von: Sonja
Geschrieben am: 23.09.2003 21:48:39
Hallo Björn
Jo Jo so habe ich mir das vorgestellt
sieht gut aus, arbeitet gut und 1Makro ist doch übersichtlicher als 11
Vielen Dank noch mal, das Du Dich dem Problem trotzdem angenommen hast
Viele Grüße
Sonja
Excel-Beispiele zum Thema " Makro zum kopieren"