Bertrouille
XLDnaute Nouveau
Bonjour le fofo,
Je viens vers vous pour profiter de vos lumières et de vos compétences.
Voici ma problématique, j’ai un classeur contenant une base de 22000 enregistrements (regroupant 400 noms sur 52 semaines) je la nommerai BDD1
Cette BDD1 est un classeur partagé sur un serveur, elle doit être mise à jour toutes les semaines par des personnes identifiées.
Pour renseigner et mettre à jour la BDD1, j’ai créé un classeur(je le nommerai REQ) contenant des commandes permettant d’identifier l’utilisateur et s’il est autorisé d’extraire de la BDD1 les enregistrements dont il a l’administration pour qu’il puisse travailler en local. Jusque là, pas de problème.
Mon souci apparaît quand du classeur REQ je veux mettre à jour le classeur BDD1.
Voici le code que j’ai écrit pour mettre à jour :
Comme vous pouvez le constater je fais du ligne par ligne ce qui prend un temps fou et rend la procedure inutilisable.
Voila pourquoi je me tourne vers vous, avez-vous une idée pour optimiser ce processus ? Pour ma part je tourne en rond.
J’espère avoir été suffisamment clair et désolé pour la longueur du message
Merci d’avance.
Bertrouille qui patouille
Je viens vers vous pour profiter de vos lumières et de vos compétences.
Voici ma problématique, j’ai un classeur contenant une base de 22000 enregistrements (regroupant 400 noms sur 52 semaines) je la nommerai BDD1
Cette BDD1 est un classeur partagé sur un serveur, elle doit être mise à jour toutes les semaines par des personnes identifiées.
Pour renseigner et mettre à jour la BDD1, j’ai créé un classeur(je le nommerai REQ) contenant des commandes permettant d’identifier l’utilisateur et s’il est autorisé d’extraire de la BDD1 les enregistrements dont il a l’administration pour qu’il puisse travailler en local. Jusque là, pas de problème.
Mon souci apparaît quand du classeur REQ je veux mettre à jour le classeur BDD1.
Voici le code que j’ai écrit pour mettre à jour :
Sub misajour()
Workbooks("accueil.xls").Sheets("index").Select <= REQ
nbemployeagence = Workbooks("accueil.xls").Sheets("index").Range("b5", Range("b5").End(xlDown)).Count
Workbooks.Open Filename:=\\serveur\heure$\paye.xls <= BDD1
nbemployetotal = Workbooks("paye.xls").Sheets("en_cours").Range("b2", Range("b2").End(xlDown)).Count
For nba = 1 To nbemployeagence
For nbt = 1 To nbemployetotal
If Workbooks("accueil.xls").Sheets("index").Range("aa" & (4 + nba)).Value = Workbooks("paye.xls").Sheets("en_cours").Range("aa" & (1 + nbt)) Then
Workbooks("accueil.xls").Sheets("index").Range("aa" & (4 + nba)).EntireRow.Copy
Workbooks("paye.xls").Sheets("en_cours").Range("aa" & (1 + nbt)).EntireRow.PasteSpecial
End If
Next nbt
Next nba
Workbooks("paye.xls").Close savechanges:=True
Workbooks("accueil.xls").Close savechanges:=False
End Sub
Comme vous pouvez le constater je fais du ligne par ligne ce qui prend un temps fou et rend la procedure inutilisable.
Voila pourquoi je me tourne vers vous, avez-vous une idée pour optimiser ce processus ? Pour ma part je tourne en rond.
J’espère avoir été suffisamment clair et désolé pour la longueur du message
Merci d’avance.
Bertrouille qui patouille