Mise en place d'un gestionnaire de Bon de Livraison et Bon de Commande Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
D
DUAL ex
Membre habitué
Membre habitué
Messages : 70
Inscrit le : 4 août 2017
Version d'Excel : 2010

Message par DUAL ex » 4 août 2017, 12:53

Capture d’écran 2017-08-04 à 12.51.30.png
visualisation BC - capture écran
Capture d’écran 2017-08-04 à 12.51.30.png
visualisation BC - capture écran
Bonjour,

Je traite des BC & BL via Excel :

Ma mise en page et la présentation des Bon de Commande est faite.
Au milieu se trouve un tableau dans lequel je dois faire apparaitre par ligne :
La référence du produit commandé, sa quantité, son prix, etc.
Une référence = une ligne.

Problème : quand j'arrive en bout de tableau. Je dois générer un nouveau BL ou BC...

Je cherche donc l'astuce pour que, une fois le nombre de lignes dépassées (32 pour mon exemple), Excel génère une nouvelle feuille/page à la présentation identique et insère le reste des lignes à l'endroit voulu... Avec une numérotation de page active serait génial !

Pouvez vous me rediriger ou prendre le temps de m'expliquer pour une solution possible.
En vous remerciant par avance.
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 5'872
Appréciations reçues : 75
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2004, 2011

Message par Dan » 4 août 2017, 13:30

Bonjour

:joindre:
Problème : quand j'arrive en bout de tableau. Je dois générer un nouveau BL ou BC...
Sur la même feuille ?

Cordialement
1 membre du forum aime ce message.
@+ Dan ;)
D
DUAL ex
Membre habitué
Membre habitué
Messages : 70
Inscrit le : 4 août 2017
Version d'Excel : 2010

Message par DUAL ex » 4 août 2017, 13:47

Bonjour Dan,

Merci de prendre le temps.

Sur la même feuille ? oui - ou si il existe une autre méthode je suis preneur.

Admettons que j'ai une commande avec 34 réf.(le tableau ne présente que 32 lignes)

Soit j'étire mon tableau mais dans ce cas cela imprimera la page (ou enregistrera le pdf) sur deux pages avec l'entête sur la première et le pied sur la deuxième. Pas cool. il existe bien la réduction d'échelle mais il me faut des formats BC et BL standards.

Soit je clic sur nouvelle saisie, ce qui efface les saisies du tableau, puis je génère un nouveau BC. Ce n'est pas optimisé comme solution.

Comme demandé je te joins le fichier.

Crdt,
BC-BL V2.0.xlsm
(264.75 Kio) Téléchargé 24 fois
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 5'872
Appréciations reçues : 75
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2004, 2011

Message par Dan » 7 août 2017, 08:25

Re

Vous voulez faire cela de manière automatique ou via un bouton placé sur la feuille ? La deuxième solution serait la plus efficace et la plus simple mais cela oblige à cliquer sur le bouton pour générer la nouvelle page une fois arrivé à la ligne 32

Cordialement
1 membre du forum aime ce message.
@+ Dan ;)
D
DUAL ex
Membre habitué
Membre habitué
Messages : 70
Inscrit le : 4 août 2017
Version d'Excel : 2010

Message par DUAL ex » 7 août 2017, 09:06

Bonjour Dan,

Peu importe la solution, passer par un bouton ne dérange en aucun cas. Ce n'est pas dérangeant car la feuille est un formulaire de saisie ligne par ligne... Je mets le bouton à la fin.
C'est du VBA ?

Je n'ai toujours pas trouver comment faire !


Merci pour votre retour Dan.

Alex.
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 5'872
Appréciations reçues : 75
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2004, 2011

Message par Dan » 7 août 2017, 12:50

Re

Essayez ce code que vous associez à un bouton sur votre feuille
Sub nouvellepage()
Dim lig As Integer
lig = Cells.Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 2
Range("A1:L" & lig - 1).Copy Range("A" & lig)
lig = lig + 18
Range("B" & lig & ":D" & lig + 31).ClearContents
Range("E" & lig & ":I" & lig + 31).ClearContents
Range("J" & lig & ":K" & lig + 31).ClearContents
ActiveSheet.PageSetup.PrintArea = "$A$1:$L$" & lig + 40
End Sub
Juste une chose, certaines colonnes sont fusionnées et cela ne me semble pas utile. (colonne C, D et H). évitez les fusions au max si vous devez utiliser VBA. Cela finit toujours par provoquer des soucis dans les codes

Cordialement
1 membre du forum aime ce message.
@+ Dan ;)
D
DUAL ex
Membre habitué
Membre habitué
Messages : 70
Inscrit le : 4 août 2017
Version d'Excel : 2010

Message par DUAL ex » 7 août 2017, 23:12

V2.1 - Saisies des BC-BL.xlsm
(319.2 Kio) Téléchargé 18 fois
Super Dan,

Je note pour le conseil des cellules fusionnées !

Encore merci, j'ai bien essayé votre code et il fonctionne très bien : il copie entièrement la page et la recopie aux dimensions exacts pour les colonnes !!! :D :D :D

En revanche, serait-il possible de faire de même pour les lignes. Le code reproduit le même nombre de ligne mais avec la même hauteur pour toutes : Hauteur = 15.

Enfin, la colonne "Désignation" est une rechercheV de la page PAR. Je vous laisse le dossier plus complet pour voir.
Est-il possible lors de la recopie qu'il copie aussi les fonction dans les cellules, et les formats des cellules ?
(ex : tapez de "1" à "230" dans une case référence, le format mettra automatiquement le format code produit "PAR000")

Encore super pour votre retour et votre patience.

Alex.
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 5'872
Appréciations reçues : 75
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2004, 2011

Message par Dan » 8 août 2017, 08:18

Re

Remplacez le code par celui-ci
Sub nouvellepage()
Dim lig As Integer
lig = Cells.Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 2
Rows("1:" & lig - 1).Copy Range("A" & lig)
lig = lig + 18
Range("B" & lig & ":D" & lig + 31).ClearContents
Range("J" & lig & ":K" & lig + 31).ClearContents
ActiveSheet.PageSetup.PrintArea = "$A$1:$L$" & lig + 40
End Sub
Encore une chose à penser c'est au niveau des boutons, à chaque copie les boutons seront aussi copiés. Pourquoi ne pas les placer ailleurs éventuellement. En dehors de la feuille à imprimer par exemple.

Un détail, vous êtes sous excel MAC ?

Cordialement
1 membre du forum aime ce message.
@+ Dan ;)
D
DUAL ex
Membre habitué
Membre habitué
Messages : 70
Inscrit le : 4 août 2017
Version d'Excel : 2010

Message par DUAL ex » 8 août 2017, 19:44

Hello Dan,

Génial, ton code fonctionne à la perfection... Je vais clore le sujet :

:btres:

Il me reste juste un petit souci et si tu peux prendre le temps ce serai génial :

J'ai ajouté un code de suppression des ligne ajoutées lors d'une nouvelle saisie.
Cf. VBA "suppression" associé au bouton "Nouvelle saisie".
Je te joins le nouveau fichier à jours, tu n'as plus qu'à activer le bouton "nouvelle saisie" pour avoir un aperçu...

Le logo "image" de la société ne se supprime pas avec les lignes.
Comment faire ? aurais tu une solution ?

Merci encore !! :D :D :D

PS: je prends à nouveau note des conseils pour le positionnement des boutons.

Alex.

Re...


Oui je suis sous Excel 2011 ( MAC).

Cdt,

Alex
V2.2 - Saisies des BC-BL.xlsm
(327.47 Kio) Téléchargé 20 fois
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 5'872
Appréciations reçues : 75
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2004, 2011

Message par Dan » 9 août 2017, 08:23

Re

Pour le code de suppression associé à Nouvelle Saisie, voici un petit correctif :
Sub Suppression()
' Suppression Macro
With ActiveSheet
    .Rows("60:800").Delete Shift:=xlUp
    .Range("F13,F15,J15,J19:J50,C19:D50,C54:F56").ClearContents
    .Range("J4") = .Range("J4") + 1
End With
End Sub
Je vais regarder pour les images.

En relisant les codes, mon petit conseil (si tu me permets...), évite de mettre des accents dans le nom de tes feuilles et dans les commentaires de codes. Excel MAC te renvoie toujours des lettres erronées (ex : é = Ž) ou des espaces vides qui rendent parfois la lecture difficile et parfois peuvent te poser des problèmes dans l'exécution du code voire si tu devais porter cette appli sous excel Windows.

Amicalement
1 membre du forum aime ce message.
@+ Dan ;)
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message