Il n'y a pas de magie en informatique mais là, je suis sec; encore un truc évident sans doute.
Dans un fichier de 150 colonnes et 2000 lignes, j'ai une colonne de stock (la 122) qui contient une formule recherchev qui va chercher une valeur ailleurs, dans un autre classeur.
Le contenu est donc une formule et je veux faire une sélection des lignes (les articles) à prendre en compte sur la base de cette valeur, j'en ai donc créée une autre avec une petite boucle qui contiendra la valeur, nombre entier.
Pour créer la colonne 121, donc:
-je regarde la valeur de la colonne 122
-si différent de 0, je la copie dans une autre colonne (la 121) au format nombre entier.
Code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ws1.Activate If MsgBox("voulez-vous mettre le stock à jour ?", vbYesNo, "Confirmation") = vbYes Then For i = PL To DL If Cells(i, 122) <> 0 Then Cells(i, 121) = Cells(i, 122) Else End If Next i Else End If
Termps de traitement de cette boucle: 8 mn !
wb1, ws1 noms du fichier source créés préalablement,
PL, DL, première et dernière lignes PL=8, DL= range(("F"&Rows.count).End(xlup).Row, F étant une colonne bien représentative du nombre d'articles.
il y a des tas de raisons d'optimiser un code mais à ce point là, il va chercher les infos en Russie, c'est pas possible !
Partager