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

VBA zu Kopieren von Spaltenwerten in Zeilen

VBA zu Kopieren von Spaltenwerten in Zeilen
12.03.2007 18:32:51
Spaltenwerten
Hallo,
ich habe folgendes Problem:
Ich benötige ein Makro, das folgenden Sachverhalt automatisiert:
Zu jedem Wert in der ersten Spalte A gibt es unterschiedlich viele Merkmale, die in den Spalten B bis Z stehen. Nun sollen die Werte aus den Spalten in die Zeile A kopiert werden, ohne dort stehende Werte zu überschreiben.
Da jeder Ursprungswerte in Spalte A unterschiedliche viele Ausprägungen in den Spalten B bis Z hat, müssen auch unterschiedlich viele neue Zeilen eingefügt werden.
Beispiel:
In Spalte A stehen 2 Merkmale. Das erste Merkmal hat 10 Ausprägungen in den Spalten B bis K. Das zweite Merkmal lediglich 3 Ausprägungen in Spalten B bis D.
Nach Durchführung des Makros soll in Spalte A unter dem ersten Merkmal 10 neue Einträge stehen,dann folgt das zweite Merkmal mit drei neuen Einträgen.
Danke für die hilfe.
Gruß,
Michael

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA zu Kopieren von Spaltenwerten in Zeilen
12.03.2007 19:31:04
Spaltenwerten
Hallo Michael,
probier mal Option Explicit Sub KopiereInA() Dim zz As Long, cc As Long For zz = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 cc = Cells(zz, Columns.Count).End(xlToLeft).Column - 1 If cc > 0 Then Range(Rows(zz + 1), Rows(zz + cc)).Insert Shift:=xlDown Range(Cells(zz, 2), Cells(zz, cc + 1)).Copy Cells(zz + 1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=True End If Next zz Application.CutCopyMode = False Cells(2, 1).Select End Sub Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: VBA zu Kopieren von Spaltenwerten in Zeilen
13.03.2007 08:36:00
Spaltenwerten
Hallo Erich,
super, vielen Dank! Hat prima geklappt! ein nice-to-have wäre noch die Spalten (außer Spalte A) anschließend zu löschen.
Gracias.
Michael
Anzeige
AW: VBA zu Kopieren von Spaltenwerten in Zeilen
13.03.2007 08:56:00
Spaltenwerten
Nochmals hallo Erich,
eine weitere Modifikation hätte ich auch noch:-)) wäre klasse, wenn Du mir hier weiterhelfen könntest.
Also die kopierten Merkmale sollten doch eher untereinander in Spalte B stehen, dafür in Spalte A solange das Merkmal bis das neue Merkmal kommt.
Beispiel:
Ausgangslage wie gehabt: 2 Merkmale in Spalte A mit unterschiedlichen Ausprägungen in den weiteren Spalten.
In Spalte A sollte nun das erste Merkmal so oft untereinander stehen wie es Ausprägungen zu diesem Merkmal in den Spalten gibt. In der Spalte B sollten alle Ausprägungen des ersten Merkmals untereinander stehen. Prinzipiell kann man es sich so vorstellen: Die Ausgangslage ist eine Matrix, die dann in den Spalten A & B ausmultipliziert dasteht...also alle möglichen Kombinationen von der Ausgangslage als 1:1 Zuordnung.
Ich hoffe, dass ich mich halbwegs verständlich ausgedürckt habe und Du eventuell noch ein wenig Zeit opfern möchtest.-))
Danke,
viele Grüße,
Michael
Anzeige
AW: VBA zu Kopieren von Spaltenwerten in Zeilen
13.03.2007 09:28:16
Spaltenwerten
Hallo Michael,
das habe ich jetzt nicht verstanden. Vielleicht hilft ein Beispiel. Was soll daraus werden:
 ABCDEFGH
1EintragMerkmal1Merkmal2Merkmal3Merkmal4Merkmal5Merkmal6Merkmal7
2AAAsMfMh  
3BBBrXXMuMMXX


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: VBA zu Kopieren von Spaltenwerten in Zeilen
13.03.2007 09:28:00
Spaltenwerten
Hallo,
inzwischen habe ich selbst ein wenig getüftelt, bin aber wirklich kein VBAler:-(
Dennoch funktioniert das Makro nun so, wie ich es mir vorstelle...allerdings müsste es beim Befüllen des letzten Merkmals in Spalte A in der Zelle aufhören, wo auch die letzte Ausprägung in Spalte B steht.
Probier es bitte aus
Beispiel:
In Spalte A1, A2, A3 die Merkmale A, B, C eingeben.
In den Spalten unterschiedlich viele Ausprägungen z.B. für Merkmal A in den Spalten B1, B2, B3 die Zahlen 1, 2, 3 usw.
Sub KopiereInA()
   Dim zz As Long, cc As Long
   Dim iRow As Integer
   Dim rng As Range
   
  _
For zz = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
      cc = Cells(zz, _
Columns.Count).End(xlToLeft).Column - 1
      If cc > 0 Then
         Range(Rows(zz + 1), _
Rows(zz + cc)).Insert Shift:=xlDown
         Range(Cells(zz, 2), Cells(zz, cc + 1)).Copy
       _
Cells(zz + 1, 2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
            _
SkipBlanks:=False, Transpose:=True
      End If
   Next zz
   Application.CutCopyMode = False
  _
Cells(2, 1).Select
   
      iRow = 2
   Do Until Cells(iRow, 1).Value = "Stop"
      If _
IsEmpty(Cells(iRow, 1)) Then
         Cells(iRow, 1).Value = Cells(iRow - 1, 1).Value
      End _
If
      iRow = iRow + 1
   Loop
   
   For Each rng In Selection.Columns(1).Cells
   If _
Len(Trim$(rng)) = 0 Then rng = rng.Offset(-1, 0)
Next


End _
Sub

Anzeige
AW: VBA zu Kopieren von Spaltenwerten in Zeilen
13.03.2007 10:09:07
Spaltenwerten
Hallo Michael,
das ginge so:
Option Explicit

Sub KopiereInB1()
   Dim zz As Long, cc As Long
 '  
   For zz = _
Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
      cc = Cells(zz, _
Columns.Count).End(xlToLeft).Column
      If cc > 1 Then
         Range(Rows(zz + 1), Rows(zz + _
cc - 2)).Insert Shift:=xlDown
         Range(Cells(zz + 1, 1), Cells(zz + cc - 2, 1)) = _
Cells(zz, 1)
         Range(Cells(zz, 3), Cells(zz, cc)).Copy
         Cells(zz + 1, _
2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
            SkipBlanks:=False, _
Transpose:=True
         Range(Cells(zz, 3), Cells(zz, cc)).ClearContents
      End If
   Next _
zz
   Application.CutCopyMode = False
   Cells(2, 1).Select
End _
Sub
Der Code ist hier momentan etwas auseinandergerissen.
Die Fortsetzungszeilen außer beim PasteSpecial passen in eine Zeile.
'
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: VBA zu Kopieren von Spaltenwerten in Zeilen
13.03.2007 10:25:00
Spaltenwerten
Hallo Erich,
nochmals herzlichen Dank für Deine Bemühungen.
Das Makro läuft für mein Beispiel einwandfrei.
Allerdings werden mehr als 3 Merkmale in Spalte 3 nicht berücksichtigt.
Ich habe ein Beispiel geladen unter https://www.herber.de/bbs/user/41062.xls
Wenn das Makro für dieses Beispiel ausgeführt wird, wird deutlich, dass für die Merkmale A bis C das Makro läuft, für das Merkmal D leider nicht.
Das Makro müsste dahingehend noch angepasst werden.
Super vielen Dank!
Michael
AW: VBA zu Kopieren von Spaltenwerten in Zeilen
13.03.2007 10:31:17
Spaltenwerten
kleine Ergänzung:
Das Makro ist sehr flexibel bezüglich der Ausprägungen in den Spalten (alle Ausprägungen werden für das jeweilige Merkmale A, B, C) in Spalte B kopiert.
Allerdings kann es auch mehr als die Merkmale A, B, C in Spalte A geben .
An dieser Stelle hakt es leider noch!
Danke!
Viele Grüße,
Michael
Anzeige
AW: VBA zu Kopieren von Spaltenwerten in Zeilen
13.03.2007 10:33:00
Spaltenwerten
Hallo Michael,
sorry, da hatte ich nicht genug getestet...
Statt "If cc > 1 Then" muss es "If cc > 2 Then" heißen. Dann läuft es.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: VBA zu Kopieren von Spaltenwerten in Zeilen
13.03.2007 10:43:00
Spaltenwerten
Hallo Erich,
super! hat geklappt!
werde das Makro nun nochmals mit ner großen Datenmenge prüfen! sollte aber einwandfrei laufen!
Viele Grüße aus der Pfalz,
Michael

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige