Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
412to416
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
412to416
412to416
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SortierKopierMakro

SortierKopierMakro
12.04.2004 18:04:11
thomas
Hallo Leute,
habe den ganzen Nachmittag mit dem Makrorecorder probiert, aber habs nicht geschafft.
Möchte ein Makro an den "Daten auswerten" CommandButton in Tabelle 1 hängen, das Folgendes tut:
https://www.herber.de/bbs/user/5183.xls
Sortiere die Werte der Szenarien in Block B nach dem Preis (aufsteigend) und kopiere dann den sortierten Datensatz als Resultat in den vorbereiteten Block C auf Tabelle1.
Problematisch ist, dass in B Zellbezüge sind, man kann also nicht direkt die Daten dort sortieren. Deshalb möchte ich zuerst den ganzen Datensatz von B ein paar Zeilen nach unten kopieren und dort ein Inhalte einfügen / Werte vornehmen und dann erst sortieren.
Kann mir jemand helfen, ein Makro zu schreiben, das gut nachvollziehbar ist, damit ich es dann bei Bedarf auch selbständig erweitern kann?
Besten Dank für allfällige Hilfe!
thomas

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SortierKopierMakro
12.04.2004 22:46:48
Josef Ehrensberger
Hallo Thomas!
Probier mal.

' **************************************************************
' Modul: Tabelle1 Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************

Option Explicit

Private Sub CommandButton1_Click()
Dim wksQ As Worksheet 'Quelltabelle "Tabelle2"
Dim wksZ As Worksheet 'Zieltabelle "Tabelle1"
Dim lngE As Long
Set wksQ = ThisWorkbook.Sheets("Tabelle2")
Set wksZ = ThisWorkbook.Sheets("Tabelle1")
lngE = IIf(IsEmpty(wksQ.Range("A65536")), wksQ.Range("A65536").End(xlUp).Row, 65536)
If lngE < 17 Then Exit Sub
'letzte Zeile in "Block B" ermitteln
'wenn "Block B" leer dann abbruch
Application.ScreenUpdating = False
With wksQ
.Range(.Cells(17, 1), .Cells(lngE, 4)).Copy
'kopieren von Zelle "A17" bis "D" & lngE
End With
With wksZ
.Range("A11").PasteSpecial Paste:=xlValues
'Werte in Tabelle1 "A11" einfügen
Application.CutCopyMode = False
.Range(.Cells(11, 1), .Cells(lngE - 6, 4)).Sort Key1:=.Range("B11"), _
Order1:=xlAscending, Key2:=.Range("C11"), Order2:=xlAscending, _
Key3:=.Range("D11"), Order3:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'Werte Sortieren
End With
Application.ScreenUpdating = True
End Sub

Code eingefügt mit: Excel Code Jeanie

Gruß Sepp


Ein kluger Mann macht nicht alle Fehler selbst.
Er lässt auch anderen eine Chance.

(Sir Winston Churchill)


Anzeige
AW: SortierKopierMakro
12.04.2004 22:47:49
Christoph M
Hi Thomas,
das ist mit dem Recorder doch eigentlich kein großes Problem.
Ich schlage vor: kopier gleich die Werte aus Tabelle2 nach Tabelle1 und sortiere sie in Tabelle1.
Der Code dafür sieht dann z.b. so aus: (s.u.)
Gruß
Christoph
('ne Rückmeldung wäre nett)

Option Explicit
Sub holWerte()
'kopieren:
Sheets("Tabelle2").Range("A17:D19").Copy
Sheets("Tabelle1").Range("A11").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'sortieren:
Sheets("Tabelle1").Range("A11:D13").Sort Key1:=Range("B11"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
End Sub

dem Commandbutton weist du dann den folgenden Code zu:
Option Explicit

Private Sub CommandButton1_Click()
holWerte
End Sub

Anzeige
AW: SortierKopierMakro
12.04.2004 22:49:37
Karl-Otto Reimann
Hallo Thomas
Dein Problem ist das Transponieren.
Es gibt wahrscheinlich mehr als 256 Artikel (S1, S2, ...) und damit leider
eine Spaltengrenze (256). Über eine Formel ist das zu umständlich. In welcher
Form sind die Daten vorhanden?
Gruß
Karl-Otto
Danke an J. Ehrensberger, Christoph M & Karl-Otto
12.04.2004 22:53:35
thomas
Meine Herren,
leider war ich bis gerade eben verhindert und konnte mich nicht zurückmelden. Ich danke vielmals für die Hilfe und glaube das Problem so lösen zu können.
Besten Dank an alle!!
thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige