Hallo,
Ik ben bezig met het ontwikkelen van een programma in Visual Basic for Applications in Excel( een macro). De matrix bestaat uit meerdere rijen en kolommen met alleen maar enen en nullen. De laatste rij en kolom bevatten steeds de som van alle enen van die rij/kolom.
Ik heb een algoritme bedacht om dit op te lossen. Dit algoritme bestaat uit meerdere "subroutines" waarin steeds een percentage van de kolommen/rijen wordt "weggeveegd". Ik ben al vrij ver maar heb nog een paar probleempjes. Het programma wat ik tot nu toe heb ziet er zo uit:
Sub Convert()
Dim R As Long
Dim Co As Long
Dim c As Range
Dim l As Long
Dim x As Double
Dim z As Double
Dim rng As Range
Dim rnc As Range
On Error GoTo EndMacro
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'STAP 1 - Aantal proevers dat 50% of meer van producten heeft getest
Set rng = ActiveSheet.UsedRange.Rows
Set rnc = ActiveSheet.UsedRange.Columns
For R = (rng.Rows.Count - 1) To 1 Step -1
x = Range("F" & R).Value
z = (x / (rnc.Columns.Count - 2)) * 100
If z < 50 Then
rng.Rows(R).EntireRow.Delete
End If
Next R
'STAP 2 - Aantal producten dat door 60% of meer van proevers is getest
Set rng = ActiveSheet.UsedRange.Rows
Set rnc = ActiveSheet.UsedRange.Columns
For Co = (rnc.Columns.Count - 1) To 2 Step -1
x = rnc.Cells(10, Co).Value
z = (x / (rng.Rows.Count - 2)) * 100
If z < 60 Then
rnc.Columns(Co).EntireColumn.Delete
End If
Next Co
EndMacro:
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Het eerste probleem dat ik heb is dat ik in stap 1 en 2 steeds de de kolommen en rijen met de sommen van de enen wil benaderen alleen ik weet niet hoe ik dat relatief moet doen. Ik heb nu staan Range("F" & R).Value en rnc.Cells(10, Co).Value waarbij ik een relatieve waarde voor de "F" resp. 10 wil hebben.
Het tweede probleem is dat stap 1 en stap 2 niet achter elkaar uitgevoerd willen worden. Ze willen wel apart( dus als ik quotjes zet voor 1 van de stappen) maar niet achter elkaar.
hoop dat iemand me hiermee verder kan helpen,
mvg,
iradun
Ik ben bezig met het ontwikkelen van een programma in Visual Basic for Applications in Excel( een macro). De matrix bestaat uit meerdere rijen en kolommen met alleen maar enen en nullen. De laatste rij en kolom bevatten steeds de som van alle enen van die rij/kolom.
Ik heb een algoritme bedacht om dit op te lossen. Dit algoritme bestaat uit meerdere "subroutines" waarin steeds een percentage van de kolommen/rijen wordt "weggeveegd". Ik ben al vrij ver maar heb nog een paar probleempjes. Het programma wat ik tot nu toe heb ziet er zo uit:
Sub Convert()
Dim R As Long
Dim Co As Long
Dim c As Range
Dim l As Long
Dim x As Double
Dim z As Double
Dim rng As Range
Dim rnc As Range
On Error GoTo EndMacro
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'STAP 1 - Aantal proevers dat 50% of meer van producten heeft getest
Set rng = ActiveSheet.UsedRange.Rows
Set rnc = ActiveSheet.UsedRange.Columns
For R = (rng.Rows.Count - 1) To 1 Step -1
x = Range("F" & R).Value
z = (x / (rnc.Columns.Count - 2)) * 100
If z < 50 Then
rng.Rows(R).EntireRow.Delete
End If
Next R
'STAP 2 - Aantal producten dat door 60% of meer van proevers is getest
Set rng = ActiveSheet.UsedRange.Rows
Set rnc = ActiveSheet.UsedRange.Columns
For Co = (rnc.Columns.Count - 1) To 2 Step -1
x = rnc.Cells(10, Co).Value
z = (x / (rng.Rows.Count - 2)) * 100
If z < 60 Then
rnc.Columns(Co).EntireColumn.Delete
End If
Next Co
EndMacro:
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Het eerste probleem dat ik heb is dat ik in stap 1 en 2 steeds de de kolommen en rijen met de sommen van de enen wil benaderen alleen ik weet niet hoe ik dat relatief moet doen. Ik heb nu staan Range("F" & R).Value en rnc.Cells(10, Co).Value waarbij ik een relatieve waarde voor de "F" resp. 10 wil hebben.
Het tweede probleem is dat stap 1 en stap 2 niet achter elkaar uitgevoerd willen worden. Ze willen wel apart( dus als ik quotjes zet voor 1 van de stappen) maar niet achter elkaar.
hoop dat iemand me hiermee verder kan helpen,
mvg,
iradun