Génération onglet automatique selon variableet mise en forme

Salut à tous !

Je vous sollicite à nouveau au sujet d'un pb que je rencontre.

En fait, je souhaite automatiser la génération de BL que nous effectuons sur excel.

Je m'explique : à l'heure actuelle, à chaque fois que notre service expédition doit faire une expédition, en gros, elle fait du copier/coller.

Le but serait que : les infos sont saisies dans la feuil1 selon un tableau bien précis puis un bouton permettrait de générer autant de BL qu'il n'y a de ligne de remplies.

Au cas où, je vous montre ce qu'il faudrait que ça rende au final + le tableau de données.

Quelqu'un a une idée ?

J'ai trouvé un bout de code qui "trainait" :

'Sub Ajout_Feuil()

End Sub

Mais je vois pas comment l'adapter à mon contexte.

Merci à tous

Cordialement,

13expedition.xlsx (12.51 Ko)

Bonjour Yohann, bonjour le forum,

Essaie comme ça (code à compléter) :

Sub Macro1()
Dim OD As Worksheet 'déclare la variable OD (Onglet Données)
Dim OM As Worksheet 'déclare la variable OM (Onglet Modèle)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim BL As Worksheet 'déclare la variable BL (Bon de Livraison)

Set OD = Worksheets("Données") 'définit l'onglet OD
Set OM = Worksheets("Trame mise en forme") 'définit l'onglet OM
TV = OD.Range("A1").CurrentRegion 'définit le tableau des Valeurs TV
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I dun tableau des valeurs TV (en partant de la seconde)
    OM.Copy After:=Sheets(Sheets.Count) 'copy l'onglet OM en dernière position
    ActiveSheet.Name = "BL " & TV(I, 1) 'renomme l'onglet actif
    Set BL = ActiveSheet 'définit l'onglet BL
    BL.Range("D4") = TV(I, 1) 'récupère le Nom_Société_Destinataire
    BL.Range("D5") = TV(I, 2) & " " & TV(I, 3) & " " & TV(I, 4) 'récupère Nº, Voie et Adresse
    BL.Range("D6") = TV(I, 5) 'récupère le "Complément_Adresse"
    BL.Range("D7") = TV(I, 6) & " " & TV(I, 7) 'récupère le Code_Postal et la Ville
    'je te laisse le soin de continer sur le même principe
Next I 'prochaine ligne de la boucle
End Sub

Bonjour à tous

Une variante :

Bye !

15expedition-v1.xlsm (27.18 Ko)

Re, le fil, le forum

Je voulais dire : Pfff ! Même pas mal !... Mais en fait, Aïe ! J'ai mal car c'est trop bien ce code de GMB...

Merci ThauThème pour le compliment.

En fait, j'ai hésité à envoyé ma proposition tant j'ai admiré la tienne !

Bye !

Merci les gars !

Je teste ça et vous tiens au jus

Salut à tous !

Ca marche super bien !

Maintenant, si je veux améliorer ton code pour être parfait, je me retrouve bloqué une nouvelle fois

1- Si je veux que le nom de mes onglets corresponde au numéro de BL qui aura été saisi dans la case "BL" (et donc pour chaque société) ou si c'est vide, un nom "random" ?

2- Je peux avoir une société et donc un seul point de livraison. Par contre, je peux avoir x équipements à livrer à ce même endroit et donc x numéro de série. Comment je peux gérer ce cas ? Je pensais partir d'une colonne "nb_équipements" sur laquelle on ferait une boucle. Non ?

Bonjour

Voilà pour la première question.

Pour la deuxième, fournis moi un exemple avec ce que tu veux obtenir.

Bye !

8expedition-v2.xlsm (27.87 Ko)

Salut !

alors, tout d'abord, merci !

Par contre, le code fait planter Excel...

Et pour le deuxième point : cf pièce jointe

Bonjour

Nouvelle version.

Pour le 2° point je ne suis pas plus renseigné sur ce que tu veux obtenir.

Désolé !

Bye !

10expedition-v3.xlsm (29.07 Ko)

Bonjour à tous,

Je ne vous ai pas du tout oublié mais je n'ai pas eu le temps encore de finaliser et bien tester ce que vous m'avez fourni.

En plus, j'ai des besoins qui s'ajoutent. Je vais sûrement vous embêter !

Bonjour à tous,

Je vous mets en pièce jointe une nouvelle version du fichier.

Il y a du changement. des champs sont ajoutés, et selon si le champ "proforma" est à "oui" ou "non", il faut générer en plus du BL, une proforma.

Je ne suis pas arrivé à ré-adapter ce qui a été fait. Chose bête en exemple : le nom de l'onglet = le contenu de la cellule BL.

Désolé, mon VB remonte à trop loin.

Merci les amis

Rechercher des sujets similaires à "generation onglet automatique variableet mise forme"