Aide sur une boucle

Résolu
Mosedef Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
benol3 Messages postés 570 Date d'inscription   Statut Membre Dernière intervention   -
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 570 Date d'inscription   Statut Membre Dernière intervention   87
 
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 570 Date d'inscription   Statut Membre Dernière intervention   87
 
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   Statut Membre Dernière intervention  
 
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 570 Date d'inscription   Statut Membre Dernière intervention   87
 
Envoyez nous votre fichier anonymisé via cjoint.com
0
Mosedef Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
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 570 Date d'inscription   Statut Membre Dernière intervention   87
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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 570 Date d'inscription   Statut Membre Dernière intervention   87
 
De rien :) Penses à mettre que ton post est résolu. @+
0