martijnbos
Gebruiker
- Lid geworden
- 17 dec 2010
- Berichten
- 101
Hoi allemaal,
Ik heb in een excel bestand onderstaande twee macro's gemaakt.
De bovenste macro met naam "macro3" geeft geen fouten met compileren.
Maar bij macro met naam macrogroupby geeft hij de melding:
ongeldige of niet gekwalificeerde verwijzing.
Doel van deze macro is een group by voor de cellen vanaf B tot aan de laatste cel
Dit bevreemd mij omdat het deels een kopie is van een stukje dat staat onder "macro3"
De melding doet hij in het gele stukje code onderaan.
Kan iemand mij verklaren waarom deze code de ene keer wel goed is en daaronder niet.
Ik heb in een excel bestand onderstaande twee macro's gemaakt.
De bovenste macro met naam "macro3" geeft geen fouten met compileren.
Maar bij macro met naam macrogroupby geeft hij de melding:
ongeldige of niet gekwalificeerde verwijzing.
Doel van deze macro is een group by voor de cellen vanaf B tot aan de laatste cel
Dit bevreemd mij omdat het deels een kopie is van een stukje dat staat onder "macro3"
De melding doet hij in het gele stukje code onderaan.
Kan iemand mij verklaren waarom deze code de ene keer wel goed is en daaronder niet.
Code:
Sub Macro3()
Dim LaatsteRij As Long, BData As Range
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Sheets("blad1") 'in blad1
.Columns("C:D").Delete Shift:=xlToLeft 'paar kolommen deleten
.Cells.RowHeight = 20 'rijhoogtes aanpassen
LaatsteRij = WorksheetFunction.Max(4, .Range("B" & Rows.Count).End(xlUp).Row) 'rij van de laatste niet-lege cel in B-kolom, met ondergrens 4
Set BData = .Range("B4:B" & LaatsteRij) 'B-kolom in dat blad over het ganse bereik van gegevens
BData.Offset(, -1).FormulaR1C1 = "=VLOOKUP(RC[1],Picklocaties!C[1]:C[2],2,0)" 'zet in de A-kolom de formules
.Range("A3").Value = "Picklocatie"
.Range("F1").Value = "Gepicked door:"
BData.Offset(, -1).Resize(, 11).Sort key1:=.Range("C4"), key2:=.Range("E4"), key3:=.Range("A4"), Header:=xlNo 'Vanuit B-kolom 1 naar links en dan 11 kolommen breed sorteren
End With
End Sub
--------------------------------------------------------------------
Sub Macrogroupby()
'
' Macro1 Macro
' subtotaaal
'
'
Dim LaatsteRij As Long, BData As Range
LaatsteRij = WorksheetFunction.Max(4, .[COLOR="yellow"]Range[/COLOR]("B" & Rows.Count).End(xlUp).Row)
Set BData = .Range("B4:B" & LaatsteRij)
BData.Offset(, -1).Selection.Subtotal GroupBy:=5, Function:=xlSum, TotalList:=Array(7, 10), _
Replace:=True, PageBreaks:=True, SummaryBelowData:=True
End Sub
Laatst bewerkt: