VBA Bouble à alléger

Fermé
Kharny - 3 juin 2010 à 21:27
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 4 juin 2010 à 09:35
Bonjour à tous.

Voici mon problème.
Tout part d'un tableau excel sur lequel un collègue et moi travaillons en permanence.
Pour pouvoir travaillé en simultané, nous utilisons chacun une copie du tableau.

extrait du tableau :
colonne 2 colonne 8 colonne 9 colonne 54
affaire article n° de série régul
le reste des colonnes n'est pas intéressant pour mon problème.

Mon collègue travaille sur les colonne de 10 à 53. Il modifie les informations régulièrement et rajoute des lignes.
De mon coté, je ne travaille que sur la colonne 54 (je ne rajoute pas de ligne).
Je voudrais, donc une fois par semaine coordonner nos deux copies du tableau.
donc rétablir la colonne 54 sur son tableau.
J'ai donc crée un simple programme VBA.
Apres avoir copié ma feuille "Régul" dans son classeur pour compléter la colonne 54 sur sa feuille "Suivi"

Dim a As Integer
Dim b As Integer
Dim d As Integer
Dim e As Integer

e = 807

'Boucle recherche dans suivi
For a = 2 To e
'Boucle recherche dans regul
b = 2
While b < e
'Affaire ?
If Sheets("Suivi").Cells(a, 2) = Sheets("Régul").Cells(b, 2) Then
'article 8
If Sheets("Suivi").Cells(a, 8) = Sheets("Régul").Cells(b, 8) Then
'N° Série ? 9
If Sheets("Suivi").Cells(a, 9) = Sheets("Régul").Cells(b, 9) Then
'Ajout de la régularisation 54
Sheets("Suivi").Cells(a, 54) = Sheets("Régul").Cells(b, 54)
d = e
Else
d = d + 1
End If
Else
d = d + 1
End If
Else
d = d + 1
End If
Wend
Next

End Sub

Le programme fonctionne bien
mais le problème est qu'il prend plus de 20 minutes pour le calcul
Il y a t'il un moyen pour alléger ce dernier.
Ou peut être un fonction excel que je ne connais pas :).
Enfin le but est de gagner du temps.
J'espère avoir était explicite.
Merci d'avance a tout passionné qui pourra m'aider.



2 réponses

Bonjour,

Dans ton code :
e = 807
b = 2
While b < e

b n'est jamais modifié : boucle infinie.
"Le programme fonctionne bien" : j'ai un doute...

Cordialement,
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
4 juin 2010 à 09:35
bonjour,
Dis moi si j'ai compris le fonctionnement:

sur une ligne tu compares les colonnes 2,8, 9, et si les 3 sont égales tu inscris la régul en col 54 et tu sors ?

la copie de ton classeur sur l'autre concerne telle uniquement cette régulation ?

a quoi sert "d"
1