Copy and Paste

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Copy and Paste
von: Martin Halberstadt
Geschrieben am: 08.10.2003 09:45:58

Guten Morgen liebe Forumsbesucher,

ich verstehe die Welt nicht mehr. Eine "Copy & Paste"-Kombination funktioniert nicht mehr. Ich habe eine dreifache Wenn-Dann-Funktion. In jeder Abfrage taucht diese "Copy & Paste"-Kombination auf, allerdings funktioniert Sie in der dritten nicht mehr. Selbst wenn ich den Code kopiere und einige wenige Änderunge per Hand vornehme...nichts. Ich hoffe Ihr könnt mir bei meinem Problem helfen.

Hier der Code:


Private Sub cboUserAuswahl_Click()
With Application
    .DisplayAlerts = True
    .ScreenUpdating = False
End With
Sheets("TAB1").Select
Selection.AutoFilter Field:=1
Sheets("TAB2").Select
Selection.AutoFilter Field:=1
Sheets("TAB3").Select
Selection.AutoFilter Field:=1
Sheets("Auswahl-Maske").Select
Dim Feld As Variant
Application.ScreenUpdating = False
Sheets("Daten").Select
Tabelle2.Rows("1:500").Delete Shift:=xlUp
    If optTAB1.Value = True Then
        Sheets("TAB1").Select
        Selection.AutoFilter Field:=4, Criteria1:=cboUserAuswahl.Value, Operator:=xlAnd
        Tabelle1.Range("A4:G4").CurrentRegion.Copy
        Tabelle4.Range("A1").PasteSpecial Paste:=xlValues
        Sheets("Daten").Select
        Tabelle4.Rows("1:1").Delete Shift:=xlUp
        Feld = Range("A1:G" & CStr(Range("D65536").End(xlUp).row))
        lstUserAuswahl.List = Feld
        Application.DisplayAlerts = False
            With Application
                .DisplayAlerts = True
                .ScreenUpdating = False
            End With
        Sheets("TAB1").Select
        Selection.AutoFilter Field:=4
        Sheets("Auswahl-Maske").Select
    ElseIf optTAB2.Value = True Then
        Sheets("TAB2").Select
        Selection.AutoFilter Field:=4, Criteria1:=cboUserAuswahl.Value, Operator:=xlAnd
        Tabelle2.Range("A4:G4").CurrentRegion.Copy
        Tabelle4.Range("A1").PasteSpecial Paste:=xlValues
        Sheets("Daten").Select
        Tabelle4.Rows("1:1").Delete Shift:=xlUp
        Feld = Range("A1:G" & CStr(Range("D65536").End(xlUp).row))
        lstUserAuswahl.List = Feld
        Application.DisplayAlerts = False
            With Application
                .DisplayAlerts = True
                .ScreenUpdating = False
            End With
        Sheets("TAB2).Select
        Selection.AutoFilter Field:=4
        Sheets("Auswahl-Maske").Select
    ElseIf optTAB3.Value = True Then
        Sheets("TAB3").Select
        Selection.AutoFilter Field:=6, Criteria1:=cboUserAuswahl.Value, Operator:=xlAnd
        Tabelle3.Range("A4:I4").CurrentRegion.Copy
        Tabelle4.Range("A1").PasteSpecial Paste:=xlPasteValues
        Sheets("Daten").Select
        Tabelle4.Rows("1:1").Delete Shift:=xlUp
        Feld = Range("A1:I" & CStr(Range("D65536").End(xlUp).row))
        lstUserAuswahl2.List = Feld
        Application.DisplayAlerts = False
            With Application
                .DisplayAlerts = True
                .ScreenUpdating = False
            End With
        Sheets("TAB3").Select
        Selection.AutoFilter Field:=6
        Sheets("Auswahl-Maske").Select
    End If
End Sub


Sinn der Sache ist es, nach Auswahl eines OptionButtons einen bestimmten Begriff aus einem Kombinationsfeld auszuwählen, nach welchem dann ein bestimmtes Tabellenblatt gefiltert wird. Diese gefilterten Daten werden dann in das Tabellenblatt 4 ("Daten") zwischengespeichert, die erste Spalte, in welcher sich die Spaltenüberschriften befinden wird gelöscht und dieser restliche eingefügte Bereich wird dann in eines von zwei Listenfelder übergeben.

Dummerweise sind in meinen Tabellen nicht alle Zellen gefüllt. Dies hat mir schon viele Probleme bereitet. Für die ersten beiden Tabellenblätter geht es mittlerweile, aber bei der dritten Abfrage, die das dritte Tabellenblatt betrifft geht dies leider nicht. Es werden nicht alle Zellen des Filters kopiert und eingefügt. Fülle ich diese Zellen probehalber, dann geht es.

Warum geht es nicht, wenn die Zellen leer sind?

Bitte helft mir. Vielen Dank.

Mit freundlichen Grüßen,
Martin Halberstadt
Bild


Betrifft: AW: Copy and Paste
von: Karl-Otto Reimann
Geschrieben am: 08.10.2003 10:18:17

Hallo Martin
CurrentRegion gilt auch für gefilterte Daten, d.h.
sollte eine Zeile keinen Inhalt haben, endet auch
CurrentRegion eine Zeile voher. Besser wäre es, für den
Filter einen Bereich zu definieren und dann hiermit
weiterzumachen:

.CurrentRegion.SpecialCells(xlCellTypeVisible)

mfG KO


Bild


Betrifft: AW: Copy and Paste
von: Martin Halberstadt
Geschrieben am: 08.10.2003 10:25:51

Hallo Karl-Otto,

erstmal vielen Dank, dass Du mir bei meinem Problem helfen willst.

Mit "CurrentRegion" und "xlCellTypeVisible" habe ich es auch schon mal probiert, allerdings ohne Erfolg. Aber wahrscheinlich habe ich den Bereich nicht richtig definiert. Wie könnte ich das Deiner Meinung nach realisieren?

Schöne Grüße,
Martin Halberstadt


Bild


Betrifft: AW: Copy and Paste
von: Karl-Otto Reimann
Geschrieben am: 08.10.2003 10:42:59

Hallo Martin
versuch dies:

Sub Filter()
Sheets("Tab1").Range("a30:i750").Select
With Selection
.AutoFilter Field:=2, Criteria1:="T*"
.AutoFilter Field:=1, Criteria1:=">100000"
End With
Range("a31:i750").CurrentRegion.SpecialCells(xlCellTypeVisible).copy _
Worksheets("Tab2").Range("A1")
Application.CutCopyMode = False
Gruß KO


Bild


Betrifft: AW: Copy and Paste
von: Martin Halberstadt
Geschrieben am: 08.10.2003 10:58:14

Hallo Karl-Otto,

hab Deinen Code übernommen und in meinen eingefügt. Das Filtern und die Übergabe von Daten funktioniert zwar einwandfrei, aber leider wieder nur die Zellen, in denen auch Daten stehen.

Die Daten, die im Tabellenblatt "Daten" zwischengespeichert werden sollen kommen auch alle an. Nur die Übergabe dieser eingefügten Daten in das Listenfeld misslingt sobald leere Zellen dabei sind. Der Fehler in meinem Code kann also eigentlich nur an der Stelle der Listenfeld-Übergabe liegen.

Vielleicht wärst Du so nett und schaust Dir meinen Code noch einmal an besagter Stelle an. Wäre Dir sehr dankbar, wenn Du einen Fehler finden würdest.

Was allerdings merkwürdig ist: Warum geht es nur im dritten Tabellenblatt nicht? Die beiden ersten haben auch Lücken in ihren Tabellen...aber dort geht es. Komisch....!

Gruß,
Martin Halberstadt


Bild


Betrifft: AW: Copy and Paste
von: Karl-Otto Reimann
Geschrieben am: 08.10.2003 11:07:22

Hallo Martin
Wenn der gefilterte Bereich keine leeren Zeilen mehr enthält,
kann doch im Listenfeld auch keine leere Zeile erscheinen.
Vielleicht hast Du im gefilterten Bereich Zeilen ausgeblendet.
Gruß KO


Bild


Betrifft: AW: Copy and Paste
von: Martin Halberstadt
Geschrieben am: 08.10.2003 11:12:46

Hallo Karl-Otto,

aber der gefilterte Bereich enthält ja leider leere Zellen. Das macht das Ganze ja so schwierig. Die Quelltabelle wird leider IMMER leere Zellen beinhalten.

Der gefilterte Bereich wird auch so wie er gefiltert wurde nach "Daten" kopiert. So soll es ja auch sein.

Aber das, was dort "zwischengespeichert" wurde, soll wiederum ins Listenfeld übertragen werden. Dies klappt leider nicht.

Und ausgeblendet ist auch nichts.

Gruß,
Martin


Bild


Betrifft: AW: Copy and Paste
von: Karl-Otto Reimann
Geschrieben am: 08.10.2003 11:21:36

Hallo Martin
Jeder Datensatz(Zeile) kann natürlich auch leere Zellen enthalten.
Ich bezog mich auf Zeilen. Solange Zeilen auch nur einen Wert ent-
halten, wird diese Zeile auch gefiltert. Willst Du vielleicht leere
Zellen löschen und dann erst filtern?
KO


Bild


Betrifft: AW: Copy and Paste
von: Martin Halberstadt
Geschrieben am: 08.10.2003 11:31:01

Hallo Karl-Otto,

nein, leere Zellen sollen nicht gelöscht werden. Es soll nach einem Kriterium gefiltert werden, das Gefilterte soll in einem weiteren Tabellenblatt abgelegt werden (per Copy & Paste) und das so Abgelegt soll in ein Listenfeld übertragen werden.

Wie bereits erwähnt, das Filtern und Copy & Paste funktionieren ja mittlerweile, aber das Übertragen der eingefügten Daten geht nicht. Und komplett leere Zeilen sind nicht vorhanden. Die Struktur der Tabellen ist so:

Name / Vorname / Telefon-Nr. / Email / Mobil-Nr.

Ab und zu sind einige Zellen leer. Gefiltert werden sie auch, das ist klar, aber sie werden nicht in das Listenfeld übernommen. Da liegt das Problem.

Gruß, Martin.


Bild


Betrifft: AW: Copy and Paste
von: Karl-Otto Reimann
Geschrieben am: 08.10.2003 11:39:30

Hallo Martin
Kann es sein, daß die benutzerdefinierte Formatierung ";;;" ist
und die nicht sichtbaren Zellen in der Liste nicht auftauchen?
Gruß KO


Bild


Betrifft: AW: Copy and Paste
von: Martin Halberstadt
Geschrieben am: 08.10.2003 11:42:41

Hallo Karl-Otto,

das ist es leider auch nicht. Diese Idee hatte ich heute morgen auch. Hab restlos alles als Standard formatiert. Leider kein Erfolg.

Gruß, Martin.


Bild


Betrifft: AW: Copy and Paste
von: Karl-Otto Reimann
Geschrieben am: 08.10.2003 11:53:21

Hallo Martin
Dann sollten wir uns mal den Möglichkeiten
deines Listenfeldes zuwenden. Es gibt reichlich
Möglichkeiten! Hast Du mal mit den Eigenschaften
"Daten" oder "Verschiedenes" experimentiert?
Gruß KO


Bild


Betrifft: AW: Copy and Paste
von: Martin Halberstadt
Geschrieben am: 08.10.2003 11:57:08

Hallo Karl-Otto,

nicht wirklich. Lass mal ein paar Experimentier-Beispiele hören, die ich ausprobieren könnte. Ich hab in den Eigenschaften des Listenfeldes zwar schon geschaut, aber wenn Du ein paar Anregegungen für mich hast...!

Gruß, Martin.


Bild


Betrifft: AW: Copy and Paste
von: Karl-Otto Reimann
Geschrieben am: 08.10.2003 12:13:07

Hallo Martin
1. Sind alle Spalten sichtbar (ColumnCount, ColumnWidth (bei 2 Spalten
brauchst Du nur einen Wert))
2. ListFillRange immer mit Blattnamen (z.B.: Tabelle1!A1:C10), sonst
morgen Stress
3. Ist es eine UserForm (eine Geißel der Menschheit, ohne mich!!)
mfG KO





Bild


Betrifft: AW: Copy and Paste
von: Martin Halberstadt
Geschrieben am: 08.10.2003 12:18:56

Hallo Karl-Otto,

zu 1: Ja, es sind alle sichtbar.

zu 2: Ich arbeite in diesem Fall nur mit "List".

zu 3: Scheiße, ja. Es ist eine UserForm. Leider musste ich eine nehmen, da mein Chef es optisch besser findet. Und ich als Azubi, der noch nie programmiert hat...ich darf es ausbaden. Ich hatte das ganze schon mit Steuerelementen direkt in Excel. Hat super geklappt. Aber jetzt in der UserForm sind manche Teile des Quelltexts ganz anders gestrickt. Leider muss es so sein.

Gruß, Martin.


Bild


Betrifft: AW: Copy and Paste
von: Karl-Otto Reimann
Geschrieben am: 08.10.2003 12:27:52

Hallo Martin
Hättest Du das 'mal sofort gesagt, hätte ich mir nicht
de A.... aufreißen brauchen.
Ich wünsch Dir aber trotzdem noch viel Spaß und einen
schönen Tag.


Bild


Betrifft: AW: Copy and Paste
von: Martin Halberstadt
Geschrieben am: 08.10.2003 12:44:03

Hallo Karl-Otto,

sorry, dass ich Deine Zeit umsonst in Anspruch genommen habe.
Trotzdem vielen Dank.

Auch Dir einen schönen Tag.

Gruß,
Martin Halberstadt


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Tabellenblatt mit bestimmtem Namen erstellen"