abevleeming
Gebruiker
- Lid geworden
- 30 jan 2012
- Berichten
- 436
Goedemiddag,
Ik vroeg me af of het mogelijk is (en vooral hoe het moet) om via een macro een formule in een cel te laten plaatsen.
Ik heb al aardig wat varianten geprobeerd maar geen enkele heb ik werkend gekregen. De formules zijn verschillend maar qua "moeilijkheid" redelijk gelijk.
Is het mogelijk om dit soort formules te vertalen naar een macro?
Alvast bedankt!
Zoals je ziet heb ik al aardig wat geprobeerd maar geen enkele werkend gekregen.
Ik vroeg me af of het mogelijk is (en vooral hoe het moet) om via een macro een formule in een cel te laten plaatsen.
Ik heb al aardig wat varianten geprobeerd maar geen enkele heb ik werkend gekregen. De formules zijn verschillend maar qua "moeilijkheid" redelijk gelijk.
Is het mogelijk om dit soort formules te vertalen naar een macro?
Alvast bedankt!
Code:
Sub Knop1_Klikken()
On Error Resume Next
Set C = ActiveCell.Offset(, 1 - ActiveCell.Column)
C.EntireRow.Insert
If Err.Number <> 0 Then MsgBox "er kan niet meer verder naar beneden geschoven worden": Exit Sub
C.Offset(-1).EntireRow.ClearContents
C.Offset(-1, 0).Formula = " = (IF(RC[4] = """", """", (IF(R[-1]C[4] = RC[4], R[-1]C, R[-1]C + 1))"
Range(C.Offset(-1, 1)).FormulaR1C1 = "(=ALS(RC[4]="";0;ALS(R[-1]C[4]=RC[4];R[-1]C;R[-1]C+1))))"
C.Offset(-1, 2).FormulaR1C1 = "(=ALS(RC[4]="";0;ALS(R[-1]C[4]=RC[4];R[-1]C;R[-1]C+1))))"
C.Offset(-1, 3).FormulaR1C1 = "(=TEKST.SAMENVOEGEN(RC[-3];ALS(RC[-2]=0;"";"");ALS(RC[-2]=0;"";RC[-2]);ALS(RC[-1]=0;"";"");ALS(RC[-1]=0;"";RC[-2])))"
C.Offset(-1, 4).FormulaR1C1 = "(=ALS(R[1]C="";"";RC[1]))"
C.Offset(-1, 5).FormulaR1C1 = "(=ALS(R[1]C="";"";RC[1]))"
Range(C.Offset(0, 0)).Formula = "=IF(RC[4]="""","""",IF(R[-1]C[4]=RC[4],R[-1]C,R[-1]C+1))))"
C.Offset(0, 1).Formula = "=IF(RC[4]="""";0;IF(R[-1]C[4]=RC[4];R[-1]C;R[-1]C+1))))"
C.Offset(0, 2).Formula = "=IF(RC[4]="""";0;IF(R[-1]C[4]=RC[4];R[-1]C;R[-1]C+1))))"
Range(C.Offset(0, 3)).Formula = "=CONCATENATE(RC[-3];IF(RC[-2]=0;"""";""."");IF(RC[-2]=0;"""";RC[-2]);IF(RC[-1]=0;"""";""."");ALS(RC[-1]=0;"""";RC[-2])))"
C.Offset(0, 4).Formula = "=IF(R[1]C="";"";RC[1]))"
Range(C.Offset(0, 5)).Formula = "=IF(R[1]C="";"";RC[1]))"
C.Offset(-1, 6).Select
End Sub
Zoals je ziet heb ik al aardig wat geprobeerd maar geen enkele werkend gekregen.