Forums Neueste Beiträge
 

Problem mit Schleife über alle Blätter

18/09/2009 - 09:14 von ChristianJohn81 | Report spam
Hallo Community,

ich will, dass der Code auf jedes Blatt bis auf die, die am Anfang
ausgeschlossen werden, angewendet wird.
Ich glaube, dass das Problem ist, dass ich die Range etc. nicht so
sind, dass es für jedes Blatt angewendet werden könnte?!? (denn auf
ein Blatt angewendet funktioniert der Code.

Sub uebertragen()
'
For i = 1 To Sheets.Count
If Sheets(i).Name <> "a" And Sheets(i).Name <> "b" And Sheets
(i).Name <> "c" And Sheets(i).Name <> "d" Then

Range("Q22").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE(R[-16]C[-15],R[-13]C[-15],R
[-15]C[-15])"
Range("Q27:R27").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(R[-5]C,'[mappe.xls]für Übertragung'!
R2C10:R178C23,13,FALSE)"
Range("Q27:R27").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("Q22").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("Q22").Select
ActiveCell.FormulaR1C1 = ""
Range("Q22").Select

End If
Next i
End Sub


Danke!
Christian

PS: Ich hatte das schon einmal gepostet...es scheint aber gelöscht
worden sein. Warum, weiß ich nicht...
 

Lesen sie die antworten

#1 Hajo_Zi
18/09/2009 - 09:29 | Warnen spam
Hallo Christian,
auf select kann in VBA zu 99,9% verzichtet werden.
Option Explicit

Sub uebertragen()
Dim I As Long
For I = 1 To Worksheets.Count
If Sheets(I).Name <> "a" And Sheets(I).Name <> "b" And
Sheets(I).Name <> "c" And Sheets(I).Name <> "d" Then
With Worksheets(I)
.Range("Q22").FormulaR1C1 =
"=CONCATENATE(R[-16]C[-15],R[-13]C[-15],R[-15]C[-15])"
.Range("Q27:R27").FormulaR1C1 = "=VLOOKUP(R[-5]C,'[mappe.xls]für
Übertragung'!R2C10:R178C23,13,FALSE)"
.Range("Q27:R27").Copy
.Range("Q27:R27").PasteSpecial Paste:=xlPasteValues
.Range("Q22").ClearContents
'.Range("Q22") = "" ' zeile sinnlos da schon vorher gelöscht
End With
End If
Next I
End Sub

Gruß Hajo
MVP für Microsoft Excel
Betriebssystem Vista Ultimate SP2 und Excel Version2007 SP2
http://Hajo-Excel.de/



"" wrote:

Hallo Community,

ich will, dass der Code auf jedes Blatt bis auf die, die am Anfang
ausgeschlossen werden, angewendet wird.
Ich glaube, dass das Problem ist, dass ich die Range etc. nicht so
sind, dass es für jedes Blatt angewendet werden könnte?!? (denn auf
ein Blatt angewendet funktioniert der Code.

Sub uebertragen()
'
For i = 1 To Sheets.Count
If Sheets(i).Name <> "a" And Sheets(i).Name <> "b" And Sheets
(i).Name <> "c" And Sheets(i).Name <> "d" Then

Range("Q22").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE(R[-16]C[-15],R[-13]C[-15],R
[-15]C[-15])"
Range("Q27:R27").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(R[-5]C,'[mappe.xls]für Übertragung'!
R2C10:R178C23,13,FALSE)"
Range("Q27:R27").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("Q22").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("Q22").Select
ActiveCell.FormulaR1C1 = ""
Range("Q22").Select

End If
Next i
End Sub


Danke!
Christian

PS: Ich hatte das schon einmal gepostet...es scheint aber gelöscht
worden sein. Warum, weiß ich nicht...

Ähnliche fragen