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

Werte transponieren / Macrorecorder

Werte transponieren / Macrorecorder
16.07.2005 08:14:05
Erich
Hallo EXCEL-Freunde,
ich möchte die Funktion Bearbeiten/Inhalte einfügen / Werte, transponieren
per Makro automatisieren. Dazu habe ich die Aktion mit dem macrorecorder aufgezeichnet
und zwei Input-Boxen eingefügt, bei denen ich die Zellen auswählen kann.
Bei der ersten Input bleibt das Makro aber bereits hängen:

Sub Werte_transponieren()
Dim Bereich As Range
Dim Bereich2 As Range
Set Bereich = Application.InputBox("Wählen Sie die Zelle in die der Eintrag erfolgen soll", Type:=8)
Range(Bereich.Address).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
Set Bereich2 = Application.InputBox("Wählen Sie den Sortier-Bereich", Type:=8)
Range(Bereich2.Address).Select
Selection.Sort Key1:=Range(Bereich2), Order1:=xlAscending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
End Sub

Laufzeitfehler 1004
Die PasteSpecialMethode des Range-Objektes konnte nicht ausgeführt werden
Besten Dank für eine Hilfe!
mfg
Erich
http://www.kenostrategen.de

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte transponieren / Macrorecorder
16.07.2005 08:21:35
Nepumuk
Morgen Erich,
du kopierst den Bereich, dann startest du das Makro? Das geht nicht, da die Zwischenablage beim Makrostart geleert wird. Mach es so:
Sub Werte_transponieren()
    Dim Bereich As Range
    Dim Bereich2 As Range
    Dim sAddress As String
    sAddress = Selection.Address
    Set Bereich = Application.InputBox("Wählen Sie die Zelle in die der Eintrag erfolgen soll", Type:=8)
    Range(sAddress).Copy
    Range(Bereich.Address).PasteSpecial Paste:=xlValues, Transpose:=True
    Application.CutCopyMode = False
    Set Bereich2 = Application.InputBox("Wählen Sie den Sortier-Bereich", Type:=8)
    Range(Bereich2.Address).Select
    Selection.Sort Key1:=Range(Bereich2), Order1:=xlAscending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Werte transponieren / Macrorecorder
16.07.2005 08:38:11
Erich
Hallo Nepumuk,
danke - leider funktioniert es noch nicht ganz; die Zellen in die eingetragen werden soll
bleiben leer.
Ich vermute das hängt damit zusammen:
1. Die Selection zum kopieren findet in Tabelle1 statt, dann wechsle ich in Tabelle2
zum eintragen.
2. Das Makro meint wohl beim Wechsel in Tabelle2, dass die bereits aktivierte Zelle
in Tabelle2 dann die sAddress ist.
(die Tabellennamen sind nur beispielhaft)
Kann man das anpassen?
Besten Dank!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
Die tägliche Gewinnoptimierung: http://www.kenostrategen.de
Anzeige
AW: Werte transponieren / Macrorecorder
16.07.2005 08:53:06
Nepumuk
Hi Erich,
dann mit Tabellenblattwechsel:
Sub Werte_transponieren()
    Dim Bereich As Range
    Dim Bereich2 As Range
    Dim sAddress1 As String, sAddress2 As String
    sAddress1 = Selection.Address(External:=True)
    Set Bereich = Application.InputBox("Wählen Sie die Zelle in die der Eintrag erfolgen soll", Type:=8)
    sAddress2 = Bereich.Address(External:=True)
    Range(sAddress1).Copy
    Range(sAddress2).PasteSpecial Paste:=xlValues, Transpose:=True
    Application.CutCopyMode = False
    Set Bereich2 = Application.InputBox("Wählen Sie den Sortier-Bereich", Type:=8)
    Range(Bereich2.Address).Select
    Selection.Sort Key1:=Range(Bereich2), Order1:=xlAscending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
End Sub

Gruß
Nepumuk
Anzeige
AW: Werte transponieren / Macrorecorder
16.07.2005 09:26:09
Erich
Hallo Nepumuk,
klappt zunächst. Kann man das noch einstellen, dass nach dem Inhalte einfügen der aktive
Bereich die Tabelle2 bleibt. Derzeit springt das makro wieder in Tabelle1 zurück,
dann funktioniert der Sortierbefehl nicht.
Besten Dank nochmal!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
Die tägliche Gewinnoptimierung: http://www.kenostrategen.de
AW: Werte transponieren / Macrorecorder
16.07.2005 10:33:10
Nepumuk
Hallo Erich,
logisch:
Sub Werte_transponieren()
    Dim Bereich As Range
    Dim Bereich2 As Range
    Dim sAddress1 As String, sAddress2 As String, sWorksheetsname As String
    sAddress1 = Selection.Address(External:=True)
    Set Bereich = Application.InputBox("Wählen Sie die Zelle in die der Eintrag erfolgen soll", Type:=8)
    sAddress2 = Bereich.Address(External:=True)
    sWorksheetsname = Bereich.Parent.Name
    Range(sAddress1).Copy
    Range(sAddress2).PasteSpecial Paste:=xlValues, Transpose:=True
    Worksheets(sWorksheetsname).Activate
    Range(sAddress2).Select
    Application.CutCopyMode = False
    Set Bereich2 = Application.InputBox("Wählen Sie den Sortier-Bereich", Type:=8)
    Range(Bereich2.Address).Select
    Selection.Sort Key1:=Range(Bereich2), Order1:=xlAscending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
End Sub

Gruß
Nepumuk
Anzeige
AW: Werte transponieren / Macrorecorder
18.07.2005 06:04:28
Erich
Hallo Nepumuk,
bin erst jetzt dazugekommen. Das Transponieren geht jetzt wunderbar.
Leider habe ich beim Sortieren folgende Fehlermeldung:
Laufzeitfehler 1004
Die Methode 'Range für das Objekt' _Global ist fehlgeschlagen
Leider reichen meine Kenntnisse immer noch nicht aus um das zu korrigieren.
(aber irgendwann begreife ich das auch noch)
Besten Dank nochmal!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
Die tägliche Gewinnoptimierung: http://www.kenostrategen.de
Anzeige
AW: Werte transponieren / Macrorecorder
18.07.2005 07:46:43
Nepumuk
Morgen Erich,
versuch es mal so:
Sub Werte_transponieren()
    Dim Bereich As Range
    Dim Bereich2 As Range
    Dim sAddress1 As String, sAddress2 As String, sWorksheetsname As String
    sAddress1 = Selection.Address(External:=True)
    Set Bereich = Application.InputBox("Wählen Sie die Zelle in die der Eintrag erfolgen soll", Type:=8)
    sAddress2 = Bereich.Address(External:=True)
    sWorksheetsname = Bereich.Parent.Name
    Range(sAddress1).Copy
    Range(sAddress2).PasteSpecial Paste:=xlValues, Transpose:=True
    Worksheets(sWorksheetsname).Activate
    Range(sAddress2).Select
    Application.CutCopyMode = False
    Set Bereich2 = Application.InputBox("Wählen Sie den Sortier-Bereich", Type:=8)
    Bereich2.Sort Key1:=Bereich2.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
End Sub

Gruß
Nepumuk
Anzeige
AW: Werte transponieren / Macrorecorder
18.07.2005 20:52:54
Erich
Hallo Nepumuk,
jetzt perfekt; besten Dank für die Geduld!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
Die tägliche Gewinnoptimierung: http://www.kenostrategen.de

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige