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

Zellenwerte ausgeben

Zellenwerte ausgeben
19.05.2008 22:42:15
thunderbird@online.de
Hallo Excelexperten,
benötige einmal Eure Hilfe für folgendes Problem:
habe in Tabelle01 in Spalten J02 bis J50 unterschiedliche Zahlenwerte aufgelistet. Nun möchte ich auf Tabelle02 die jeweiligen Zeilen ausgeben, wenn in Spalte J02 bis J50 der Zahlenwert größer 3000 beträgt.
Wie bekomme ich die kompletten Zeilen auf dem Tabellenblatt02 untereinander angezeigt?
Vielen Dank für Eure Hilfe.
Gruß
Thunderbird

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellenwerte ausgeben
19.05.2008 23:03:51
Daniel
Hi
eine Methode wäre der Spezialfilter:
1. in Zelle J01 ne überschrift reinschreiben
2. nach Tabelle02 wechseln
3. dort in eine freie Zelle die Überschrift von J1 reinschreiben und in die Zelle dadrunterf ">3000"
4. DATEN - FILTER - SPEZIALFILTER klicken
5. dort folgendes Eintragen
- Liste an andere Stelle Filtern aktiviert
- Listenbereich: den Zellbereich Tabelle01!J1:J52
- Kriterienbereich: die beiden Zellen aus Punkt 3
- Kopieren nach: den Zellbereich, wo die Daten hinsollen
und fertig.
die Daten sind aber Statisch, dh. wenn sich die Daten auf Tabelle01 ändern, dann ändern sich die so gefilterten Daten NICHT, dazu müsste der Spezialfilter nochmal aktiviert werden.
fallls du es Dynamisch brauchst (dh Änderungen in Tabelle01 werden sofort in Tabelle02 übernommen), müsstest du eine Formelbasierte Lösung verwenden, da findest du wenn, dann hier was passendes:
http://www.excelformeln.de/formeln.html?gruppe=11
Gruß, Daniel

Anzeige
hier mein VBA Vorschlag
20.05.2008 00:35:00
Matthias
Hallo

Ich habe es so verstanden,
das Du die komplette Zeile in der in der Spalte J eine Zahl > 3000 steht mit in Tabelle2 nehmen  _
willst.
Dafür habe ich jetzt mal eine Beispielmappe hochgeladen (wie ich es mir vorstelle)


https://www.herber.de/bbs/user/52469.xls
An die Experten:
Ich habe es echt ohne Select versucht. Aber in diesem Falle bin ich gescheitert.
Also nicht schimpfen
sondern den Code einfach verbessern ;o)
Userbild

Anzeige
AW: hier mein VBA Vorschlag
20.05.2008 00:43:00
Daniel
HI
hier der Code (zumindest der relevante ausschnitt) Select-Frei:

Y = 1
For x = 2 To 50
If Cells(x, "J") > 3000 Then
Sheets("Tabelle1").Rows(x).Copy
Sheets("Tabelle2").Rows(Y).PasteSpecial xlPasteAll
Y = Y + 1
End If
Next


Gruß, Daniel

ich wusste doch, da geht noch was :o) oT
20.05.2008 00:52:23
Matthias

AW: ich wusste doch, da geht noch was :o) oT
20.05.2008 22:30:00
thunderbird@online.de
Hallo zusammen und besten Dank an alle für die tolle und schnelle Hilfe. Die Vorschläge von Daniel und Matthias passen am Besten. Hab' hierzu noch 3 ergänzende Fragen:
1.) Mit dem Script werden die ausgewählten Daten in die Tabelle2 ab Zelle A1 kopiert.
Wie kann man einen beliebigen Bereich auswählen, also beispielsweise ab Zelle B36 sollen
die Ergebnisse kopiert werden;
2.)Wie bekommt man es hin, wenn aus der Ergebniszeile nur einzelne Spalten benötigt werden - also beispielsweise wurde die Zeile 10 als Ergebnis ausgewählt, hieraus sollen dann nur die Spalte "B10", "E10", "H10" als Ergebnis ausgegeben werden;
3.) Wie muss das Script ergänzt werden, damit weitere Bedingungen aus den Spalten "B2:B50"=1
und "E2:E50"=3 oder 5 der Tabelle1 mit abgefragt werden?
Wäre toll, wenn Ihr mir hiermit noch einmal helfen könntet.
Besten Dank
Thunderbird

Anzeige
AW: ich wusste doch, da geht noch was :o) oT
21.05.2008 10:26:00
Daniel
Hallo
ich hab versucht, deine Wünsche mal umzusetzen
1. es werden nur die Spalten B, E, und H kopiert. beim Einfügen rutschen diese allerdings zusammen, dh sie stehen direkt nebeneinander ohne Zwischenspalten
2. die Daten werden an der Zelle eingefügt, die beim Start es Makros aktiv ist, dh. du musst erst die Zielzelle in Tabelle2 aktvieren und dann das Makro starten (dh. du musst den Startbutton auf das andere Blatt verlegen!)
3. die Bedingugen zum Kopieren habe ich nach deinen Wünschen ergänzt.

Sub Schaltfläche1_BeiKlick()
Dim x As Long, Y As Long
Dim ZielZelle As Range
If ActiveSheet.Name  "Tabelle2" Then
MsgBox "Bitte aktivieren Sie die Zieltabelle und die Zielzelle und starten dann das Makro  _
nocheinmal."
Exit Sub
End If
Set ZielZelle = ActiveCell
Application.ScreenUpdating = 0
Y = 1
With Sheets("Tabelle1")
For x = 2 To 50
If .Cells(x, "J") > 3000 And .Cells(x, "B") = 1   And (.Cells(x, "E") = 3 Or .Cells(x, "E") _
= 5) Then
.Range("B" & x & ",E" & x & ",H" & x).Copy
ZielZelle.PasteSpecial xlPasteAll
Set ZielZelle = ZielZelle.Offset(1, 0)
End If
Next
End With
Application.CutCopyMode = False
Sheets("Tabelle2").Activate
Cells(1, 1).Select
Application.ScreenUpdating = 1
MsgBox "Fertig alle Zeilen > 3000 wurden kopiert"
End Sub


Gruß, Daniel

Anzeige
AW: ich wusste doch, da geht noch was :o) oT
21.05.2008 13:37:00
thunderbird@online.de
Hallo Daniel,
ganz herzlichen Dank, das Programm läuft super und macht alles richtig - perfekt!
Eine letzte Frage - wirklich die letzte - habe ich noch:
Die zu kopierenden Spalten ("B", "E" und "H") haben auf dem Tabellenblatt1 in Zeile 1 eine Überschrift bzw. Spaltenbezeichnung. Wie bekommt man diese Überschriften zusammen mir den zu kopierenden
Spalten "B", "E" und "H" auch noch mit ausgegeben?
Besten Dank noch mal und herzliche Grüße
Thunderbird

AW: ich wusste doch, da geht noch was :o) oT
21.05.2008 14:01:00
thunderbird@online.de
Hallo Daniel,
sorry, bitte nicht Böse sein, hab doch noch eine Frage:
Wie kann man im Script die "ZielZelle" vorgeben, wenn es nicht die aktivierte Zelle sein soll,
ab der die zu kopierenden Zellen/Zeilen eingefügt werden sollen?
Ganz herzlichen Dank!
Gruß
Thunderbird

Anzeige
AW: ich wusste doch, da geht noch was :o) oT
21.05.2008 14:45:00
Daniel
Hi
wenn du der Zielzelle eine bestimmte Zelle zuweisen willst, dann so:
Set ZielZelle = Sheets("Tabell2").range("A1")
Tabellenblattname und Zelladdresse halt entsprechend anpassen
Die Prüfung, ob das richtige Blatt aktiv ist, kann dann entfallen.
wenn du die Überschriften benötigst, dann kannst du diese ja außerhalb der Scheife nochmal extra kopieren.
dazu musst du dann dem Zeilenzähler x die Zeilen-nr der Überschriftenzeile zuweisen, dann kannst du die entsprechende Zeile aus dem Code kopieren.
das ganze sieht dann in etwa so aus:

Sub Schaltfläche1_BeiKlick()
Dim x As Long
Dim ZielZelle As Range
 Set ZielZelle = Sheets("Tabelle2").range("A1")
Application.ScreenUpdating = 0
With Sheets("Tabelle1")
 x = 1
.Range("B" & x & ",E" & x & ",H" & x).Copy
ZielZelle.PasteSpecial xlPasteAll
Set ZielZelle = ZielZelle.Offset(1, 0)
For x = 2 To 50
If .Cells(x, "J") > 3000 And .Cells(x, "B") = 1   And (.Cells(x, "E") = 3 Or .Cells(x, " _
E") _
= 5) Then
.Range("B" & x & ",E" & x & ",H" & x).Copy
ZielZelle.PasteSpecial xlPasteAll
Set ZielZelle = ZielZelle.Offset(1, 0)
End If
Next
End With
Application.CutCopyMode = False
Sheets("Tabelle2").Activate
Cells(1, 1).Select
Application.ScreenUpdating = 1
MsgBox "Fertig alle Zeilen > 3000 wurden kopiert"
End Sub


Anzeige
AW: ich wusste doch, da geht noch was :o) oT
22.05.2008 01:02:00
thunderbird@online.de
Hallo Daniel,
abschließend noch einmal meinen Dank für Deine tolle Unterstützung. Das Programm funktioniert perfekt.
Ganz herzlichen Dank
Gruß
Thunderbird

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige