PDA

Vollständige Version anzeigen : Gefilterte Werte in neue Tabelle kopieren ?


Mikey
05.09.2001, 09:42
Hi !

Ich möchte aus einer Tabelle bestimmte Zeilen herausfiltern und diese in eine neue Tabelle kopieren.
Wie realisiere ich das in einem Makro?

Ich habe z.B. die Original Tabelle "All", die nie verändert wird.
Diese enthält über 100 Zeilen von Spalte A bis Z. Es sind immer fast alle Spalten gefüllt.
In der ersten Zeile stehen immer die Überschriften für jede Spalte.

Der Sinn ist, dass ich diese Tabelle nochmal kopieren müsste um dann dort die Zeilen zu filtern.
Das ist langsamer und rechenintensiver als wenn ich gleich nur die gewünschten Zeilen in eine neue Tabelle kopiere. Die 1. Zeile soll aber immer mitkopiert werden.

Also ich möchte z.B. alle Zeilen in deren Spalte B mit "10*" ,"11*" oder "12*" beginnt, in eine neue Tabelle in der selben Arbeitsmappe kopieren. Diese neue Tabelle soll nach Möglichkeit gleich den Namen "Test" erhalten.
Die Suchkriterien sind immer Texte, weil hinter den Zahlen noch Texte stehen!

Kann mir jemand helfen?

DANKE !

Mikey

<p align="left"><font size="1" face="Century Gothic"><font color="#000000">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurde in diesem Beitrag ein Link entfernt.</font>

Klaus-Dieter
05.09.2001, 16:47
Hallo Mikey,

so sollte es gehen:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Global</span> z, zz
&nbsp;
<span class="TOKEN">Sub</span> zeilen_kopieren()
z = 1
<span class="TOKEN">Do</span> <span class="TOKEN">While</span> Cells(z, 1) &lt;&gt; &quot;&quot;
te = Left(Cells(z, 2), 2)
Select Case te
Case <span class="TOKEN">Is</span> = &quot;10&quot;
ausgabe
Case <span class="TOKEN">Is</span> = &quot;11&quot;
ausgabe
Case <span class="TOKEN">Is</span> = &quot;12&quot;
ausgabe
<span class="TOKEN">End</span> Select
z = z + 1
<span class="TOKEN">Loop</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span><hr>&nbsp;
<span class="TOKEN">Sub</span> ausgabe()
Range(&quot;A&quot; &amp; z, &quot;Z&quot; &amp; z).Select
Range(&quot;Z&quot; &amp; z).Activate
Selection.Copy
Worksheets(&quot;Test&quot;).Activate
zz = zz + 1
Range(&quot;A&quot; &amp; zz).Select
ActiveSheet.Paste
Worksheets(&quot;Tabelle1&quot;).Activate
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Das Blatt "Test" mußt Du erst mal von Hand erzeugen, ich hatte es im Makro versucht, ist auch gelungen, aber aus unerfindlichen Gründen wurde dann die erste Zeile nicht kopiert. :(

<font size="1" face="Century Gothic">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurde in diesem Beitrag der Code für dieses Forum angepasst.<font>

Mikey
05.09.2001, 23:21
@Klaus-Dieter

Wow ! :)

Vielen Dank! Du bist wahrscheinlich meine Rettung !

Ich werde das ausprobieren! ;)

Mfg

Mikey

<font size="1" face="Century Gothic">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurden in diesem Beitrag Links korrigiert, die auf falsche Adressen zeigten...</font>

Pittchen
07.09.2001, 08:54
Hey Klaus-Dieter,
erst Mal Dank für Deinen Code; ich hab's gleich ausprobiert und die Prozedur dem Klick-Ereignis eines Buttons zugewiesen:

Private Sub CommandButton1_Click()
Call zeilen_Kopieren
End Sub

funktioniert aber nicht?!?! Wieso?

Gruß Pittchen

Klaus-Dieter
09.09.2001, 20:11
Hallo Mickey (Pittchen?),

konnte das bei mir nicht nachvollziehen. Was funktioniert nicht? Eventuell schickst Du mir mal Deine Tabelle per eMail.

Mikey
09.09.2001, 20:36
@Klaus-Dieter

Jawohl! Es hat funktioniert!

Vielen Dank!

Nein, ich bin nicht Pittchen!

@Pittchen

Das Aufrufen des Makros geht nicht?
Versichere dich, dass sich im aktuellen Arbeitsverzeichnis von Excel auch deine Mappe befindet.

Und dann versuche es mal mit dem "Application.Run" Befehl.

Ich glaube der war so:
Application.Run="'DeineMappe.xls'Makro"

(Ging doch so ähnlich, oder Klaus-Dieter?)


Mfg

Mikey

Mikey
10.09.2001, 10:03
Hi !

Korrektur:

Application.Run "MeineMappe.xls!Makro1"

So ging es.