Variabele range VBA

Status
Niet open voor verdere reacties.

LKH

Gebruiker
Lid geworden
8 feb 2012
Berichten
9
Hallo Allemaal,

Ik wil een macro maken waarbij de range automatisch wordt bepaald. Nu geef ik zelf de range aan maar omdat het een variabele range is, is dit niet echt handig.

Hier een deel van de macro:

[SQL]ActiveCell.FormulaR1C1 = _
"=IF(VLOOKUP(RC1,'overzicht producten per unit'!R2C1:R4000C8,8,FALSE)=""OK"","""",""Nader Controleren"")"
Range("B2").Select
Columns("B:B").EntireColumn.AutoFit
Range("B1").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC1="""","""",IF(VLOOKUP(RC1,'overzicht producten per unit'!R2C1:R4000C8,8,FALSE)=""OK"","""",""Nader Controleren""))"
Range("B1").Select
Selection.AutoFill Destination:=Range("B1:B4000"), Type:=xlFillDefault
Range("B1:B4000").Select[/SQL]

Dank voor jullie hulp!
 
Hoe bedoel je? Ik heb nu gekozen t/m rij 4000 maar omdat het variabele gegevens zijn kan het ook een keer 2000 of 5000 zijn. Dus het moet bijvoorbeeld van B1 t/m laatste rij met gegevens zijn.
 
Laatst bewerkt door een moderator:
Het is me na lang uitzoeken uiteindelijk gelukt(eerste keer dat ik echt met codes in VBA werk) :) beide macro's zijn nu ook een stuk kleiner.

Code:
Sub Macro1_Wel_Niet_terecht_Verblijf()
'
' Macro1_Wel_Niet_terecht_Verblijf Macro
'
' Sneltoets: CTRL+w
'
    Columns("A:A").Select
    Selection.Replace What:="@", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="2", Replacement:="2", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Range("H2").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(SUM(COUNTIFS(C[-7],RC1,C[-2],""B3"")+COUNTIFS(C[-7],RC1,C[-2],""B4"")+COUNTIFS(C[-7],RC1,C[-2],""B5""))=1,""OK"",""Nader Bekijken"")"
        Dim rngBegin As Range
    Set rngBegin = Range("H2")
    With rngBegin
        .AutoFill Range(.Address, Cells(Rows.Count, .Column - 7).End(xlUp).Offset(, 7)), xlFillDefault
    End With
 
Code:
Sub Macro1_Wel_Niet_terecht_Verblijf()
'
' Macro1_Wel_Niet_terecht_Verblijf Macro
'
' Sneltoets: CTRL+w
'
    With Columns("A:A")
        .Replace What:="@", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        .Replace What:="2", Replacement:="2", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    End With
    With Range("H2")
        .FormulaR1C1 = "=IF(SUM(COUNTIFS(C[-7],RC1,C[-2],""B3"")+COUNTIFS(C[-7],RC1,C[-2],""B4"")+COUNTIFS(C[-7],RC1,C[-2],""B5""))=1,""OK"",""Nader Bekijken"")"
        .AutoFill Range("H2:H" & Cells(Rows.Count, 1).End(xlUp).Row), xlFillDefault
    End With
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan