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 : 85
Inscrit le : 4 août 2017
Version d'Excel : 2016

Message par DUAL ex » 9 août 2017, 10:08

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.

Effectivement, quand j'ai transférer le fichier pour exploitation sous windows, il à fallu que je modifie mes codes sur certains points, notamment comme tu dis les accent et le "°" de N° qui ne passe pas...

De même il faut aussi que j'interviennes sur les formats des cellules ou la taille de la fenêtre : sur mon écran je vois les 3/4 de la feuille quand je suis à 100% alors que sous Windows, je vois à peine la moitié...

Dans tous les cas, encore merci pour votre mis à profit de vos compétences !

J'attends votre retour pour l'image.

Amicalement,

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

Message par Dan » 9 août 2017, 13:02

Re
De même il faut aussi que j'interviennes sur les formats des cellules ou la taille de la fenêtre : sur mon écran je vois les 3/4 de la feuille quand je suis à 100% alors que sous Windows, je vois à peine la moitié...
Oui c'est normal. C'est du à l'OS MAC qui a été crée sous UNIX. Si tu prends un programme quelconque fait sous cette plateform, ce sera la même chose. Mais tu peux régler le souci de manière automatique à l'ouverture du fichier en détectant si tu es sous MAC ou sous Windows.

Pour le code de suppression des images :
1. Dans le code "Suppression" : rajouter cette ligne juste avant le END SUB -->
Call effaceimage
2. Rajouter le code ci-dessous en dessous du code Suppression
Sub effaceimage()
Dim img As Byte
On Error Resume Next
For img = 5 To ActiveSheet.Shapes.Count
    ActiveSheet.Shapes(img).Delete
Next img
End Sub
Le chiffre 5 considère qu'il y a 5 images dans le tableau de base.

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

Message par DUAL ex » 9 août 2017, 14:57

TOP TOP TOP... Tout fonctionne à la perfection ! Good job Dan.


"Mais tu peux régler le souci de manière automatique à l'ouverture du fichier en détectant si tu es sous MAC ou sous Windows."

Comment fais-tu ??? :roll:

Encore merci pour le travail fourni.

Je cloture le topic.

Au plaisir pour d'autres astuces Excel ^^


Alex.
D
DUAL ex
Membre habitué
Membre habitué
Messages : 85
Inscrit le : 4 août 2017
Version d'Excel : 2016

Message par DUAL ex » 9 août 2017, 16:23

Petit pb du moment :

Une fois la feuille verrouillée et seulement quand la feuille est verrouillée , quand je veux faire "Nouvelle Page" cela me dit :
"microsoft visual basic 400".

Aurais-tu une astuce pour parler cela ?

Merci.

Amicalement,
Alex.
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'280
Appréciations reçues : 106
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2011

Message par Dan » 9 août 2017, 21:13

Re
Une fois la feuille verrouillée et seulement quand la feuille est verrouillée , quand je veux faire "Nouvelle Page" cela me dit :
"microsoft visual basic 400".
Dans le code "Nouvelle page", ajoute ceci au début -->
Activesheet.unprotect
En fin de code juste avant le End Sub, ajoute -->
Activesheet.protect
Faudra faire de même dans le code de suppression de ligne.

Cordialement
1 membre du forum aime ce message.
@+ Dan ;)
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'280
Appréciations reçues : 106
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2011

Message par Dan » 10 août 2017, 08:26

Re
"Mais tu peux régler le souci de manière automatique à l'ouverture du fichier en détectant si tu es sous MAC ou sous Windows." Comment fais-tu ???
Dans Thisworkbook, essaie en remplaçant le code Private Sub WorkBook_Open() par celui ci-après :
Private Sub WorkBook_Open()
Dim sh As Worksheet, setZoom As Long
Application.ScreenUpdating = False
    For Each sh In ThisWorkbook.Worksheets
        If Application.OperatingSystem Like "*Win*" Then
            setZoom = 100
        Else: setZoom = 125
        End If
        sh.Activate
        ActiveWindow.Zoom = setZoom
    Next sh
Application.ScreenUpdating = True
Sheets(1).Select
Sheets("Bon de Commande").Activate
Range("F13").Select
End Sub
Coridalement
1 membre du forum aime ce message.
@+ Dan ;)
D
DUAL ex
Membre habitué
Membre habitué
Messages : 85
Inscrit le : 4 août 2017
Version d'Excel : 2016

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

Hello Dan,

Merci pour tes réponses précédentes... ça fonctionne parfaitement.

Je vais faire des modifications de présentations (dé-fusionner les cellules qui ne servent à rien, mettre à part les boutons, enlever les caractères spéciaux dans les "msgbox", etc.), ajouter deux fois colonnes, adapter les codes, les doubler pour créer les BL en fonctions des BC...

Ca va me prendre un peu de temps puis je reviendrais surement vers toi pour deux trois petites choses que j'ai déjà en tête (Si tu le veux bien).
Ex : lors de la création d'une nouvelle page, j'ai une somme respective à chaque feuille("TOTAL UNITÉS").
Hors il me faudrait, pour bien faire, une somme totale de toutes les pages en bas de chaque page. Mais comment créer une somme de cellules potentiellement existante ou non ?

Aller hop, je me mets au travail et je reviens vers toi.

Encore merci pour ta disponibilité Dan.

Bonne journée.

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

Message par Dan » 10 août 2017, 13:07

Re

Pas besoin de doubler les codes, il suffit de dire sur quelle feuille on se trouve lorsque l'on génère une nouvelle page

Pour la somme des totaux, il suffit de créer une variable qui reprend le total.

Fais d'abord le fichier, on adaptera le(s) code(s) en fonction

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

Message par DUAL ex » 26 août 2017, 13:31

HELLO Dan,

I'm Back... en forme et avec du travail :D

Alors voila, j'ai repris le dossier, ajouté ce dont j'avais besoin en supplément puis apporté toutes les modifications qui découlaient du "changement / déplacement" de cellules dans les codes, plus deux que tu m'avais conseillé. (éviter les cellules fusionnées inutiles, etc.) Mis à part le fais de mettre les boutons en dehors de la page car peut importe où je les place, ils se dupliquent quand même (Pb mineur qui ne m'empêche pas de travailler).

Rentrons dans le vif du sujet. J'ai rédigé ça par étapes que voici :

Code pour bouton "Nouvelle Page" :
Fonctionne pour une deuxième page. Au delà, si je clique pour une troisième, il va doubler l’existant : soit 4 pages au final. Puis 8, puis 16, etc.

Code pour "Efface image" :
Suite à ça, quand je fais « nouvelle saisie », il y a beaucoup trop d’images (1 logo Entreprise généré par page), la suppression ne les efface pas toutes.

Code pour bouton "Nouvelle page" :
Le code fonctionne pour l’onglet Bon de Commande, comment faire pour que l’onglet Bon de Livraison suive la même démarche car ces deux documents, à la présentation un peu différente, doivent présenter les mêmes informations.

Code VBA ou Formule ? Total et sous-total :
Pour le sous total : pas de souci. C’est une somme, des quantités et des tarifs, fonction de la page.
Par contre le TOTAL doit être une somme de l’ensemble du document, et ça sur la première page ainsi que les futurs pages pour le moment inexistantes !! :roll: :roll: :roll:

RECHERCHEV dans une Feuil :
Pour des raisons pratiques, j’ai classé un fournisseur par Feuil.
Pour le moment, ma RECHERCEV va dans la Feuil demandé dans la formule.
SIERREUR(RECHERCHEV(C23;PAR!$A$2:$O$300;4;FAUX);" ")

Soit je duplique les Feuilles de travail par fournisseur et c’est supra lourd, soit je passe par une astuce que je ne connais pas aujourd’hui. ::D ::D ::D

Voila,J'éspère que je ne t'en demande pas trop. Je te remercie par avance pour tout le travail fourni !!!!

Au plaisir de te lire
Ps : je te joins le fichier (vierge de ses données) pour avoir un aperçu.

Amicalement
Alex.
Fichier pour Dan.xlsm
(305.87 Kio) Téléchargé 25 fois
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'280
Appréciations reçues : 106
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2011

Message par Dan » 29 août 2017, 08:11

Re,
Code pour bouton "Nouvelle Page" :
Dans le code, remplace cette ligne -->Rows("1:" & lig - 1).Copy Range("A" & lig) par
Rows("1:61").Copy Range("A" & lig)
Code pour bouton "Nouvelle page" :
Le code fonctionne pour l’onglet Bon de Commande, comment faire pour que l’onglet Bon de Livraison
Ta macro Nouvellepage se trouve mal placée. Déplace là de la feuille Bon de Commande dans le Module1. Ensuite réassocie tes boutons Nouvelle à cette macro.
Par contre je ne vois pas de bouton sur la feuille Bon de lIvraison et suppose qu'il doit être ajouté.

Je reviens pour le reste si ok pour les deux points ci-dessus

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