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

Zellen indirekt kopieren

Zellen indirekt kopieren
27.11.2006 18:06:08
Stadler
Hallo,
wie kann man folgendes Problem lösen?
Möchte 40 Spalten in der jeweils ersten Zeile willkürlich nummerieren
z.B. 1 4 6 3 7 8 usw... Aus jeder Spalte sollen 4 Zeilen in eine Liste
eingetragen werden; und zwar an die Position der eingetragenen Spaltennummer.
Die Liste soll 127 Datensätze enthalten mit jeweils vier Zeilen (insg. 508 Zeilen). Steht z.B. in Spalte 1 in A1 "5" (Spaltennummer) so soll z.B. A2-A5
in eine Liste in die Zeilen 17-20 eingetragen werden. Kann dieses Problem
noch mit einer Formel gelöst werden, oder ist es notwendig in VBA Code zu programmieren.
Wäre nett, wenn mir jemand helfen könnten. Hoffe das Problem verständlich geschildert zu haben:-)

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen indirekt kopieren
27.11.2006 19:17:33
ChrisL
Hallo Tom
Betr. Formellösung muss ich passen, aber vielleicht hilft das VBA Beispiel im Anhang. Ob ich die Frage allerdings richtig interpretiert habe, mag ich bezweifeln. Geht jedenfalls mathematisch nicht ganz auf (A2-A5, 17-20?) :-)
https://www.herber.de/bbs/user/38562.zip
Gruss
Chris
Sub KopierenIndirekt()
Dim WS1 As Worksheet, WS2 As Worksheet
Set WS1 = Worksheets("vorher")
Set WS2 = Worksheets("nachher")
Call NummernVergeben(WS1)
Call KopierVorgang(WS1, WS2)
End Sub

Private Sub NummernVergeben(WS As Worksheet)
Dim Nummer As Byte, Spalte As Byte
Randomize
With WS
.Rows(1).ClearContents
For Spalte = 1 To 40
Do Until Nummer <> 0 And WorksheetFunction.CountIf(.Rows(1), Nummer) = 0
Nummer = Int((40 * Rnd) + 1)
Loop
.Cells(1, Spalte) = Nummer
Next Spalte
End With
End Sub


Private Sub KopierVorgang(WS1 As Worksheet, WS2 As Worksheet)
Dim Spalte As Byte
Dim Bereich1 As Range, Bereich2 As Range
WS2.Cells.Delete
For Spalte = 1 To 40
Set Bereich1 = WS1.Cells((Spalte * 4) - 2, Spalte)
Set Bereich2 = WS2.Cells((WS1.Cells(1, Spalte) * 4) - 2, Spalte)
WS1.Range(Bereich1, Bereich1.Offset(3, 0)).Copy Bereich2
Next Spalte
End Sub

Anzeige
AW: Zellen indirekt kopieren
29.11.2006 13:00:23
Stadler
Dein Upload bricht beim Ausführen mit dem Laufzeitfehler "1004" die Delete Methode
des Rangeobjektes ist fehlerhaft ab ?
Hab ich was falsch gemacht ?

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige