Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
656to660
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
656to660
656to660
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Copy / Paste mit absteigender Tabelle - Help

Copy / Paste mit absteigender Tabelle - Help
24.08.2005 20:13:50
Udo
Hallo,
ich bin noch ein richtiges VBA-Greenhorn und kämpfe mich seit ca. 8 Tagen durch die Befehls- und Bedienungsmannschaft. Folgendes Problem plagt mich:
Hier mal ein Sub:
Sheets("Variante").Activate
Range("B4:D4").Select
Selection.Copy
Sheets("Zusammenfassung").Activate
Range("D4").Select
ActiveSheet.Paste
End Sub
Im Sheets Variante läufte immer wieder eine Simulation mit verschiedenen Parametern ab. Die wichtigsten Parameter sollen durch dieses Makro in dem Sheet in einer Tabelle abgelegt und abgespeichert werden.
Die Simulation läuft maximal 10 Mal,d.h. in der Tabelle sollten 10 Datensätze auftauchen.
Bei dem o.g. Makro werden aber die gleichen drei Zellen immer wieder belegt. Im Prinzip muss der Paste Bereich jeweils eine Zeile runterwandern oder man kopiert die alte Belegung in eine freie Zeile, um Platz für eine neuen Belegung zu schaffen. (Vgl. unten)
Simulation 1 Produkt 1 Produkt 2 Produkt 3
Nr. 1 3 2 3
Nr. 2
Nr. 3
Nr. 4
Nr. 5
…
Nr.10

Wer kann helfen. Vermutlich ist dies für die Cracks ein Lacher, aber für mich (noch) ein Buche mit sieben Siegeln.
Danke, Danke, Danke.
repeinud
Copy / Paste-Makro für absteigende Zellen

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Copy / Paste mit absteigender Tabelle - Help
24.08.2005 20:43:47
Bernd
hi repeinud,
bin auch nicht der VBA Held, würde es evtl. so machen:


      
Sub von_nach()
Dim lngZeile As Long
Dim a, b, c As String
    a = Worksheets("Variante").Range("b4")
    b = Worksheets("Variante").Range("c4")
    c = Worksheets("Variante").Range("d4")
   
    
With Sheets("Zusammenfassung")
        lngZeile = .Cells(Rows.Count, 4).End(xlUp).Row + 1
        .Cells(lngZeile, 4).Value = a
        .Cells(lngZeile, 5).Value = b
        .Cells(lngZeile, 6).Value = c
    
End With
End Sub 


aber evtl. gibt es da was eleganteres
gruss bernd
Anzeige
AW: Copy / Paste mit absteigender Tabelle - Help
24.08.2005 23:11:25
Udo
Hallo Bernd,
danke für den Vorschlag. Nach Beseitigung eines Typos habe ich nun folgendes Makro:

Sub Transfer1()
Dim lngZeile As Long
Dim a As String
Dim b As String
Dim c As String
a = Worksheets("Variante").Range("b4")
b = Worksheets("Variante").Range("c4")
c = Worksheets("Variante").Range("d4")
With Sheets("Zusammenfassung")
lngZeile = Cells(Rows.Count, 4).End(xlUp).Row + 1
Sheets("Zusammenfassung").Activate
Cells(lngZeile, 4).Value = a
Cells(lngZeile, 5).Value = b
Cells(lngZeile, 6).Value = c
End With
End Sub

Makro, nur leider wird die nun dynamische Tabelle immer noch in dem ursprünglichen Arbeitsblatt ("Variante") ausgeworfen. Auch bei mehreen Anläufen kommten die Reihe zwar in der von mir erhofften Reihenfolge, aber eben im falschen Blatt. Was tun?
Ich kann die zwei Hälfte des Makros nicht nachvollziehen und damit den "Fehler" nicht finden.
Irgendwelche Ideen? Was sagt die Community? Natürlich auch gern andere Vorschläge. Vorab Danke, Danke, Danke.
repeinud
Anzeige
AW: Copy / Paste mit absteigender Tabelle - Help
25.08.2005 00:20:21
IngGi
Hallo Udo,
mit dem Ansatz von Bernd, aber ohne den Umweg über Variablen:

Sub Transfer1()
With ThisWorkbook
.Sheets("Variante").Range("B4:D4").Copy _
Destination:=.Sheets("Zusammenfassung").Cells(Rows.Count, 4).End(xlUp).Offset(1, 0)
End With
End Sub
Es würde auch so gehen (beachte die Punkte vor "cells")

Sub Transfer1()
Dim lngZeile As Long
Dim a As String
Dim b As String
Dim c As String
a = Worksheets("Variante").Range("b4")
b = Worksheets("Variante").Range("c4")
c = Worksheets("Variante").Range("d4")
With Sheets("Zusammenfassung")
lngZeile = .Cells(Rows.Count, 4).End(xlUp).Row + 1
Sheets("Zusammenfassung").Activate
.Cells(lngZeile, 4).Value = a
.Cells(lngZeile, 5).Value = b
.Cells(lngZeile, 6).Value = c
End With
End Sub
Gruß Ingolf
Anzeige
AW: Copy / Paste mit absteigender Tabelle - Help
25.08.2005 00:16:12
Hubert
Hallo Bernd
Versuche es einmal damit:

Sub Testen()
Sheets("Variante").Activate
Range("B4:D4").Select
Selection.Copy
Sheets("Zusammenfassung").Activate
Range("D4").Select
If ActiveCell = "" Then
ActiveSheet.Paste
ElseIf ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
End If
Application.CutCopyMode = False
End Sub

Ich hoffe, ich habe dein Problem richtig verstanden.
Gruss,
Hubert
AW: Copy / Paste mit absteigender Tabelle - Help
25.08.2005 00:21:34
Hubert
Hallo Udo,
Sorry, wollte in meiner Mail zuvor natürlich
dich ansprechen und nicht Bernd
Hubert
AW: Copy / Paste mit absteigender Tabelle - Help
25.08.2005 09:48:46
Udo
Hallo Bernd, Hubert und Ingolf,
danke für die schnelle Hilfe. Ich habe die drei Vorschläge mal durch den Recorder laufen lassen. Die Ingolf-Version funktioniert so wie ich es benötige. Die Zellen werden abgefragt und dann im anderen Sheet jeweils in einer neuen Range untereinander abgelegt.
Die verbeserte Version Bernd / Ingolf legt die Wert auch in dem neuen Worksheet an, jedoch werden die Werte immer wieder überschrieben.
Hubert, Deine Version ist auch "fast perfekt" - nur bricht das Makro nach 2. Läufen ab. Ich habe dann zwei belegte Zellenrange mit Werten, aber eben keine absteigende Tabelle.
Fazit: Mein Problem ist gelöst, Ihr seid meine Helfen und es bleibt eine Frage:
Was würdet Ihr mir für Bücher, Files 9pdf/ xls) oder Tutorials empfehlen, um VBA besser zu erlernen. Ich habe am Anfang immer nur aus den Büchern und von CDs abgeschrieben.
Bislang: "Excel-VBA in 21 Tagen" von Bernd Held (2003)
Gruss & Herzlichen Dank,
Udo.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige