Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen

Wie kann ich eine gesamte Range "verschieben"?

Betrifft: Wie kann ich eine gesamte Range "verschieben"?
von: andreas
Geschrieben am: 21.04.2003 - 10:27:40

Frohe Ostern zusammen!
Kann mir jemand helfen? Ich versuche gerade eine als Variable definierte Range in ein anderes Tabellenblatt einzufügen? Ich habe es hinbekommen die Range variable zu definieren und sie heisst "MyRange1". Ich versuche diese dann, sie erfüllt bestimmte Kriterien, in ein neues Tabellenblatt einzufügen. Mit Textpassagen habe ich es schon geschafft nur nicht mit der Range.
Danke für die Hilfe

Grüße

Andy

  

Re: Wie kann ich eine gesamte Range "verschieben"?
von: Forum
Geschrieben am: 21.04.2003 - 10:31:28

Hallo Andreas


Sub Andreas()
    Range("MyRange1").Copy Destination:=Worksheets("Tabelle2").Range("A1")
End Sub

Gruß Hajo
Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

  

Re: Wie kann ich eine gesamte Range "verschieben"?
von: andreas
Geschrieben am: 21.04.2003 - 10:38:30

Ich bekomme dann einen Laufzeitfehler 1004. Was bedeutet das? Ich habe mal meinen Code angehängt. Vielleicht kann mir dann jemand sagen was ich falsch mache. Danke schon einmal

Grüße

Andy

For i = 2 To ActiveSheet.UsedRange.Columns.Count
If ActiveCell.Value > 0 Then
Set MyRange1 = Worksheets("Tabelle1").Range(Cells(AZHAZ + 4, i), Cells(AZHEZ + 4, i))
Range("MyRange1").Copy Destination:=Worksheets("Tabelle3").Range("b4")
zähler = zähler + 1
text = Sheets("tabelle1").Cells(3, i)
Sheets("tabelle3").Activate
Cells(3, zähler).Value = text
Sheets("tabelle1").Activate
Else
End If
ActiveCell.Offset(0, 1).Select

Next i

  

Re: Wie kann ich eine gesamte Range "verschieben"?
von: Forum
Geschrieben am: 21.04.2003 - 10:47:16

Hallo Andreas

mit Code wird es auch klarer


Sub Andreas2()
    Dim I As Long
    Dim Zähler As Long
    Dim MyRange1 As Object
    Dim AZHAZ As Long
    Dim AZHEZ As Long
    AZHEZ = 3
    AZHAZ = 1
    For I = 2 To ActiveSheet.UsedRange.Columns.Count
        If ActiveCell.Value > 0 Then
            Set MyRange1 = Worksheets("Tabelle1").Range(Cells(AZHAZ + 4, I), Cells(AZHEZ + 4, I))
            Range(MyRange1.Address).Copy Destination:=Worksheets("Tabelle3").Range("b4")
            Zähler = Zähler + 1
            Sheets("tabelle3").Cells(3, Zähler).Value = Sheets("tabelle1").Cells(3, I)
        Else
        End If
    Next I
    ActiveCell.Offset(0, 1).Select
End Sub

Gruß Hajo
Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

  

Re: Wie kann ich eine gesamte Range "verschieben"?
von: andreas
Geschrieben am: 21.04.2003 - 11:03:32

Funktioniert noch immer nicht. Er kopiert nur irgendeinen Wert in die Tabelle 3 aber nicht den definierten Zeitraum.Habe ich irgendeine Variable falsch deklariert?Ich habe nebendran mal geschrieben was ich mit den einzelnen Sachen erreichen mag. Vielleicht wird es so noch klarer.

Danke auf jeden Fall schon mal für eure Zeit.

Sub WerteInTabelle3Kopieren()
Dim i As Integer 'Zählt die Anzahl der Wertpapiere
Dim text As String 'Kopiert den Namen des Wertpapiers in Tabelle 3
Static zähler As Integer 'Zählervariable, dass die Namen in Tabelle 3
'nebeinander geschrieben werden
Dim MyRange1 As Range 'Soll dann die Renditen des gewählten Wertpapiers
'in Tabelle 3 kopieren
Dim AZHEZ As Integer 'AbstandZuHeuteEndeZeitraum
Dim AZHAZ As Integer 'AbstandZuHeuteAnfangZeitraum
'Dim zeitraum As Integer 'Notwendig um die Länge der Range in Tabelle 3 zu definieren


AZHEZ = (Range("g1").Value - Range("c1").Value)
AZHAZ = Range("g1").Value - Range("e1").Value
'zeitraum = Range("e1").Value - Range("c1").Value

Sheets("tabelle1").Activate
Cells(2, 2).Select
zähler = 1 'Zähler muss gleich eins sein, dass ich nicht in die Datumsspalte
'der Tabelle3 schreibe


For i = 2 To ActiveSheet.UsedRange.Columns.Count
If ActiveCell.Value > 0 Then 'wenn ich eine positive Rendite habe kopiere den gewählten
'Zeitraum in Tabelle3

Set MyRange1 = Worksheets("Tabelle1").Range(Cells(AZHAZ + 4, i), Cells(AZHEZ + 4, i))

Range(MyRange1.Address).Copy Destination:=Worksheets("Tabelle3").Range("b4")
zähler = zähler + 1
text = Sheets("tabelle1").Cells(3, i).Value
Sheets("tabelle3").Activate
Cells(3, zähler).Value = text

Sheets("tabelle1").Activate
Else
End If
ActiveCell.Offset(0, 1).Select

Next i


End Sub


  

Re: bestimmten Bereich verschieben, noch offen
von: Forum
Geschrieben am: 21.04.2003 - 11:14:28

Hallo Andreas

Du solltest mal Deinen entsprechenden Tabellenausschnitt posten, damit man es nachbauen kann. Schaue mal unter Features dort steht wie oderDu hast dafür ein Programm.

Ich bin nur noch 30 Minuten am Rechner und das ist mir zu Aufwendig für diese Zeit.

Ansonsten geht es am späten Nachmittag weiter.

Gruß Hajo
Der Code wurde getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

  

Re: Wie kann ich eine gesamte Range "verschieben"?
von: andreas
Geschrieben am: 21.04.2003 - 11:16:19

Das Problem, das nun auftritt ist, dass er alle ranges dann in b4 schreibt. wie kann ich das variabel gestalten, dass er nach jedem mal schreiben - so wie beim text auch - auf die Seite geht?
vielleicht sitzte ich auch heute schon zu lange davor und habe "ein brett vor dem kopf..."

osterliche grüße

andy