VBA: Kurzschreibweise Zelldaten umschreiben

Bild

Betrifft: VBA: Kurzschreibweise Zelldaten umschreiben
von: Joerschi
Geschrieben am: 22.04.2015 22:54:50

Hallo liebes Forum,
Ich bin absoluter VBA-Anfänger...
Innerhalb eines VBA-Alghoritmus sollen verschiedene Inhalte von Zellen in andere Zellen geschrieben werden.
Dabei handelt es sich um teils ein paar Hundert Zellen horizontal hintereinander.
Bislang kenne ich nur diese Schreibweise, in der man Zelle für Zelle überträgt (was entsprechend lang dauert):


Sub durchlauf()
Z = 10 ' Zielzeile , ab wo automatische Eintragung Ergebnisse beginnt
For i = Sheets("Analyse").Cells(1, 20) To Sheets("Analyse").Cells(1, 22) ' von - bis
 Sheets("Analyse").Cells(1, 9) = i  ' aktuelle Bearbeitungszeile
 
Sheets("Analyse").Cells(Z, 1) = Sheets("Analyse").Cells(8, 2) ' ab hier Werte für Quellbereich ( _
B8:I8), die umgeschrieben werden sollen
Sheets("Analyse").Cells(Z, 2) = Sheets("Analyse").Cells(8, 3)
Sheets("Analyse").Cells(Z, 3) = Sheets("Analyse").Cells(8, 4)
Sheets("Analyse").Cells(Z, 4) = Sheets("Analyse").Cells(8, 5)
Sheets("Analyse").Cells(Z, 5) = Sheets("Analyse").Cells(8, 6)
Sheets("Analyse").Cells(Z, 6) = Sheets("Analyse").Cells(8, 7)
Sheets("Analyse").Cells(Z, 7) = Sheets("Analyse").Cells(8, 8)
Sheets("Analyse").Cells(Z, 8) = Sheets("Analyse").Cells(8, 9)
 
 Z = Z + 1
Next i
End Sub

Ich würde mich freuen, wenn mir jemand weiterhelfen kann, wie man den obigen beispielhaften Quellbereich (B8:I8) und Zielbereich "in kurz" darstellen kann anstatt in jeder Zeile nur eine Zelle...
Danke im Voraus für jede Hilfe und Viele Grüße
Joerschi

Bild

Betrifft: AW: VBA: Kurzschreibweise Zelldaten umschreiben
von: Jannik
Geschrieben am: 23.04.2015 08:54:19
Hier mal ein kurzer Code, der das gleiche macht wie deiner. Ich habe mich vor allem über die For Schleife und das Aufzählen von Z gewundert: Beide Befehle sind meiner Meinung nach nicht nötig für das was du da machen willst... (vor allem da der gleiche Bereich wieder überschrieben wird)
Grüße Jannik

Sub durchlauf()
Z = 10 ' Zielzeile , ab wo automatische Eintragung Ergebnisse beginnt
With Sheets("Analyse")
    
    '.vor den Befehlen bedeutet es bezieht sich auf Sheets Analyse
    
    ' Zusammengefasster Bereich        Hier wird nur die erste Zelle angegeben
    .Range(.Cells(8, 2), .Cells(8, 9)).Copy Destination:=.Cells(Z, 1)
    
End With
End Sub


Bild

Betrifft: nur Werte kopieren?
von: Joerschi
Geschrieben am: 24.04.2015 19:41:04
Vielen Dank für die Hilfe.
Beim Austesten habe ich gemerkt, dass ich ungenau war (wie gesagt - Anfänger: wusste nicht, dass das wichtig war).
Statt allen Zelleninhalten sollen nur die Werte kopiert werden (nicht die Formate oder Formel).
Wie könnte man den Teil diesbezüglich noch konkretisieren?:
' Zusammengefasster Bereich Hier wird nur die erste Zelle angegeben
.Range(.Cells(8, 2), .Cells(8, 9)).Copy Destination:=.Cells(Z, 1)
Danke vorab und Liebe Grüße
Joerschi

Bild

Betrifft: AW: nur Werte kopieren?
von: Daniel
Geschrieben am: 24.04.2015 19:53:49
Hi
nur Werte kopieren:

.Range(.Cells(8, 2), .Cells(8, 9)).Copy 
.Cells(Z, 1).PasteSpecial xlpasteall
Gruß Daniel

Bild

Betrifft: AW: nur Werte kopieren?
von: Daniel
Geschrieben am: 24.04.2015 19:57:57
Hi
nur Werte kopieren:

.Range(.Cells(8, 2), .Cells(8, 9)).Copy 
.Cells(Z, 1).PasteSpecial xlpasteall
Gruß Daniel

Bild

Betrifft: AW: nur Werte kopieren?
von: Joerschi
Geschrieben am: 25.04.2015 20:37:01
Vielen Dank Daniel.
Nicht ganz die Lösung, da statt nur den Werten ALLES kopiert wurde.
Aber statt xlpasteall verwendet man xlPasteValues, wie ich von dieser sehr guten Zusammenfassung gesehen habe.
https://www.herber.de/mailing/vb/html/xlmthpastespecialrangeobj.htm
Danke nochmal für die Hilfe und LG
Joerschi

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Automatische Sortierung+Zuordnung per Formel"