Salut Robert, Arnaud et le Forum,
bon j'ai pas tout suivi mais j'ai téléchargé le fichier BDD4...
bon, je ne veux pas faire les rabas-joie..... Mais je n'ai n'ai rien qui marche (erreur d'éxécution "9", l'indice n'appartient pas à la sélection.....) Bon c'est pas grave...
Ensuite sans avoir bien compris... Ni eu le temps de comparer le travail déjà fait par Arnaud avant Robert, je vous montre simplement une autre façon de voir les syntax.....
ceci :
' Copie date du bon de commande
Sheets("Commande").Range("H11").Copy
Sheets("Suivi des commandes").Range("A4").PasteSpecial Paste:=xlValues
peut être simplement remplacé par ceci ! :
Sheets("Suivi des commandes").Range("A4") = Sheets("Commande").Range("H11")
%%%%%%%%%%%%%%%%%%%%%
Ou encore ceci :
Worksheets("Suivi des commandes").Range("D4").Value = Worksheets("Réferentiel").Cells(Worksheets("Commande").DropDowns("uc").Value + 3, 1).Value
Worksheets("Suivi des commandes").Range("E4").Value = Worksheets("Réferentiel").Cells(Worksheets("Commande").DropDowns("nb uc").Value + 3, 6).Value
etc etc etc/.............................. il y en a plein lol
peut être remplacé par ceci ! :
With Worksheets("Suivi des commandes")
.range("D4") = blah blah blah
.range("E4") = blah blah blah
End with
Et encore on pourait simplifier plus, mais les outils d'Excel 4 de la barre d'outils "formulaire" ne me sont plus assez familliers !!
Un autre truc serait de faire aussi : Const Cible = "Blah Blah blah ......
(le DropDowns n'étant plus une fonction VBA, mais une fonction "cachée" d'XL4 qui viendra à disparaitre, je ne peux que conseiller de passer en ActiveX)
%%%%%%%%%%%%%%%%%%%%%
Et ceci aussi encore :
Sheets("Sortie de stock").Select
Range("F15").ClearContents
Range("D11").ClearContents
Range("F17").ClearContents
peut être remplacé par ceci ! :
Sheets("Sortie de stock").Range("F15, D11, F17").ClearContents
%%%%%%%%%%%%%%%%%%%%%
Là aussi ceci :
' copie les formules
Worksheets("Suivi des commandes").Range("P4").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISBLANK(RC[-1]),"""",IF(SUMPRODUCT((R3C[-1]:R[-1]C[-1]=RC[-1])*1)=0,MAX(R3C:R[-1]C)+1,""""))"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=RC[-3]-RC[-16]"
par ceci
Sheets("Suivi des commandes").Range("P4").Formula = "=IF(ISBLANK(RC[-1]),"""",IF(SUMPRODUCT((R3C[-1]:R[-1]C[-1]=RC[-1])*1)=0,MAX(R3C:R[-1]C)+1,""""))"
%%%%%%%%%%%%%%%%%%%%%
Enfin voilà ce n'était que des conseils lointains sur le net...... mais si çà marche tel quel soyer heureux ;-) Maître Vébéha ne viendra pas vous faire un procés !! lol
bonne nuit !
@+Thierry