Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1020to1024
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
Daten in Liste kopieren
31.10.2008 14:49:31
Robert
Hallo zusammen.
Folgendes Problem:
Ich habe auf einem Excel Sheet eine Liste mit Kursen.
Mit einem Drop Down Menü kann man im Sheet einzelne Kurse selektieren.
Diese Kurse möchte ich per Knopfdruck in ein anderes worksheet kopieren.
Dabei dürfen keine Kurse doppelt kopiert werden, und die Liste soll immer chronologisch
nach Datum geordnet sein.
Kurzbeispiel: In Zelle B6 steht der selektierte Kurs, dieser soll in die Tabelle auf dem anderen worksheet
kopiert werden. Dabei darf der Kurs nicht doppelt kopiert werden und er muss sich an die richige chronologische stelle in der Liste setzen!
Mein bisheriges Makro:

Private Sub CommandButton1_Click()
' Daten im Bereich (B17 und D17) markieren und kopieren
Range("B17, D17").Select
Selection.Copy
' In Spalte A nach der ersten leeren Zelle suchen
Sheets("Historie").Select
ActiveSheet.Range("A6:A18").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
ActiveCell.Select
' Markierte Daten als Werte einfügen
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub


Das Kopieren funktioniert zwar schon, aber es sind noch doppelte Werte möglich und es findet keine Sortierung statt.
Es wäre super, wenn jemand hierfür einen Lösungsvorschlag hat!
Besten Dank!!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten in Liste kopieren
01.11.2008 13:57:00
Daniel
Hi
hier ne Lösung mit Prüfung ob der Wert schon vorhanden ist und anschließender Sortierung.
da ich deine Daten nicht kenne, kann u.U. noch ne kleine Anpassung erforderlich sein.
ich habe die unnötigen Selects mal eleminiert, das solltest du dir auch angewöhnen.
aufgezeichneter Code muss immer noch etwas überarbeitet werden.
das erhöht die Verarbeigungsgeschwindigkeit und erleichtert das lesen des Codes.
sollte im Datenbereich A6:A18 kein Platz mehr frei sein, gibts allerdings noch nen Fehlerabbruch.

Private Sub CommandButton1_Click()
'Prüfen auf Doppelt:
If WorksheetFunction.CountIf(Sheets("Historie").Range("A6:A18"), Range("B17")) > 0 Then
MsgBox "Kurs " & Range("B17").Value & " ist schon vorhanden"
Else
' Daten im Bereich (B17 und D17) markieren und kopieren
Range("B17, D17").Copy
' In Spalte A nach der ersten leeren Zelle suchen und kopieren
Sheets("Historie").Range("A6:A18").Find(What:="", LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
' Nach Spalte A sortieren
Sheets("Historie").Range("A6:B18").Sort Key1:=Sheets("Historie").Range("A6"), _
Order1:=xlAscending, Header:=xlNo
End If
End Sub


Gruß, Daniel

Anzeige
AW: Daten in Liste kopieren
01.11.2008 14:12:48
Daniel
Hi
hier ne Lösung mit Prüfung ob der Wert schon vorhanden ist und anschließender Sortierung.
da ich deine Daten nicht kenne, kann u.U. noch ne kleine Anpassung erforderlich sein.
ich habe die unnötigen Selects mal eleminiert, das solltest du dir auch angewöhnen.
aufgezeichneter Code muss immer noch etwas überarbeitet werden.
das erhöht die Verarbeigungsgeschwindigkeit und erleichtert das lesen des Codes.
sollte im Datenbereich A6:A18 kein Platz mehr frei sein, gibts allerdings noch nen Fehlerabbruch.

Private Sub CommandButton1_Click()
'Prüfen auf Doppelt:
If WorksheetFunction.CountIf(Sheets("Historie").Range("A6:A18"), Range("B17")) > 0 Then
MsgBox "Kurs " & Range("B17").Value & " ist schon vorhanden"
Else
' Daten im Bereich (B17 und D17) markieren und kopieren
Range("B17, D17").Copy
' In Spalte A nach der ersten leeren Zelle suchen und kopieren
Sheets("Historie").Range("A6:A18").Find(What:="", LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
' Nach Spalte A sortieren
Sheets("Historie").Range("A6:B18").Sort Key1:=Sheets("Historie").Range("A6"), _
Order1:=xlAscending, Header:=xlNo
End If
End Sub


Gruß, Daniel

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige