Zelleninhalt auf bestimmte Spalten verschieben

Moderator: ModerationP

Zelleninhalt auf bestimmte Spalten verschieben

Beitragvon Ioka » 29. Jun 2015, 15:04

Hallo,

ich würde gerne den Inhalt mehrerer Zellen einer Zeile auf ganz bestimmte Spalten verschieben.
In der Zeile darunter stehen in mehreren Zellen Zahlen, die als Spaltenzahl für die erste Zeile dienen sollen.
Meine Tabelle habe ich auf den R1C1 Referenz Stil umgestellt, sodass die Zahlen in der zweiten Zeile denen der Spalten überschriften entsprechen.

Ein Beispiel: In R1C1 steht 70 und in der gleichen Spalte darunter also R4C1 steht 129. Die Zahl 70 soll jetzt in die Spalte 129 automatisch kopiert werden und das für alle nachfolgenden Spalten.
Da das sehr viele sind würde es ewig dauern, dass per Hand zu machen.

Vielen Dank für eure Hilfe schon mal!
Grüße
Ioka
Ioka
 

Re: Zelleninhalt auf bestimmte Spalten verschieben

Beitragvon red5000 » 29. Jun 2015, 16:00

Hi,
so in etwa?
Code: Alles auswählen
Sub test()
    Dim x As Long, ZielSpalte As Long
    Dim ws As Worksheet
   
    Set ws = ActiveWorkbook.ActiveSheet
   
    For x = 1 To 100 'Bis zur welcher Spalte
        If ws.Cells(1, x) <> "" And ws.Cells(2, x) <> "" Then
            ZielSpalte = ws.Cells(2, x)
            ws.Cells(1, ZielSpalte) = ws.Cells(1, x)
        End If
    Next x
End Sub
red5000
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 77
Registriert: 06. Feb 2013, 09:52

Re: Zelleninhalt auf bestimmte Spalten verschieben

Beitragvon GMG-CC » 29. Jun 2015, 16:38

Moin,

ich habe das anders verstanden :

Code: Alles auswählen
Option Explicit

Sub MyIndirectCopy()
   Dim lRow As Long
   Dim c As Range
   
   For Each c In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
      If IsNumeric(c) And c > 1 And c <= ActiveSheet.Columns.Count Then _
         Cells(c.Row, c) = c
   Next c
End Sub


Nach mehrmaligem durchlesen könnte das doch noch ganz anders gemeint sein. Da fehlt mir aber etwas Input ...
Ist immer wieder die vorhergehende Zahl das Maß der Dinge? Ist die immer 3 Zeilen weiter oben? Was ist mit der ersten Zeile?
Gruß
Günther (bekennender Power Query-Enthusiast) :!:

Excel-ist-sexy!
Wenn du keine Excel-Version angegeben hast, gehe ich von >=Excel 2016 aus.
Hilfe zur Selbsthilfe, nicht Komplettlösungen für den kommerziellen Einsatz und das "natürlich" gratis!
Benutzeravatar
GMG-CC
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4892
Registriert: 12. Nov 2011, 23:17
Wohnort: Geesthacht bei Hamburg

Re: Zelleninhalt auf bestimmte Spalten verschieben

Beitragvon Ioka » 29. Jun 2015, 17:03

Hallo,

vielen dank für eure schnelle Hilfe!
Ich bin was das angeht noch ziemlicher Anfänger und hab deswegen die Makros noch nicht zum funktionieren gebracht.
Ich hab einfach mit dem Code von euch ein Makro erstellt, dann die Zeilen markiert aber es hat sich nichts verändert.
Könnt ihr mir da vielleicht nochmal die Vorgehensweise dafür erläutern?

Danke!
Ioka
 

Re: Zelleninhalt auf bestimmte Spalten verschieben

Beitragvon Gast » 29. Jun 2015, 17:08

Ich versuche das nochmal zu verdeutlichen:
Meine Tabelle sieht so aus, dass ich in der ersten Zeilen in jeweils einer neuen Spalte z.B. stehen habe: 70, 72, 77,...
Und in der Zeile darunter: 129, 132, 133,...
Die Zahlen darunter sollen jetzt als Spalteninformation für die erste Zeile dienen, dass dann also 70 nicht mehr in R1C1 steht sondern in R1C129 und 72 in R1C132.

Ich hoffe das kann man so nachvollziehen, sonst kann ich auch die Tabelle nochmal mitschicken.
Gast
 

Re: Zelleninhalt auf bestimmte Spalten verschieben

Beitragvon GMG-CC » 29. Jun 2015, 17:23

Also sorry,

Babylon ist zwar ein nettes Programm aber hier wäre eine klare Sprachverwendung schon angebracht ... Idealerweise stellst du uns eine Muster-Mappe zur Verfügung oder du verwendest KLARE und EINDEUTIGE Bezeichnungen, die auch logisch zusammen passen. Sätze wie:
In der Zeile darunter stehen in mehreren Zellen Zahlen
und dann:
Ein Beispiel: In R1C1 steht 70 und in der gleichen Spalte darunter also R4C1 steht 129.
verwirren doch mehr als dass sie aufklären. Zugegeben, A4 ist unterhalb A1, aber irgendwie fehlt mir da die Konsistenz. Und steht auch etwas in B1, Bn, ...?

Uns allen wäre auch mit einer "normalen" A1-Schreibweise viel Umdenkerei erspart geblieben. :(
Gruß
Günther (bekennender Power Query-Enthusiast) :!:

Excel-ist-sexy!
Wenn du keine Excel-Version angegeben hast, gehe ich von >=Excel 2016 aus.
Hilfe zur Selbsthilfe, nicht Komplettlösungen für den kommerziellen Einsatz und das "natürlich" gratis!
Benutzeravatar
GMG-CC
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4892
Registriert: 12. Nov 2011, 23:17
Wohnort: Geesthacht bei Hamburg

Re: Zelleninhalt auf bestimmte Spalten verschieben

Beitragvon red5000 » 29. Jun 2015, 17:36

Also ich hab das Gefühl, dass ich das richtig verstanden habe. Füg mal meinen code oben in ein Modul und starte es. Dafür musst du den vba-editor öffnen (alt+f11),
links in deinem projekt rechtsklick -> neues modul,
in das so erstellte Modul den code kopieren,
irgendwo in den code klicken, dass er aktiv ist und f5 drücken zum ausführen.

Dann sollte er bis Spalte 100 das was in der ersten Zeile steht in die Spalte kopieren, das in der zweiten Zeile steht. Der Code hat aber natürlich noch verbesserungspotenzial aber sollte schon so funktionieren.
red5000
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 77
Registriert: 06. Feb 2013, 09:52

Re: Zelleninhalt auf bestimmte Spalten verschieben

Beitragvon Gast » 29. Jun 2015, 19:18

red5000 hat geschrieben:Also ich hab das Gefühl, dass ich das richtig verstanden habe. Füg mal meinen code oben in ein Modul und starte es. Dafür musst du den vba-editor öffnen (alt+f11),
links in deinem projekt rechtsklick -> neues modul,
in das so erstellte Modul den code kopieren,
irgendwo in den code klicken, dass er aktiv ist und f5 drücken zum ausführen.

Dann sollte er bis Spalte 100 das was in der ersten Zeile steht in die Spalte kopieren, das in der zweiten Zeile steht. Der Code hat aber natürlich noch verbesserungspotenzial aber sollte schon so funktionieren.


Vielen Dank, das hat funktioniert!! Ich hab deinen Code noch bisschen angepasst und kann jetzt super damit arbeiten!
Danke auch für die nette Anleitung das Modul zu erstellen und fürs Nachvollziehen, war bisschen schwierig zu formulieren ;)
Gast
 

Re: Zelleninhalt auf bestimmte Spalten verschieben

Beitragvon Gast » 29. Jun 2015, 19:54

Mir ist jetzt doch noch ein Problem aufgefallen und zwar müssen an manchen Stellen zwei verschiedene Werte in die gleiche Spalte kopiert werden, das Makro kopiert aber immer nur den letzten Wert in die Spalte und überschreibt somit den ersten Wert. Gibt es eine Möglichkeit den zweiten Wert einfach hinzuzufügen ohne den ersten zu überschreiben?
Vielen im Voraus für die Hilfe, wenn das Makro komplett funktioniert, ist es mir eine große Hilfe!
Gast
 

Re: Zelleninhalt auf bestimmte Spalten verschieben

Beitragvon red5000 » 30. Jun 2015, 10:06

Dafür muss man vorher überprüfen ob die Zielzelle leer ist, wenn nicht wird die Zeile um 1 hochgezählt bis eine leere Zelle gefunden wird. Etwa so (ungetestet):

Code: Alles auswählen
Sub test()
    Dim x As Long, ZielSpalte As Long, ZielZeile as long
    Dim ws As Worksheet
   
    Set ws = ActiveWorkbook.ActiveSheet
   
    For x = 1 To 100 'Bis zur welcher Spalte
        If ws.Cells(1, x) <> "" And ws.Cells(2, x) <> "" Then
            ZielSpalte = ws.Cells(2, x)
            ZielZeile = 1
            Do while ws.cells(zielzeile, zielspalte) <> ""  'Zeilen hochzählen solange Zelle nicht leer
               ZielZeile = zielZeile + 1
            loop
            ws.Cells(ZielZeile, ZielSpalte) = ws.Cells(1, x)
        End If
    Next x
End Sub
red5000
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 77
Registriert: 06. Feb 2013, 09:52

Re: Zelleninhalt auf bestimmte Spalten verschieben

Beitragvon Ioka » 30. Jun 2015, 20:46

Super das hat auch funktioniert und genauso wie es gedacht war!
Vielen Dank nochmal! :)
Ioka
 


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], knobbi38 und 32 Gäste