Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Verständnisfrage zu offset | Herbers Excel-Forum


Betrifft: Verständnisfrage zu offset von: Jaffi
Geschrieben am: 27.12.2009 11:19:52

Hallo liebes Forum,

heute habe ich mal eine Verständnisfrage zu Offset:

Ich habe mir die Zeile:

      rngQuelle.Offset(0, 3).Resize(3, 19).Copy
      rngZiel.Offset(0, 3).Resize(3, 19).PasteSpecial Paste:=xlPasteValues

zusammengebastelt und sie tut meines Erachtens auch was sie soll. Aber irgendwie kapiere ich diese Offset-Eigenschaft nicht. Wa smachen diese beiden Zeilen genau? (ausser copy und paste ;o))

rngQuelle ist das Ergebnis einer .find Methode, also eine einzelne Zelle. Ich muss die gefunden Zellen noch prüfen welche Farbe sie haben und dann evtl. einfärben. Daher müsste ich wissen, wie ich dann den Zeilebereich (A bis Y) mit Offset definieren kann um den Zeilenbereich der gefundenen Zelle einzufärben.

Ich hoffe ihr könnt mir das verständlich machen.... irgendwie bin ich zu doof dafür : /

MAl wieder tausend Dank für eure Hilfe!

  

Betrifft: AW: Verständnisfrage zu offset von: Reinhard
Geschrieben am: 27.12.2009 11:34:33

Hallo Jaffi,

hilft dir dieses weiter:

Sub tt()
Dim rngQuelle As Range
Set rngQuelle = Range("A1")
MsgBox rngQuelle.Address
MsgBox rngQuelle.Offset(0, 3).Address
MsgBox rngQuelle.Offset(0, 3).Resize(3, 19).Address
Set rngQuelle = Range("A1:C30")
MsgBox rngQuelle.Address
MsgBox rngQuelle.Offset(0, 3).Address
MsgBox rngQuelle.Offset(0, 3).Resize(3, 19).Address
End Sub

Gruß
Reinhard


  

Betrifft: AW: Verständnisfrage zu offset von: Jaffi
Geschrieben am: 27.12.2009 11:56:57

Hey Super,

keine schlechte Idee....;o) hat mir schon ein stück weiter geholfen

Vielen Dank!


  

Betrifft: AW: Verständnisfrage zu offset von: Daniel
Geschrieben am: 27.12.2009 14:12:52

Hi
um zu verstehen, was .OFFSET und .RESIZE genau machen, könntest du ja mal folgenden Code verwenden, im Einzelstep durchtesten und beobachten, was passiert:

rngQuelle.Select
rngQuelle.Offset(0,3).Select
rngQuelle.Offset(0,3).Resize(3, 19).Select
kleiner Hinweis am Rande, noch: Beim Einfügen mit PASTE ist .RESIZE nicht notwendig, es reicht die linke obere Zelle des Zielbereichs anzugeben, da die Grösse automatisch anhand des Inhalts der Zwischenablage angepasst wird:
rngZiel.Offset(0, 3).PasteSpecial Paste:=xlPasteValues
um den Zeilenbereich A-Z der gefunden Zeile einzufärben, könntest du so vorgehen:
Intersect(rngQuelle.EntireRow, rngQuelle.Parent.Range("A:Y")).Interior.Colorindex = 3
Gruß, Daniel