Microsoft Excel

Herbers Excel/VBA-Archiv

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

Offset Bereich festlegen

Betrifft: Offset Bereich festlegen von: Burghard
Geschrieben am: 18.08.2014 13:24:23

Hallo,

ich möchte einen Range-Bereich variabel gestalten.
Die Zeile "With Range("I3:J9")" möchte ich sinngemäß so verändern:

" With ActiveCell(Offset 0,5):ActiveCell(Offset 0,6) " (Code ist so ja falsch)

Hilfe wäre nett.

Grüße Burghard

  

Betrifft: AW: Offset Bereich festlegen von: Daniel
Geschrieben am: 18.08.2014 13:30:02

Hi

With Range(ActiveCell.Offset(0, 5), ActiveCell.Offset(0, 6))

oder:

With ActiveCell.Offset(0, 5).Resize(, 2)

Gruß Daniel


  

Betrifft: AW: Doch noch Probleme von: Burghard
Geschrieben am: 18.08.2014 15:02:50

Hallo Daniel,

vielen Dank für die Info. Hab ich wieder was dazugelernt. Im Prinzip funktioniert die Sache so.
Leider aber nicht ganz so in meiner Arbeitsmappe. Ich habe diese mal hochgeladen.

https://www.herber.de/bbs/user/92173.xls

In der Spalte "F" stehen eigentlich Namen (hier A bis F). Ich will mir durch das Makro das Tippen der Namen ersparen. Diese Datei brauche ich immer wieder.
Funktionsweise:
Wenn ich beispielsweise in B3 die Zahl 2 eingebe, dann wird in B3 der Buchstabe "B" (also eigentlich ein Name) geschrieben.

Der Rangebereich im Makro ist "F3:G9".

Wenn ich nun in B11 bis B16 Zahlen (1-6) eingebe, dann müsste sich der Rangebereich von "F3:G9" auf "F11:G16" anpassen. Das ist das Problem. Dies müsste sich im Makro anpassen. Für die anderen Tabellen darunter gilt das ähnlich.

Kannst Du mir weiterhelfen?

Grüße Burghard


  

Betrifft: AW: Doch noch Probleme von: Daniel
Geschrieben am: 18.08.2014 15:20:33

HI

Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim varRow, rngBereich As Range
Dim rngF As Range
Dim rngG As Range
Set rngBereich = Intersect(Range("B3:B73"), Target)
If rngBereich Is Nothing Then Exit Sub


Application.EnableEvents = False
    
For Each rngBereich In rngBereich.Cells
     Set rngF = Range(Target.Offset(0, 4).End(xlUp).Offset(1, 0), Target.Offset(0, 4).End(xlUp). _
End(xlDown))
     Set rngG = rngF.Offset(0, 1)
     varRow = Application.Match(rngBereich.Value, rngG, 0)
     If IsNumeric(varRow) Then
         rngBereich.Value = rngF.Cells(varRow, 1).Value
     Else
         rngBereich.Value = Empty
     End If
 Next rngBereich
    
Application.EnableEvents = True

End Sub
Gruß Daniel


  

Betrifft: AW: Super! Lösung! von: Burghard
Geschrieben am: 18.08.2014 15:34:40

Danke Daniel!

Funktioniert wie gewünscht!


 

Beiträge aus den Excel-Beispielen zum Thema "Offset Bereich festlegen"