Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1248to1252
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
Inhaltsverzeichnis

Zellbereich kopieren, aber Formeln behalten

Zellbereich kopieren, aber Formeln behalten
Sascha
Hallo Experten,
Ich habe nochmals eine Frage...
Ich habe 2 Bereiche A40 - R40 und A60 - R60
Im Bereich A40 - R40 sind Zahlen vorhanden, auch NULLEN.
Im Bereich A60 - R60 sind in diversen Zellen Formeln erhalten.
Diese Formeln dürfen NICHT überschrieben werden.
Mit einem Makro möchte ich nun den Bereich A40 - R40 kopieren, aber nur die Zellen die grösser als 0 sind, und diese Werte in den Bereich A60 - R60 in die jeweilige Zellen (nur die die grösser als 0 im oberen Bereich sind) einfügen, so dass die anderen Zellen die eine Formel enthalten nicht geändert werden.
Ist dies mit VBA möglich?
Gruss Sascha

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zellbereich kopieren, aber Formeln behalten
03.02.2012 15:06:03
Sascha
Ich habs mal so gelöst:
If Sheets("Hilf").Range("A40") > 0 Then
Sheets("Hilf").Range("A40").Copy
Sheets("LW11").Range("AC3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("B40") > 0 Then
Sheets("Hilf").Range("B40").Copy
Sheets("LW11").Range("AD3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("C40") > 0 Then
Sheets("Hilf").Range("C40").Copy
Sheets("LW11").Range("AE3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("D40") > 0 Then
Sheets("Hilf").Range("D40").Copy
Sheets("LW11").Range("AF3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("E40") > 0 Then
Sheets("Hilf").Range("E40").Copy
Sheets("LW11").Range("AG3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("F40") > 0 Then
Sheets("Hilf").Range("F40").Copy
Sheets("LW11").Range("AH3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("G40") > 0 Then
Sheets("Hilf").Range("G40").Copy
Sheets("LW11").Range("AI3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("H40") > 0 Then
Sheets("Hilf").Range("H40").Copy
Sheets("LW11").Range("AJ3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("I40") > 0 Then
Sheets("Hilf").Range("I40").Copy
Sheets("LW11").Range("AK3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("J40") > 0 Then
Sheets("Hilf").Range("J40").Copy
Sheets("LW11").Range("AL3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("K40") > 0 Then
Sheets("Hilf").Range("K40").Copy
Sheets("LW11").Range("AM3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("L40") > 0 Then
Sheets("Hilf").Range("L40").Copy
Sheets("LW11").Range("AN3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("M40") > 0 Then
Sheets("Hilf").Range("M40").Copy
Sheets("LW11").Range("AO3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("N40") > 0 Then
Sheets("Hilf").Range("N40").Copy
Sheets("LW11").Range("AP3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("O40") > 0 Then
Sheets("Hilf").Range("O40").Copy
Sheets("LW11").Range("AQ3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("P40") > 0 Then
Sheets("Hilf").Range("P40").Copy
Sheets("LW11").Range("AR3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("Q40") > 0 Then
Sheets("Hilf").Range("Q40").Copy
Sheets("LW11").Range("AS3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
If Sheets("Hilf").Range("R40") > 0 Then
Sheets("Hilf").Range("R40").Copy
Sheets("LW11").Range("AT3").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
Sheets("LW11").Select
Range("A1").Select
End Sub
Kann man diese Aufgabe auch mit einer Schleife lösen? Wenn ja, wie?
LG Sascha
Anzeige
Code für bedingtes Kopieren auf GLEICHEM Blatt
03.02.2012 15:28:40
NoNet
Hallo Sascha,
dein Code ist auf jeden Fall zu umständlich und viel zu lang !
Hier ein Code-Beispiel für Deine ursprüngliche Aufgabenstellung (Werte innerhalb des gleichen Blattes von A40:R40 nach A60:R60 kopieren, wenn A40:R40 > 0 ist und A60:R60 keine Formel/Funktion enthält :
Sub NurWerteGrosser0KopierenWennKeineFormelenthalten()
Dim rngQ As Range, rngZ As Range
For Each rngZ In [A40:R40]
If rngZ.Value > 0 And Not rngZ.Offset(20).HasFormula Then
rngZ.Copy rngZ.Offset(20) '20 Zeilen nach unten kopieren
End If
Next
End Sub
Dein Zusatz mit den Blättern "Hilf" und "LW11"sowie den Bereichen AC3:AT3 war in der Ursprungs-Aufgabenstellung nicht enthalten. Suchst Du für diese 2 unterschiedlichen Blätter/Bereiche auch noch eine Lösung ?
Gruß, NoNet
Anzeige
AW: Code für bedingtes Kopieren auf GLEICHEM Blatt
03.02.2012 15:33:17
Sascha
Hallo NoNet,
Vielen Dank für Deinen Code, werde diesen so einbauen. Super Sache...
Ja genau, das wäre die nächste Frage gewesen.
Suche für die beiden Blätter / Bereiche auch noch eine Lösung, da mein Lösungsweg wirklich extrem lang und umständlich ist :-(
Vielen Dank für die Nachfrage und dass Du dich meiner Frage annimmst!
Gruss Sascha
Code für bedingtes Kopieren auf VERSCHIED. Blätter
03.02.2012 16:13:06
NoNet
Hallo Sascha,
hier der Code zum bedingten Kopieren auf ein anderes Blatt :
Sub NurWerteGrosser0KopierenWennKeineFormelenthalten2()
Dim rngQ As Range, rngZ As Range, lngS As Long
Set rngZ = Sheets("LW11").[AC3] 'Zielbereich in Blatt "LW11", ab Zelle AC3
For Each rngQ In Sheets("Hilf").[A40:R40]
lngS = lngS + 1
If rngQ.Value > 0 And Not rngZ(1, lngS).HasFormula Then
rngQ.Copy rngZ(1, lngS) 'Zellwert in Zielzelle kopieren
End If
Next
End Sub
Mit der Codezeile Set rngZ = Sheets("LW11").[AC3] kannst Du angeben, auf welchem Blatt und ab welcher Zelle der ZIEL-Bereich beginnt !
Gruß, NoNet
Anzeige
AW: Code für bedingtes Kopieren auf VERSCHIED. Blätter
03.02.2012 18:00:23
Sascha
Hallo NoNet,
Hey Supercool... Funktioniert 1A, Und so schnell!! Vielen lieben Dank an Dich und einen schönen Abend...
Liebe Grüsse
Sascha

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige