Bonjour taz
Tu as parfaitement raison les select sont à éviter car inutile et alourdissant pour le traitement
Mais dans le cas d’espèce celui-ci a été élaboré par notre interlocuteur qui en est qu’à ses balbutiements dans le monde VBA
Lui modifier en profondeur son code pour le rendre plus efficace dans une bonne simplification ce n’est pas lui rendre service pour sa montée en compétence dans ce monde si particulier de la programmation car le résultat obtenu sera imbuvable à sa compréhension
Je préfère dans cette dynamique coller au mieux à son approche pour lui permettre de comprendre les modifications ajouts de celui-ci que j’ai effectué à l’obtention du résultat recherché et non le noyer dans une synthétisation bénéfique à l’exécution et nuisible à son évolution
J’ai en début de ma réponse alerté sur ce point :
« Effectivement ta procédure serait à reprendre pour simplification »
mais opté pour ne pas le désorienter à une même approche
Ok, donc en suppriment simplement les .select, je suppose que ça fera planter le code, j’ai de mon côté réussi à adapter un code d’alimentation de tableau que tu m’avais fait sur mon fichier de suivi de mon épargne salariale, du moins je crois que c’est toi qui l’avais fait, en le mettant et l’adaptant sur un autre fichier, mais je dois avouer que ce n’était qu’un code d’une trentaine de lignes…
Merci FFO , effectivement ça marche
Par contre j’avais volontairement retiré le bloc concernant les dates car il « merdouillait » , donc normal que tu ne l’ai pas trouvé
Par contre en regardant ta modification je vois que tu as pris la même syntaxe que mes autres blocs , et en regardant dans la capture d’écran de mon message précédent , je m’aperçoit qu’il y a une ligne « Application.CutCopyMode=False »
Ligne que je n’avais pas mise dans mes autres blocs , j’ai dû faire une mauvaise manip en copiant/collant , et ce que c’est cela qui faisait merdouiller la colonne date ?
Effectivement le code en l’état ne peut être modifié sans en changer l’approche
Les différents select marchent de paire avec les instructions Activecell dont ils sont le fruit
Si tu les supprimes ces instructions deviennent caduques il faut donc dans cette alternative modifier l’approche du traitement pas d’autre choix
Ravi que cela te convienne
En ce qui concerne la ligne de code oubliée :
« Application.CutCopyMode=False »
Elle ne peut-être à l’origine de ta déconvenue concernant la colonne des dates à alimenter
Celle-ci est utilisée pour vider le presse papier des données copiées précédemment pour ne pas polluer la copie suivante « Selection.Copy »
Transmets moi les lignes de code concernées que tu avais utilisé je regarderai et te dirai
Ton code est simplifiable une dizaine de lignes donneraient le même resultat
Mais il faut utiliser une autre approche
En fait j’avais copié collé mon 1er bloc l’un après l’autre en changeant les références donc c’est pour ça que je ne comprenais pas que ça ne marchait pas , car soit tout les blocs ne marchaient pas , soit ils marchaient tous
Je veux bien voir ta version simplifiée avec 'explication pour comprendre le cheminement de ton code si cela ne te dérange pas évidemment
Mon PC à cette heure ci est éteint
Demain je te transmettrait une version simplifiée avec des commentaires pour chaque ligne de code
Un peu de patience donc
Ci-joint une nouvelle version dont le traitement conçu selon une approche totalement différente a permis de réduire de manière significative le nombre de lignes de code de 92 lignes pour ta procédure à 23 lignes pour celle-ci
Je t’ai mis pour chacune un commentaire explicatif la concernant
J’ai opté pour la mise en forme des lignes alimentées onglet « STOCK NCF » (quadrillage) pour la recopie de celui mis en place sur la première (H12 à M12) qu’il faut conserver impérativement
Si son maintient représente une difficulté il est possible de masquer celle-ci et de réaliser les recopies à partir de la ligne 13 même colonnes
Pour ceci il suffit dans mon code de modifier la variable lignecible en lui affectant la valeur 13
De
lignecible = 12
mettre
lignecible = 13
Si besoin je peux intervenir à cette fin
Puis quadrillage H12 à M12 en place de masquer la ligne 12
Bonour FFO,
C’ est impressionnant la diminution du nombre de ligne , et les explications qui m’aident à comprendre , je t’avoue qu’il faut que je digère un peu tout ça
Mais au moins j’ai un exemple pour comprendre le cheminement au fur et à mesure de mon apprentissage
Par contre j’ai testé et je rencontre quelques problèmes , je me suis amusé à remplir plusieurs lignes dans l’onglet « BASE NC » , Colonnes « R » NOMBRE
de produit NC récupérés par le Fournisseur 2 afin d’avoir plusieurs lignes avec un stock à zéro colonne « V » et lorsque j’actualise le stock , le retour n’est pas bon ( voir capture d’écran )
Merci pour ce retour
Pas bien compris ton pb
Dans les captures d’écran je retrouve bien les données colonne V supérieures à 0 soit 49,111,23 sur les 3 dernières lignes de la recopie
Qu’est ce qui ne va pas dans ce rėsultat ?
Idem pour cette deuxième copie d’écran :
75,90 sont bien sur les 2 dernières lignes de la recopie
« moi je ne voudrai voir apparaitre que les ou stock est diffèrent de 0 »
Mais dans les copies justement c’est bien le résultat obtenu tous les stocks différents de 0 colonne V sont intégrés dans la recopie
Désolé je ne comprends pas
Otes moi d’un doute avant toute exécution tu vides bien l’onglet cible de toutes données ?