Aide sur une boucle

Résolu/Fermé
Mosedef Messages postés 7 Date d'inscription jeudi 3 juillet 2014 Statut Membre Dernière intervention 25 novembre 2016 - 3 juil. 2014 à 11:02
benol3 Messages postés 569 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 7 mai 2015 - 4 juil. 2014 à 16:45
Bonjour à tous,
Je suis nouveau sur le forum mais je suis la qualité des interventions depuis pas mal de temps.
Enchanté!
J'ai besoin svp d'une aide sur une macro de boucle.
Voici ce que je veux faire:

-sur un onglet ou feuille ,copier le matricule dont le 1ier se trouve en A2.
-le coller dans la feuille à coté(dans le même classeur) dans la cellule J2 (cette cellule influence toutes les formules et graphiques que j'ai dejà crées dans cette même feuille).
-revenir sur la 1iere feuille et copier le nom qui se trouve sur la même ligne que A2(à savoir la cellule D2.
-retourner sur la 2ieme feuille et l'enregister sous format PDF sur le Bureau windows ou ailleurs...
-Au moment de l'enregistrement,coller le nom copier auparavant pour nommer le document pdf.

J'avais pensé à l'ordre "For next",mais il me manque une instruction dans la macro car l'action ne se répéte pas en passant au matricule suivant (A3,A4 etc.)
Pour info, il s'agit d'un projet de BSI que j'ai crée entièrement sur Excel et qui sera
a destination de 802 collaborateurs.
Donc, j'aurai tout intêret à automatiser cette tâche.

J'éspère avoir été assez précis, sinon n'hesitez pas à me demander des précisions.

Merci beaucoup d'avance.
Voici la macro:

Sub Macro1()
'
' Macro1 Macro
'

'

For i = 1 To 6
Selection.Copy
Sheets("Gardien").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
Range("J2").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("J2").Select
Sheets("Base gardien").Select
Range("A2").Select
Selection.Copy
Sheets("Gardien").Select
ActiveSheet.Paste
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Sheets("Base gardien").Select
Range("D2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "nom du collab"
Sheets("Gardien").Select
ChDir "C:\Users\U1003296\Desktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\U1003296\Desktop\Monique TOUGARD.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False

Next
End Sub

4 réponses

benol3 Messages postés 569 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 7 mai 2015 87
4 juil. 2014 à 16:16
Voici ton fichier modifié :

https://mon-partage.fr/f/NVUU242S/

Pour générer les rapports, clic sur le bouton "créer les rapports" dans la feuille "gardien"

Fais attention à tes formules, il y a des #ref à certains endroits...
Pour accéder au code du bouton, fais Alt+F11et va dans le module "Rapport".

Adapte le chemin où tu veux avoir ensuite tes pdf.
1
benol3 Messages postés 569 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 7 mai 2015 87
Modifié par benol3 le 3/07/2014 à 13:17
Salut,

Tu as oublier ton incrément i à la fin de ton code

Next i


Es tu obligé de faire des copier-coller ?

un simple ='Base Gardien'!A2 dans ta celulle de la feuille 'Gardien' ferait l'affaire ?
0
Mosedef Messages postés 7 Date d'inscription jeudi 3 juillet 2014 Statut Membre Dernière intervention 25 novembre 2016
3 juil. 2014 à 14:45
Merci bien pour la réponse.
En effet j'avais oublié le "i".
Mais même l'ayant rajouté,il ne me fait pas la boucle.(il ne passe pas au matricule suivant pour generer un autre fichier...).
Faire des copiers coller me semblait être la solution idéale puisque c'est la seule info qu'il faut renseigner en J2 pour que tout se mette à jour ( avec des recherch v).
Je comprend votre question des copier coller,mais je ne sais pas où placer votre suggestion dans le code.
Si vous pouviez me le corriger dessus svp.
Cdt
0
benol3 Messages postés 569 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 7 mai 2015 87
3 juil. 2014 à 15:06
Envoyez nous votre fichier anonymisé via cjoint.com
0
Mosedef Messages postés 7 Date d'inscription jeudi 3 juillet 2014 Statut Membre Dernière intervention 25 novembre 2016
4 juil. 2014 à 13:07
Le voici
https://www.cjoint.com/?3GenfzKanBR
A votre disposition.
Je l'ai simplifié au maximum en ne laissant que le necessaire.
Merci d'avance
0
benol3 Messages postés 569 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 7 mai 2015 87
4 juil. 2014 à 14:09
Re,

Donc pour recapituler, tu veux 1 feuille par personne en pdf qui serait la feuille "Gardien" avec le matricule de la personne ?

Donc si tu as 10 lignes dans ta feuille "Base gardien", tu auras 10 fichiers pdf etc ...

C'est bien sa ?

A quoi va te servir ta feuille "base de données" ?
0
Mosedef Messages postés 7 Date d'inscription jeudi 3 juillet 2014 Statut Membre Dernière intervention 25 novembre 2016
4 juil. 2014 à 14:32
Oui c'est ça.
Il s'agira d'un document pour chaque collaborateur.
Donc si y 'a 10 matricules,alors 10 fichiers.
Idealement chaque fichier pourra porter le nom de la personne (c'est pour cela que je copier le nom pour le coller au moment de l'enregistrement en pdf).
La feuille Base de donnée me servait dans les formules (ce sont des recherch v).
0
Mosedef Messages postés 7 Date d'inscription jeudi 3 juillet 2014 Statut Membre Dernière intervention 25 novembre 2016
4 juil. 2014 à 16:43
Merci beaucoup l'ami.
Ca fonctionne très bien (et j'avoue que j'aurai jamais trouvé tout seul :-) )
Je vais tenter d'adapter le code à mon fichier final.
Pour les #ref, c'est volontaire, sur le fichier final les formules marchent.
Bon week end :-)
0
benol3 Messages postés 569 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 7 mai 2015 87
4 juil. 2014 à 16:45
De rien :) Penses à mettre que ton post est résolu. @+
0