Bon de commande automatisé (Macro excel) [Résolu/Fermé]

Signaler
-
Messages postés
12247
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 février 2021
-
Bonjour,

Je fais appel à vos lumières pour solutionner ma problématique sûrement simple pour certains, mais trés compliqué pour moi!

J'ai un tableau de suivi de commande client avec les colonnes suivantes:
N° de commande/ Date prise commande/ Nom client/ Prénom client/ adresse/ Tél/ Rayon concerné/ Désignation produit/ Quantité / PVC / avantage / Accompte

Je souhaiterai, à la suite de chaque ligne, ajouter une colonne "générer un bon de commande" avec un "bouton: bon de commande" permettant d'exporter toutes ces données dans un bon pour pouvoir l'imprimer au client. Les Maccros suffisent elles ou faut-il utiliser visual basic?

J'ai le fichier, si vous le souhaitez je pourrais le transférer par mail.

Merci d'avance de votre réponse!
Cordialement,
Adeline

A voir également:

1 réponse

Messages postés
12247
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 février 2021
2 573
Bonjour,

C'est en fait très simple à réaliser.
Mais, il nous faut le fichier avec au moins deux feuilles :
- 1 feuille "base de données"
- 1 feuille "bon de commande" mise en forme et tout et tout de manière définitive.
Ceci de manière anonyme... Ne complète pas ta feuille base de données avec tous tes vrais clients... Uniquement 2-3 lignes avec des noms factices.

Ensuite :
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com

Va sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...

Messages postés
4
Date d'inscription
lundi 3 novembre 2014
Statut
Membre
Dernière intervention
3 novembre 2014

oui oui merci bonne journée!
Messages postés
4
Date d'inscription
lundi 3 novembre 2014
Statut
Membre
Dernière intervention
3 novembre 2014

J'ai montré le fichier à mes collégues, un seul petit probléme relevé il manque les données dans la collonne "avantage" du bon de commande (erreur de ma part puisque sur le premier fichier il y avait 2 fois la colonne "prix total")
Je te retransmet le lien:
https://www.cjoint.com/?0Kdm6W5AHaj

D'avance merci!
Messages postés
12247
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 février 2021
2 573
As-tu, au minimum, regardé le code de la macro?

Si oui, il t'étais aisé d'ajouter la ligne manquante...
Voici le code avant :
Option Explicit

Sub Generer_Commande()
Dim Cel As Range

Set Cel = ActiveCell
If Cel.Column <> 1 And Cel.Row < 8 Then MsgBox "Sélectionnez un numéro de commande valide.", vbCritical: Exit Sub
If Range(Cel.Offset(0, 1), Cel.Offset(0, 12)).SpecialCells(xlCellTypeBlanks).Count > 2 Then MsgBox "Les cellules obligatoires n'ont pas toutes été saisies", vbCritical: Exit Sub

With Sheets("Bon de commande")
  .[D6] = Cel.Offset(0, 2).Value
  .[D7] = Cel.Offset(0, 3).Value
  .[D8] = Cel.Offset(0, 4).Value
  .[D9] = Cel.Offset(0, 5).Value
  .[D11] = Cel.Offset(0, 1).Value
  .[A9] = Cel.Offset(0, 6).Value
  .[A12] = Cel.Value
  .[A17] = Cel.Offset(0, 7).Value
  .[B17] = Cel.Offset(0, 8).Value
  .[C17] = Cel.Offset(0, 9).Value
  .[E17] = Cel.Offset(0, 11).Value
  .Select
End With
End Sub

et le code après modification :
Option Explicit

Sub Generer_Commande()
Dim Cel As Range

Set Cel = ActiveCell
If Cel.Column <> 1 And Cel.Row < 8 Then MsgBox "Sélectionnez un numéro de commande valide.", vbCritical: Exit Sub
If Range(Cel.Offset(0, 1), Cel.Offset(0, 12)).SpecialCells(xlCellTypeBlanks).Count > 2 Then MsgBox "Les cellules obligatoires n'ont pas toutes été saisies", vbCritical: Exit Sub

With Sheets("Bon de commande")
  .[D6] = Cel.Offset(0, 2).Value
  .[D7] = Cel.Offset(0, 3).Value
  .[D8] = Cel.Offset(0, 4).Value
  .[D9] = Cel.Offset(0, 5).Value
  .[D11] = Cel.Offset(0, 1).Value
  .[A9] = Cel.Offset(0, 6).Value
  .[A12] = Cel.Value
  .[A17] = Cel.Offset(0, 7).Value
  .[B17] = Cel.Offset(0, 8).Value
  .[C17] = Cel.Offset(0, 9).Value
  .[D17] = Cel.Offset(0, 10).Value 'MODIFICATION ICI**************
  .[E17] = Cel.Offset(0, 11).Value
  .Select
End With
End Sub


Il faut que TU comprennes ce code. Je l'ai fait simple exprès. JE ne vais pas corriger ton code en cas de changement dans 3 mois... Ce sera à TOI de prendre en charge la maintenance de cette macro. Donc essaie de la comprendre...
Messages postés
4
Date d'inscription
lundi 3 novembre 2014
Statut
Membre
Dernière intervention
3 novembre 2014

Désolé c'est un peu du chinois pour moi tout ça j'ai essayé par moi même mais j'ai peur de faire un fausse manip et planté la maccro.
Je vais me débrouiller merci.
Messages postés
12247
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 février 2021
2 573
Je vais me débrouiller merci.
Pour cette modif, c'est fait....