Makro in Excel schreiben

  • #1
C

CDD

Mitglied
Themenersteller
Dabei seit
07.04.2005
Beiträge
15
Reaktionspunkte
0
Hallo,
leider habe ich bisher noch nie ein Makro geschrieben und bin deshalb noch sehr unbeholfen.

Ich habe eine Excel-Tabelle, in der Messreihen nebeneinander dargestellt sind und benötige diese aber untereinander. Weil das ganze in Zukunft öfter verwendet werden soll und sehr viele Messwerte enthält, würde ich gerne ein Makro dazu schreiben. Die Tabelle wird etwa so aussehen:

Wert1 Wert2 Wert1 Wert2
1 2 5 6
2 4 8 10
3 6 11 14


und soll danach etwa so aussehen:

Wert1 Wert2
1 2
2 4
3 6
5 6
8 10
11 14

Dabei soll die Anzahl der Zeilen und Spalten, die verschoben werden sollen, variabel sein.

Kann mir jemand bei dieser Problemstellung behilflich sein?

Vielen Dank im Voraus
 
  • #2
Das hat mir der Matjes so beigebracht:
Code:
Sub Bereich_B_unter_Bereich_A_einfügen()
  Range(ActiveCell, ActiveCell.End(xlDown).Offset(0, 1)).Select
  Selection.Cut
  ActiveCell.Offset(0, -2).Select
  ActiveCell.End(xlDown).Offset(1, 0).Select
  ActiveSheet.Paste
End Sub
Du klickst in die Zelle, in der bei deinem Beispiel die 5 steht und startest das Makro. Wenn du das tatsächlich so oft brauchst, setzt du es am besten auf eine Schaltfläche in der Symbolleiste.
Das Makro markiert von hier aus alles bis zum Ende der belegten Zellen in dieser Spalte (End(xlDown)) und von dort aus Null nach unten und 1 nach rechts (Offset(0, 1)). Jetzt sind die Zellen von der 5 bis zur 14 markiert.
Die Markierung wird ausgeschnitten (Selection.Cut)
Von der ursprünglichen Ausgangszelle (die 5) geht er jetzt Null nach unten und 2 nach links (Offset(0, -2), also dorthin, wo die 1 steht.
Und von dort ganz ans Ende (End(xlDown)) und noch eins weiter nach unten und Null nach rechts (Offset(1, 0))
Dort fügt er das zuvor ausgeschnittene ein (ActiveSheet.Paste).

Wenn dein Beispiel nur ein Beispiel war und du in Wirklichkeit nicht 2 Spalten unter 2 Spalten, sondern 5 Spalten unter 5 Spalten kopieren willst, änderst du die entsprechenden Parameter im Makro.

Alles keine Hexerei ;D

Und noch etwas: Leerzeilen zwischendrin sind nicht erlaubt. Wenn die aber unvermeidlich sind, brauchen wir einen Workaround ;)
Dann machst du es so:
Code:
Sub Bereich_B_unter_Bereich_A_einfügen_mit_Leerzeilen()
  ActiveCell.EntireColumn.Select
  Selection.Replace What:=, Replacement:= , LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False
  ActiveCell.Offset(0, -2).Select
  ActiveCell.EntireColumn.Select
  Selection.Replace What:=, Replacement:= , LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False
  ActiveCell.Offset(1, 2).Select
  Range(ActiveCell, ActiveCell.End(xlDown).Offset(0, 1)).Select
  Selection.Cut
  ActiveCell.Offset(0, -2).Select
  ActiveCell.End(xlDown).Offset(1, 0).Select
  ActiveSheet.Paste
Damit wird die ganze Spalte markiert und alle Leerzellen mit einem Leerzeichen befüllt, so daß das Makro nicht an der ersten Leerzeile stehenbleibt, denn eine - wenn auch nur mit einem Leerzeichen - befüllte Zelle ist eine volle Zelle.
 
  • #3
hallo,

hast du das ganze mal mit->kopieren' und dann anschließend->inhalte einfügen' ->->transponieren' versucht?

gruß,
kath.hundefriseursalon
 
  • #4
Hallo Klexy,

super und vielen Dank dafür. Du hast mir damit sehr geholfen :). Ich werde das noch ein klein wenig verändern, damit ich in der Spaltenanzahl variabel bin.

Gruß CDD
 
  • #5
Hallo kath.hundefriseursalon,

das ganze werden später sehr viele Messwerte sein und daher wäre es von Hand auszuschneiden ungünstig.

Aber vielen Dank für Deine Hilfe.

Gruß CDD
 
Thema:

Makro in Excel schreiben

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben