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: