Bonsoir
J’ai réussi à faire un code qui fonctionne mais il est sûrement optimisable car je répète 4 fois le codes pour 4 Range différentes.
Si quelqu’un a des pistes pour le raccourcir.
Il me permet de vérifier s’il y a des valeurs dans une plage et s’il y a des valeurs il met des 0 dans les cellules vides sinon il laisse vide.
Ensuite je n’arrive pas à ce que ce code ne se fasse que sur une page spécifique même si je suis pas dessus… la page où doit s’exécuter le code est « Parametres »
J’ai tenté plusieurs solutions mais échec.
En vous remerciant
J’ai réussi à faire un code qui fonctionne mais il est sûrement optimisable car je répète 4 fois le codes pour 4 Range différentes.
Si quelqu’un a des pistes pour le raccourcir.
Il me permet de vérifier s’il y a des valeurs dans une plage et s’il y a des valeurs il met des 0 dans les cellules vides sinon il laisse vide.
Ensuite je n’arrive pas à ce que ce code ne se fasse que sur une page spécifique même si je suis pas dessus… la page où doit s’exécuter le code est « Parametres »
J’ai tenté plusieurs solutions mais échec.
En vous remerciant
VB:
Sub rempli()
Dim nbval As Long
Sheets("Parametres").Activate
Application.Range("B9:E13").Select
nbval = WorksheetFunction.Count(Selection) ' nombre de valeurs
If nbval = 0 Then
Else
Dim rng1 As Excel.Range
Set rng1 = Application.Range("B9:E13")
Dim valuesArray() As Variant
valuesArray = rng1.Value
Dim rowIndex As Long
Dim columnIndex As Long
For rowIndex = LBound(valuesArray, 1) To UBound(valuesArray, 1)
For columnIndex = LBound(valuesArray, 2) To UBound(valuesArray, 2)
If IsEmpty(valuesArray(rowIndex, columnIndex)) Then
valuesArray(rowIndex, columnIndex) = 0
End If
Next
Next
rng1.Value = valuesArray
End If
Dim nbval2 As Long
Sheets("Parametres").Activate
Application.Range("I9:L13").Select
nbval2 = WorksheetFunction.Count(Selection) ' nombre de valeurs
If nbval2 = 0 Then
Else
Dim rng2 As Excel.Range
Set rng2 = Application.Range("I9:L13")
Dim valuesArray2() As Variant
valuesArray2 = rng2.Value
Dim rowIndex2 As Long
Dim columnIndex2 As Long
For rowIndex2 = LBound(valuesArray2, 1) To UBound(valuesArray2, 1)
For columnIndex2 = LBound(valuesArray2, 2) To UBound(valuesArray2, 2)
If IsEmpty(valuesArray2(rowIndex2, columnIndex2)) Then
valuesArray2(rowIndex2, columnIndex2) = 0
End If
Next
Next
rng2.Value = valuesArray2
End If
Dim nbval3 As Long
Sheets("Parametres").Activate
Application.Range("B19:E23").Select
nbval3 = WorksheetFunction.Count(Selection) ' nombre de valeurs
If nbval3 = 0 Then
Else
Dim rng3 As Excel.Range
Set rng3 = Application.Range("B19:E23")
Dim valuesArray3() As Variant
valuesArray3 = rng3.Value
Dim rowIndex3 As Long
Dim columnIndex3 As Long
For rowIndex3 = LBound(valuesArray3, 1) To UBound(valuesArray3, 1)
For columnIndex3 = LBound(valuesArray3, 2) To UBound(valuesArray3, 2)
If IsEmpty(valuesArray3(rowIndex3, columnIndex3)) Then
valuesArray3(rowIndex3, columnIndex3) = 0
End If
Next
Next
rng3.Value = valuesArray3
End If
Dim nbval4 As Long
Sheets("Parametres").Activate
Application.Range("I19:L23").Select
nbval4 = WorksheetFunction.Count(Selection) ' nombre de valeurs
If nbval4 = 0 Then
Else
Dim rng4 As Excel.Range
Set rng4 = Application.Range("I19:L23")
Dim valuesArray4() As Variant
valuesArray4 = rng4.Value
Dim rowIndex4 As Long
Dim columnIndex4 As Long
For rowIndex4 = LBound(valuesArray4, 1) To UBound(valuesArray4, 1)
For columnIndex4 = LBound(valuesArray4, 2) To UBound(valuesArray4, 2)
If IsEmpty(valuesArray4(rowIndex4, columnIndex4)) Then
valuesArray4(rowIndex4, columnIndex4) = 0
End If
Next
Next
rng4.Value = valuesArray4
End If
End Sub
Dernière édition: