Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Kopieren und transponieren

Forumthread: VBA Kopieren und transponieren

VBA Kopieren und transponieren
17.02.2004 18:00:05
Katja
Hallo Excelfreunde
wie muß eine Befehlszeile aussehen die aus Tabelle1 Zelle A1 bis a5
die Daten in Tabelle2 a1 bis e1 kopiert und transponiert
gibt es eine die besser ist als die der Macrorecorder liefert ?
wie immer schon mal vielen Dank im voraus :-)

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Kopieren und transponieren
17.02.2004 18:29:23
Bernd Kiehl
Hallo Katja,
wenn der Makrorekorder dein Problem lösen kann, warum stellst du dann noch deine Frage hier ins Forum?
Das Forum soll Excel-, keine Freizeitprobleme lösen, oder!
Userbild
@ Bernd
17.02.2004 20:43:54
Panicman
Hallo Bernd,
wenn du hier nicht in deiner Freizeit hilft, wer bezahlt dich dann für diese unhöflichen und überflüssigen Sprüche ???
Wenn das deine Meinung ist, das solche Fragen hier nicht gestellt werden dürfen, behalte diese bitte das nächste Mal für Dich und überlasse es uns anderen darauf zu antworten oder nicht.
Mit freundlichem Gruß
Holger
Anzeige
AW: VBA Kopieren und transponieren
18.02.2004 00:52:08
PeterW
Hallo Bernd,
die Fragestellung war, ob es eine bessere Lösung als die des Rekorders gibt. Diese Frage zeigt mir (und einigen anderen), dass die Fragestellerin sich nicht mit den bescheidenen Möglichkeiten des Rekorers zufrieden geben möchte und etwas mehr lernen will. Egal ob sie das in ihrer Freizeit macht oder beruflich dazu gezwungen ist, allein das Bestreben sich weiterzuentwickeln - auf welchem Level auch immer - rechtfertigt die Frage hier.
Dass es IMMER bessere Lösungen als die des Rekorders gibt dürfte außer Frage stehen, ;-) Und dass wir alle mal einen schlechten Tag haben und Fragesteller (unbegründet) "anblaffen" ist menschlich. Manchmal ist es dann besser, das Forum für ein bis zwei Tage zu meiden - so meine persönliche Erfahrung - um dann mit neuem Elan auch die einfachsten Fragen ruhig zu beantworten. :-)
Gruß
Peter
Anzeige
AW: VBA Kopieren und transponieren
17.02.2004 21:15:11
Matthias G
Hallo Katja,
naja, man kann die ganzen ".Select" und "Selection." rausnehmen:

Sub Transponiere()
Sheets("Tabelle1").Range("A1:A5").Copy
Sheets("Tabelle2").Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End Sub

Gruß Matthias
P.S. Im Übrigen full ack für Panicman!
Anzeige
AW: VBA Kopieren und transponieren
17.02.2004 22:34:53
PeterW
Hallo Matthias,
kann man nicht unbeschadet auch alle Defaults rausnehmen? Bei mir funktioniert problemlos:

Sub Transponiere()
Sheets("Tabelle1").Range("A1:A5").Copy
Sheets("Tabelle2").Range("A1").PasteSpecial Transpose:=True
End Sub

Gruß
Peter
Anzeige
AW: VBA Kopieren und transponieren
17.02.2004 23:01:18
Matthias G
Hallo Peter,
so weit hab ich's gar nicht geprüft. Ich bin noch am Staunen ob des Formelwettbewerbs der kürzesten Formel:
https://www.herber.de/forum/archiv/384to388/t384151.htm
Die Österreicher ham's halt drauf ;-)
Viele Grüße,
Matthias
Anzeige
OT Formelwettbewerb
17.02.2004 23:18:42
PeterW
Hallo Matthias,
den Thread habe ich online mitgelesen. Beeindruckend ist es schon, was man mit Formeln alles anstellen kann - und manchmal verstehe ich sogar, was diese Formeln genau machen. :-) Für mich persönlich sind einige Zeilen in VBA schneller geschrieben... und da verstehe ich wesetlich besser, was abläuft. ;-)
Gruß
Peter
Anzeige
Vielen Dank für die Hilfe, aber Bernd
18.02.2004 08:22:47
Katja
Liebe Excelkenner
Zunächst einmal vielen Dank für die Lösungen und die Kommentierung von Bernd`s Antwort
die Lösung hat mir geholfen
Lieber Bernd,
ich denke das du wirklich einen schlechten Tag hattest. Freizeitprobleme-? wenn ich genauso unverschämt wäre wie du würde ich mich über deine Belästigung durch dein Foto beschweren, aber so werde ich dich einfach meiden, sollte ich dich einmal in Bremen treffen. Die Gefahr wäre mir zu groß, daß wir dann ein gemeinsammes Freizeitproblem bekommen würden, das wäre doch schade. Heute werde ich dann noch sicher eine Frage stellen, die nicht das Neveau von "Sandkastenspielen,-Freizeitprobleme" hat und wenn es doch für dich wieder ein Freizeitbeschäftigung darstellt meine Hochachtung vor deinem Wissen und die Bitte, daß du trotzdem solchen Anfängern wie ich es bin, hilfst.
Anzeige
Anzeige

Infobox / Tutorial

VBA zum Kopieren und Transponieren von Daten in Excel


Schritt-für-Schritt-Anleitung

Um Daten in Excel mithilfe von VBA zu transponieren, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklicke im Projektfenster auf dein Projekt und wähle „Einfügen“ > „Modul“.

  3. Gib den folgenden VBA-Code ein:

    Sub Transponiere()
        Sheets("Tabelle1").Range("A1:A5").Copy
        Sheets("Tabelle2").Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    End Sub
  4. Führe das Makro aus: Drücke F5 oder gehe zu „Run“ > „Run Sub/UserForm“, um das Transponieren zu starten.

Dieser Code kopiert die Daten von Tabelle1 (Zelle A1 bis A5) und fügt sie transponiert in Tabelle2 (ab Zelle A1) ein.


Häufige Fehler und Lösungen

  • Fehler: „Laufzeitfehler 9: Index außerhalb des Bereichs“

    • Lösung: Überprüfe, ob die angegebenen Tabellennamen korrekt sind. Stelle sicher, dass „Tabelle1“ und „Tabelle2“ existieren.
  • Fehler: Nichts wird transponiert

    • Lösung: Stelle sicher, dass die Quelle tatsächlich Daten in den angegebenen Zellen hat. Überprüfe auch, ob der VBA-Code korrekt eingegeben wurde.

Alternative Methoden

Neben der VBA-Methode kannst du auch die Funktion TRANSPOSE in Excel verwenden. Diese Methode ist jedoch weniger flexibel, wenn es um größere Datenmengen oder komplexe Transformationen geht. Hier ist, wie du es machst:

  1. Markiere die Zellen, die die transponierten Daten aufnehmen sollen.

  2. Gib die Formel ein:

    =TRANSPOSE(Tabelle1!A1:A5)
  3. Drücke STRG + UMSCHALT + ENTER, um die Formel als Matrixformel einzugeben.


Praktische Beispiele

  1. Wenn du eine Liste von Namen in Tabelle1 in einer Zeile in Tabelle2 transponieren möchtest, benutze den folgenden Code:

    Sub TransponiereNamen()
        Sheets("Tabelle1").Range("A1:A10").Copy
        Sheets("Tabelle2").Range("A1").PasteSpecial Transpose:=True
    End Sub
  2. Um Daten von einer Excel-Tabelle zu invertieren, kannst du den gleichen Code anpassen, um eine andere Datenquelle zu verwenden.


Tipps für Profis

  • Vermeide Select und Selection: Diese können den Code verlangsamen. Arbeite direkt mit den Referenzen, um die Leistung zu verbessern.
  • Fehlerbehandlung einfügen: Stelle sicher, dass dein Code robust ist, indem du Fehlerbehandlungen hinzufügst, um unerwartete Probleme zu vermeiden.
  • Nutze Variablen: Verwende Variablen für Tabellen- und Zellreferenzen, um den Code flexibler und einfacher zu warten.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Zellen gleichzeitig transponieren? Um mehrere Zellen zu transponieren, ändere einfach den Bereich in deinem VBA-Code, z.B. Range("A1:A10").

2. Gibt es eine Möglichkeit, Daten automatisch zu aktualisieren, wenn sich die Quelle ändert? Ja, du kannst die Datenbindung verwenden oder das Makro in eine andere Prozedur einfügen, die regelmäßig ausgeführt wird, um die Daten zu aktualisieren.

3. Ist VBA die einzige Möglichkeit, um Daten zu transponieren? Nein, du kannst auch die Funktion TRANSPOSE verwenden, die in Excel integriert ist, aber VBA bietet mehr Flexibilität und Automatisierungsmöglichkeiten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige