Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

nassah_78

XLDnaute Nouveau
Bonjour,
Je suis débutant en macro, et je souhaiterais si il est possible :
d'après un fichier ci joint sur lequel j ai une feuille initiale (sheet) en créer x feuille correspondant à x n° de factures(de la feuille sheet)
les nouvelles feuilles crééer doivent se nommer d'après une cellule sur la feuille sheet (n° factures - Nom du client)
et proceder à la mise en forme et mise en pages:
mise en forme: taille et type du texte, quadrillage, format et couleurs, paysage,..
mise en pages: logo en haut à gauche, nom de la feuille en bas centre, non sté en bas gauche, nbre pages en bas droite

Je vous joins un exemple sur le quel j ai deja une macro que j'ai bricolé mais pas fini
D'avance je vous remercie énormément car ce travail est répétitif (c est tellement facile avec une macro)

Merci à tous
 
Re : Excel 2010 MAcro

Bonsoir nassah_78,

Vu d'ici, j'ai un peu de mal à distinguer le fichier qui serait joint 😱
Par ailleurs, si c'est facile avec une macro, la question est de savoir si un bon vieux modèle ne serait pas encore plus indiqué!?
 
Re : Excel 2010 MAcro

Re-bonsoir Hassan,

Je n'aurai sans doute pas le temps d'y travailler aujourd'hui, mais quelques précisions me semblent nécessaires (de manière que d'autres puissent proposer une solution, si le coeur leur en dit):
  • Tu voudrais parcourir la colonne A de ta feuille "Sheet1" et, chaque fois qu'on trouve un "bloc" comprenant Véhiposte SAS - Détail des dépenses refacturées, créer une nouvelle feuille ayant la même mise en forme que les feuilles "123-AAA" et "456-BBBB" et y copier les infos de la feuille "Sheet1", comprises entre deux "zones en jaune"?
  • Pourquoi le n° de facture des deux feuilles que tu as fournies ne sont-ils pas les mêmes que dans la feuille "Sheet1"? ("123" dans "Sheet1" devient "S-RED-12-0690" dans la feuille "123-AAA" 😕)
  • Si tu ajoutes dans ton classeur une feuille "modèle", dans laquelle tu règles déjà la mise en page, tu insères les pieds de page, tu positionnes déjà ton image, tu recopies les titres des colonnes (en imaginant que ce sont toujours les mêmes!?), il ne resterait plus qu'à faire une copie de cette feuille et y coller les infos qui doivent y figurer ... en tout cas si j'ai bien compris!
  • Pour ce qui est de la feuille "Synthèse", les dates de facture et d'échéance, c'est toi qui les indiques?
 
Re : Excel 2010 MAcro

Bonsoir Modeste,
le 1er point est tes bien compris et c'est exactemen ce que je cherche à faire.
pour le 2eme point, c'est une erreur de ma part, je voulais pas compliquer les chose aec des n° "long".
pour le 3eme point, le nombre de lignes n est pas toujours le meme selont les factures(je peux avoir 2 ligne, ou 900 lignes)
et pour les dates de factures et echéance, c' est fait manuellement.
Là j ai mis un exemple pour 2 factures mais, j'ai en général entre 2 et 60 factures

Vraiment merci car ce travail me prends 1 semaine de travaille (plusieurs fichiers à traiter)
Merci pour tout
 
Re : Excel 2010 MAcro

Bonjour,

Peux-tu tester le code dans le Module1? Celui-ci s'occupe de créer, au départ d'une feuille "Modèle", autant de feuilles qu'il y a d'occurrences du texte "Véhiposte SAS - Détail des dépenses refacturées", en colonne A de "Sheet1"

Attention, la macro ne vérifie pas si une feuille du même nom existe déjà, si des caractères non-autorisés sont utilisés, ni si on dépasse les 31 caractères admis.
Je suis parti du principe que dans les 15 lignes sous le texte recherché on trouverait "Type de dépense" (pour déterminer où commence la zone à copier). De même, il ne reste qu'à espérer que les totaux à recopier seront toujours 2 lignes en-dessous de chaque tableau!

J'ai supprimé les 2 feuilles ("123-AAAA" et "456-BBB").
J'ai également effacé les immatriculations qui figuraient dans ton fichier (pas certain que ce type d'infos puisse se trouver sur Internet). Je te suggère de les effacer du fichier que tu avais déposé (vérifie que d'autres infos "sensibles" ne doivent pas subir le même traitement!)

Je ne suis pas allé plus loin, pour le moment ... teste ce bout de code et dis-nous si -jusque là- ça fonctionne comme tu le voulais.
 

Pièces jointes

Re : Excel 2010 MAcro

Bonjour Mdeste,

c'est super, c'est exactement ce que je veux faire.
par contre je shaite en plus :
- mettre en gras, couleur grise et encadrer le totaux (ht-tva-ttc)
- quadrillage des lignes allimentées dans les différnets feuilles

je vais essayer ce soir de le lancer avec des données réelles (plus de factures) pour voir ce que ça va donner.

et si je suhaite ajouter des nouvelles colonnes dans le modéle ou sheets, l suffit juste de modifer le nom "Types de dépense" dans la macro?

Merki merki

j'avoue chapeau.
 
Re : Excel 2010 MAcro

Bonsoir,

et si je suhaite ajouter des nouvelles colonnes dans le modéle ou sheets, l suffit juste de modifer le nom "Types de dépense" dans la macro?
Aaahh ben non 😉 "Types de dépenses" est le texte dont j'espère qu'il figurera toujours en colonne A de la "Sheet1" (lignes 8 et 59). C'est donc le point de repère qui permet de déterminer que le tableau à copier commence à la ligne suivante.
Si entre le bloc en jaune et le début du tableau, il y avait toujours le même nombre de lignes, on pourrait se passer de ce repère, mais dans ton exemple, il y a 2 lignes vides au-dessus du premier tableau et 1 seule au-dessus du second!?

Si le nombre de colonnes est appelé à changer mais qu'il est ensuite invariable, on peut faire les modifs nécessaires "en dur" dans le code. Sinon, il faut qu'on modifie l'une ou l'autre instruction, pour rendre ce nombre variable. Ceci dit, il faudra tout de même des repères stables (d'où mes remarques au §3 de mon message précédent)

Ci-dessous, le code avec les bordures aux tableaux, ainsi qu'aux "totaux", qui seront aussi en gras, sur fond gris.
Il remplace donc le code de Module1 ...
Tu nous diras ce que donnent tes tests?

VB:
Sub creationFeuilles()
With Sheets("Sheet1")
    Set trouve = .Range("A:A").Find("Véhiposte SAS - Détail des dépenses refacturées", LookAt:=xlWhole, LookIn:=xlValues)
    If Not trouve Is Nothing Then
        firstAddress = trouve.Address
        Do
            Sheets("Modèle").Copy after:=Sheets(Sheets.Count)
            Set newSh = Sheets(Sheets.Count)
            newSh.Name = trouve.Offset(2, 1) & "-" & trouve.Offset(3, 3)
            débutListe = trouve.Row + Application.Match("Type de dépense", trouve.Resize(15, 1), 0)
            fin = .Range("A" & débutListe).End(xlDown).Row
            .Range("A" & débutListe & ":S" & fin + 2).Copy newSh.Range("A15")
            With newSh
                .[B9] = trouve.Offset(1, 1)
                .[D9] = trouve.Offset(1, 3)
                .[B10] = trouve.Offset(2, 1)
                .[B11] = trouve.Offset(3, 1)
                derlig = .Range("A15").CurrentRegion.Rows.Count + 15
                .Range("A15:S" & derlig - 2).Borders.LineStyle = xlContinuous
                With .Range("Q" & derlig).Resize(1, 3)
                    .Font.Bold = True
                    .Interior.Color = RGB(227, 227, 227)
                    .Borders.LineStyle = xlContinuous
                End With
            End With
            Set trouve = .Range("A:A").FindNext(trouve)
        Loop While Not trouve Is Nothing And trouve.Address <> firstAddress
    End If
End With
End Sub
 
Re : Excel 2010 MAcro

Bonjour à tous et à MODESTE,

Oui c'est exactement ce que je cherche à faire, et c'et pafait
je vas juste rajouter le bouton de la macro et rajouter aussi la macr de création de fichier par feuiles de factures (macr déja existante. Mon travail sera juste de vérifier que la macro se passe bien

dans mon travail, j'ai quelques ETATS à srtir tout les mois et je vais les mettre en forme pour qu elle corresponde au "modèle"
et s ce 'est pas possible à faire, je feraiss certainnement appel à ta modeste matière grise lol.
en tout cas, bravo à toi et à excel. et merci

à bientot
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
366
Réponses
25
Affichages
1 K
Réponses
5
Affichages
909
Réponses
5
Affichages
687
Réponses
3
Affichages
645
Retour