Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1156to1160
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

Select vermeiden - Teil 2

Select vermeiden - Teil 2
Holger
Hallo Excelfreunde,
mit eurer Hilfe habe ich überall wo es möglich ist "select" entfernt. Aber in einem Makro komme ich nicht weiter. Hier versagen meine Anfängerkenntnisse. Ohne das "select" stoppt der Code bei der "AutoFill" -Anweisung.
Wie bekomme ich hier das "select" weg?
 With Sheets(ZZ)
.Select
With .Range("N14")
.FormulaR1C1 = "=DATE(YEAR(R1C12),MONTH(RC[-4]),DAY(RC[-4]))"
.AutoFill Destination:=Range("N14:N50"), Type:=xlFillDefault
End With
With .Range("O14")
.FormulaR1C1 = "=IF(YEAR(RC[-1])=YEAR(R1C12),RC[-1],"""")"
.AutoFill Destination:=Range("O14:O50"), Type:=xlFillDefault
End With
With .Range("P14")
.FormulaR1C1 = "=IF(ISERROR(RC[-1]),"""",RC[-1])"
.AutoFill Destination:=Range("P14:P50"), Type:=xlFillDefault
End With
.Range("P14:P50").Copy
Range("J14").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
With Range("a14:L50")
.Sort Key1:=Range("J14"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
With Range("J14:J50")
.Font.Bold = True
.NumberFormat = "dd/mm/"
End With
Range("L14:L50").Font.Bold = True
Range("N14:Q51").Clear
.Protect
End With
Gruß
Holger

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Select vermeiden - Teil 2
20.05.2010 12:06:56
welga
Hallo,
eventuell musst du hinter Destination:= noch einen Punkt einfügen. Dann sollte das auch ganz ohne select gehen.
Versuch es mal.
gruß
welga
und nicht nur da
20.05.2010 12:11:20
Rudi
Hallo,
vor alle Bereiche, die sich auf Sheets(ZZ) beziehen muss ein . (Punkt)
Sonst geht's auf's aktive Blatt.
Gruß
Rudi
AW: und nicht nur da
20.05.2010 12:28:24
Holger
Hallo Rudi,
ich habe jetzt vor alle "Range" einen Punkt gesetzt und das "Select" weggelassen. Der Code stoppt trotzdem bei der ersten "AutoFill" -Anweisung.
    With Sheets(ZZ)
With .Range("N14")
.FormulaR1C1 = "=DATE(YEAR(R1C12),MONTH(RC[-4]),DAY(RC[-4]))"
.AutoFill Destination:=.Range("N14:N50"), Type:=xlFillDefault
End With
With .Range("O14")
.FormulaR1C1 = "=IF(YEAR(RC[-1])=YEAR(R1C12),RC[-1],"""")"
.AutoFill Destination:=.Range("O14:O50"), Type:=xlFillDefault
End With
With .Range("P14")
.FormulaR1C1 = "=IF(ISERROR(RC[-1]),"""",RC[-1])"
.AutoFill Destination:=.Range("P14:P50"), Type:=xlFillDefault
End With
.Range("P14:P50").Copy
.Range("J14").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
With .Range("a14:L50")
.Sort Key1:=.Range("J14"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
With .Range("J14:J50")
.Font.Bold = True
.NumberFormat = "dd/mm/"
End With
.Range("L14:L50").Font.Bold = True
.Range("N14:Q51").Clear
.Protect
End With
Gruß
Holger
Anzeige
ohne AutoFill
20.05.2010 12:32:51
Rudi
Hallo,
Machs so:
    With Sheets(ZZ)
.Range("N14:N50").FormulaR1C1 = "=DATE(YEAR(R1C12),MONTH(RC[-4]),DAY(RC[-4]))"
.Range("O14:O50").FormulaR1C1 = "=IF(YEAR(RC[-1])=YEAR(R1C12),RC[-1],"""")"
.Range("P14:P50").FormulaR1C1 = "=IF(ISERROR(RC[-1]),"""",RC[-1])"
.Range("P14:P50").Copy
.Range("J14").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
With .Range("a14:L50")
.Sort Key1:=.Range("J14"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
With .Range("J14:J50")
.Font.Bold = True
.NumberFormat = "dd/mm/"
End With
.Range("L14:L50").Font.Bold = True
.Range("N14:Q51").Clear
.Protect
End With

Anzeige
Fast Perfekt
20.05.2010 12:55:03
Holger
Danke Rudi,
läuft gut und verkürzt zudem den Code um einiges!
Aber trotzdem noch eine Frage:
Wenn das Makro abgelaufen ist, bleibt immer der Bereich J4:J50 markiert. Wie kann ich das verhindern?
Gruß
Holger
AW: Fast Perfekt
20.05.2010 13:11:13
Rudi
Hallo,
geht nur so:
With .Range("A1")
.copy
.pastespecial xlpasteformats
end with
Application.cutcopymode=false
Gruß
Rudi
Danke für den Trick!
20.05.2010 13:53:41
Holger
Hallo Rudi,
dann kann ich diesen "Trick" auch dazu benutzen, um eine bestimmte Zelle ohne "select" zu markieren.
Gruß
Holger

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige