ok, le travail qu elon me demande est assez alambiqué je l'avoue mais bon!
je vais copier toute la macro::
Function plage_selection_region(lig_insertion As Integer, nombre_de_depot As Integer, nb_item_de_base As Integer _
, cas As Integer)
Dim plage As String
Dim plage_dest As String
'Ajout d'item
If cas = 1 Then
'Pour les régions
'Définition de la plage d'insertion
For i = 0 To (nombre_de_depot - 1)
ligAlpha = CStr(lig_insertion + (nb_item_de_base * i))
If i = nombre_de_depot - 1 Then
plage = "A" + ligAlpha + ":" + "H" + ligAlpha + plage
Else
plage = "," + "A" + ligAlpha + ":" + "H" + ligAlpha + plage
End If
Next
Range("A1" ).Activate
Range(plage).Select
Selection.Insert Shift:=xlDown
'Extension des formules
For i = 0 To (nombre_de_depot - 1)
If lig_insertion >= 2 And lig_insertion <= nb_item_de_base + 1 Then
ligAlpha = CStr(lig_insertion + (i + 1) + (nb_item_de_base * i))
ligAlphaDest = CStr(lig_insertion + i + (nb_item_de_base * i))
plage = "A" + ligAlpha + ":" + "H" + ligAlpha
plage_dest = "A" + ligAlphaDest + ":" + "H" + ligAlpha
iret = extension_formule(plage, plage_dest)
ElseIf lig_insertion >= 2 And lig_insertion = nb_item_de_base + 2 Then
ligAlpha = CStr(lig_insertion + (i - 1) + (nb_item_de_base * i))
ligAlphaDest = CStr(lig_insertion + i + (nb_item_de_base * i))
plage = "A" + ligAlpha + ":" + "H" + ligAlpha
plage_dest = "A" + ligAlphaDest + ":" + "H" + ligAlpha
iret = extension_formule(plage, plage_dest)
End If
Next i
'Retrait d'un item
ElseIf cas = 2 Then
For i = 0 To (nombre_de_depot - 1)
ligAlpha = CStr(lig_insertion + (nb_item_de_base * i))
If i = nombre_de_depot - 1 Then
plage = "A" + ligAlpha + ":" + "H" + ligAlpha + plage
Else
plage = "," + "A" + ligAlpha + ":" + "H" + ligAlpha + plage
End If
Next
Range(plage).Select
Selection.Delete Shift:=xlUp
End If
End Function
Function extension_formule(plage1 As String, plage2 As String)
Range(plage1).Activate
Range(plage1).Select
Selection.AutoFill Destination:=Range(plage2), Type:=xlFillDefault
'selection de la nouvelle plage crée et remplacement du nom qui a servi a la générer par le nom du nouveau dépôt
'Selection.Replace What:="X", Replacement:="cournon", LookAt:=xlPart, _
' SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
' ReplaceFormat:=False
End Function
et en gros quand le type veut rajouter un item il faut que ca aille s'implanter au bon endroit. en inserant les criteres de son item via un userform. le probleme ce qu'ici la plage est composée de 24 lignes donc ca bug!
merci