Extraction par VBA

criscris11

XLDnaute Accro
Bonjour chers amis, le forum,
Il y a quelques temps, avec Monique, on avait planché sur un fichier mais impossible de le finaliser (pourtant on connaît tous Monique et ses formules magiques). La semaine dernière, on a revu un peu les choses et grâce à elle, j'ai pu améliorer la praticité du fichier afin que l'extraction qui reste à faire soit la moins galère possible pour nos chers VBéistes.
Voir les détails dans le fichier-joint.
Si besoin de renseignements supplémentaires, vous pouvez me contactez sans problème soit sur le forum soit en MP ou par e-mail si nécessaire.
Le code doit être compatible avec Excel 97.
Vous remierciant par avance, je vous souhaite à tous un bon après-midi.
Bien amicalement.
 

Pièces jointes

  • Extraction CSCMS (VBA).zip
    51.1 KB · Affichages: 87
Dernière édition:

criscris11

XLDnaute Accro
Re : Extraction par VBA

Re,
Je n'ai pas encore testé avec plus de 20 lignes (plus d'un tableau) mais au premier abord cela semble nickel. J'espère que cela n'a pas été trop galère à faire.
Dis-moi quand je lance l'extraction, est ce normal que je perde le format centré des 20 lignes sur la totalité du tableau ?
Concernant les 3 dernières lignes, la partie de droite est remplie automatiquement par la macro : pour remplir de partie de gauche il faut que j'emploie la même procédure soit
With Range(Cells(W, 6), Cells(W, 8))
.MergeCells = True
.HorizontalAlignment = xlLeft
End With
Cells(W, 6).FormulaR1C1 = _
"CERTIFIE CONFORME" & Chr(10) & "" & Chr(10) & "A , le" & Chr(10) & "" & Chr(10) & "Le Chef de corps" & Chr(10) & "(cachet, signature)"
en remplaçant W6 et W8 par W1, W2 et W3...
Dis-moi s'il faut que je procède de cette façon. Au cas où je reviendrais t'embêter. Pressé d'être lundi pour tester tout cà au bureau (d'où ma demande de compatibilité en excel 97), eh oui fini les vacances : les bonnes choses ont une fin.
Mille merci à toi et tiens-moi au courant.
Bonne fin d'après-midi.
Bien amicalement.
 

Cousinhub

XLDnaute Barbatruc
Re : Extraction par VBA

Re-,

format centré des 20 lignes

Fais ton format sur la feuille vierge en sélectionnant les colonnes entières (centré, à gauche....) puis reprends les cellules particulières une par une, normalement ça ne devrait pas bouger

en remplaçant W6 et W8 par W1, W2 et W3...
le W te donne le numéro de la ligne (38 pour le premier tableau)
donc si tu veux mettre quelque chose entre A38 et C38 par exemple, tu mets Range(Cells(W, 1), Cells(W, 3)), où 1 et 3 représentent les numéros de colonne
 

criscris11

XLDnaute Accro
Re : Extraction par VBA

Re,
Je suis à l'épreuve des tests et déjà il y a un bug : sur la ligne 11 la date à extraire se trouve dans le 3ème pas de 10 colonnes. Une fois la macro lancée, la bonne date s'extrait mais pas le reste des infos concernant la fonction, la date de début et la date de fin (voir le résultat dans la feuille CSCMS) en ligne 20 : la fonction extraite ainsi que la date de début et de fin correspondent au premier pas de 10 colonnes.
Si pb, n'hésites-pas à me contacter.
J'attends de tes nouvelles avant de continuer mes tests.
Merci d'avance.
 

Pièces jointes

  • Extraction CSCMS (VBA)v7.zip
    160.1 KB · Affichages: 35

Cousinhub

XLDnaute Barbatruc
Re : Extraction par VBA

Vu, remplaces ces lignes :
.Cells(derlig, 5) = Cells(cel.Row, 91).Value ' la fonction
.Cells(derlig, 6) = Cells(cel.Row, 92).Value ' date de début
.Cells(derlig, 8) = Cells(cel.Row, 93).Value ' date de fin

par :

.Cells(derlig, 5) = Cells(cel.Row, a - 5).Value ' la fonction
.Cells(derlig, 6) = Cells(cel.Row, a - 4).Value ' date de début
.Cells(derlig, 8) = Cells(cel.Row, a - 3).Value ' date de fin
 

criscris11

XLDnaute Accro
Re : Extraction par VBA

Re,
Merci bhbh pour la rectification du code qui fonctionne comme souhaité.
Je continuerais les tests ce soir avant le match, à la mi-temps et même après le match.
Merci pour tout et en espérant de ne pas trop t'embêter ce soir pour faire des modifs.
Si tu regardes le match, je te dis bon match sinon bonne soirée.
Amicalement.
 

criscris11

XLDnaute Accro
Re : Extraction par VBA

Salut bhbh,
Comme je te le disais hier soir en MP, je viens de tester ta macro avec plus de 20 dates à extraire différentes : c'est de la balle tout fonctionne comme je le voulais.
Merci t'es un vrai chef cher Breton. Au fait, où es-tu localisé en Bretagne (moi c'est à Rennes) ?
Bonne soirée et bon match de foot cette fois-ci.
 

criscris11

XLDnaute Accro
Re : Extraction par VBA

Bonsoir bhbh,
Content de reprendre le taf ce matin pour tester ton code sous 97.
1ère surprise : je me retrouve avec la pack office 2000 (ils ont enfin mis la main au porte-monnaie les terriens :D),
2ème surprise (là tu vas beaucoup moins rire :mad:) : ta macro me provoque une erreur : Erreur d'éxécution "1004" : Erreur définie par l'application ou par l'objet.
Quand j'ouvre le débogage, voilà tout ce qui est surligné en jaune (en fait tout ce qui concerne le tri) :
.Range("A18:I" & .Range("A65000").End(xlUp).Row).Sort Key1:=.Range("A18"), Order1:=xlAscending, Key2:=.Range("C18" _
), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal
Y aurait t'il une option que 2000 (ou 97) dans cette partie du code qui ne serait pas compatible ?
Petite précision : à la maison sous 2003, tout se déroule bien.
Peut-tu trouver une parade à ce bug car sans quoi je ne pourrais pas utiliser ta macro (dommage encore des heures de saisies manuelles en vue :mad:) ?
Merci d'avance et bonne soirée.
 

Cousinhub

XLDnaute Barbatruc
Re : Extraction par VBA

Bonsoir cris²11, le forum
ne connaissant pas (ou plus....:cool:) office 2000, tu pourrais essayer :

.Range("A18:I" & .Range("A65000").End(xlUp).Row).Sort Key1:=.Range("A18"), Order1:=xlAscending, Key2:=.Range("C18" _
), Order2:=xlAscending, Header:=xlGuess

c'est à dire tout ce qui est derrière....
Mais là, je travaille dans le flou, je ne sais pas ce qu'office 2000 est capable de faire...
Le mieux serait peut-être qu'un contributeur du forum possédant 2000 télécharge le fichier et regarde si cela passe.....
Bonne soirée (et maintenant, j'espère que la bière irlandaise ne va pas nous noyer.....:D)
 

Pièces jointes

  • Extraction CSCMS (VBA)v8.zip
    118.8 KB · Affichages: 25

criscris11

XLDnaute Accro
Re : Extraction par VBA

Re,
Merci pour cette correction en espérant que cà passe sous 2000 (et sous 97 car tous les postes du bureau ne sont pas sous 2000 : merci Bill :mad:).
Si personne ne passe par ce fil et qui 2000 pour tester, j'attendrais demain pour tester au bureau.
Avis aux heureux possesseurs d'Excel 2000 pour tester la version 7 et 8 de ce fichier pour voir si vous voyez une différence. Merci d'avance.

Je ne sais pas si la bière irlandaise va nous noyer mais en tous les cas la viande argentine était avariée :D.
Bonne soirée à toi. Je te tiens au courant demain, of course.
 

criscris11

XLDnaute Accro
Re : Extraction par VBA

Re,
Merci d'avoir fait la recherche ;). Je te tiens au courant demain soir en rentrant.
Bonne soirée à toi.

PS : As-tu réfléchi à ma demande concernant la sauvegarde ? Pas de panique, il n'y a pas d'urgence car si je réfléchis bien je pourrais toujours refaire l'extraction d'une période antérieure grâce à ton code mais ce ne serait pas de trop à moyen terme (changement d'année par exemple).
 

Discussions similaires

Statistiques des forums

Discussions
312 167
Messages
2 085 901
Membres
103 026
dernier inscrit
NAT dan