Mise en place d'un gestionnaire de Bon de Livraison et Bon de Commande

Salut Dan,

Tu as très bien saisies l'objectif de la feuille de bon de commande et des données, enregistrées, dans les tableau appelés DATA.

A la lecture de ta solution j'ai juste envie de te dire : Tu es un génie !!! Je suis trop content de ta solution ! c'est exactement ce que je cherchais à faire !!

Du coup j'ai sauté sur le fichier puis entré la formule que tu m'as communiqué.

Une fois saisie ça affiche : #VALEUR.

j'essais de trouver d'où ça peut venir...

Indirect(droite($I$4;3) = à la cellule I4 je sélectionne, après un décalage de 3, ce qu'il y à sur la droite.

J'ai modifié la cellule I4

Avant : . MAC

maintenant : MAC (j'ai retiré le point et l'espace

Est ce que ça peut simplifié la formule ?

Super Dan,

Merci encore

Re

Ah oui dans mon post précédent j'ai omis de te dire que tu peux enlever l'espace entre le . et MAC et aussi le point. C'est mieux..

Mais que le point soit là ou non, cela ne change rien à la formule. Elle doit fonctionner

Indirect(droite($I$4;3) permet de récupérer les trois caractères MAC ou MEM

A noter que si tu voulais aussi ajouter le Mot MAC dans la colonne Code c'est aussi possible. Cela te donnerait MAC001, MAC010, ....Mais bon si le chiffre te convient c'est bon aussi.

Re,

Je crois que je viens de comprendre pourquoi j'ai un problème #valeur.

C'est que je dois mettre seulement les chiffres dans la colonne "code"... ????

Comment je fais si je veux avoir dans la colonne code "MAC002 ; MAC005 ; etc." ???

est ce que ça change la formule ?

alex.

Re

C'est que je dois mettre seulement les chiffres dans la colonne "code"... ????

Oui c'est ce que j'ai pu comprendre à la lecture de ton post avant.

Comment je fais si je veux avoir dans la colonne code "MAC002 ; MAC005 ; etc." ???

C'est possible par un code VBA qui le mettrait automatiquement. En mettant le chiffre dans la colonne Code, VBA pourrait te mettre automatique l'extension MAC ou MEM en plus

Donc si tu es sur un fournisseur MAC et que tu mets le chiffre 1, dans le cellule code tu auras MAC001.

est ce que ça change la formule ?

Oui cela changera en matière de référence pour aller pêcher les infos dans la feuille Data.

J'ai déjà préparer quelque chose à ce sujet sachant que je me doutais de ta demande. Dis moi si tu es intéressé ?

Salut Dan,

Génial, je suis intéressé par ce que tu as fait... Avec plaisir.

Merci.

Alex

Re

Voici le code :

Dim ok As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
Dim num as string
If ok Then Exit Sub
If Not Intersect(Target, Range("C:C")) Is Nothing Then
    ok = True
    If Target.Offset(0, 2).HasFormula Then
        Select Case Target
        Case Is < 10: num = "00"
        Case 10 To 99: num = "0"
        Case Is > 99
        End Select
        Target.Value = Right(Range("I4").Value, 3) & num & Target.Value
    End If
End If
ok = False
End Sub

Colle ce code dans la feuille MACBC (donc pas dans un module)

Il faut corriger tes formules dans les colonnes D, E, H et J et remplacer la colonne de recherche.

Exemple : la formule --> =SIERREUR(RECHERCHEV(C24;INDIRECT(DROITE($I$4;3)&"DATA" & "!$A$2:$Q$279");3;FAUX);" "). Le devient 2 --> =SIERREUR(RECHERCHEV(C24;INDIRECT(DROITE($I$4;3)&"DATA" & "!$A$2:$Q$279");2;FAUX);" ")

Idem pour les colonnes suivantes

Amicalement

Re,

Les formules fonctionnes ! Superbe.

J'ai inséré une liste déroulante en I4 pour choisir le fournisseur (MAC ou MEM).

Pour le code :

Je me suis permis d'écrire au début du code : Private sub CODE()

Y a til une différence entre Private sub et sub (tout court) ?

Donc avec le code quand je tape 1 il s'affiche parfaitement MAC001. C'est juste génial.

En revanche, quand je change de fournisseur, MEM, et que je tape 1 ça affiche toujours MAC001 au lieu de MEM001.

J'ai du mal faire qqch.

Encore mille fois merci pour ton implication,

Alex.

re

En revanche, quand je change de fournisseur, MEM, et que je tape 1 ça affiche toujours MAC001 au lieu de MEM001.

Ta feuille DATA est bien nommée MEMDATA ??

Pour le code :

Je me suis permis d'écrire au début du code : Private sub CODE()

Y a til une différence entre Private sub et sub (tout court) ?

Dans un module ?? Si oui, le fait de mettre Private te permet de ne plus voir le code dans le menu des macros Outils --> Macros (Sous Mac).

Re,

Oui, la feuille est bien notée MEMDATA.

Je te joins le fichier pour visualiser.

Et pour finir, peux tu jeter un oeil à ce code pour supprimer les logos ajoutés lors des ajouts de page ?

Sub EFFACEIMAGE()

' EFFACEIMAGE Macro
' SUPPRIME LES LOGOS DES PAGES AJOUTEES

Dim img As Byte
On Error Resume Next
For img = 5 To ActiveSheet.Shapes.Count
    ActiveSheet.Shapes(img).Delete
Next img

End Sub

Merci Dan,

Bon Week end

Alex


j'ai oublié de joindre le fichier, donc le voici :

26v4-1-dan.xlsm (280.01 Ko)

RE

Normal que cela ne fonctionne pas

Je ne sais pas ce que tu as fait mais regarde le début du code que je trouve dans ton fichier ????

Private Sub CODE()
Dim ok As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
If ok Then Exit Sub
....
..
End sub

Regarde le code que je t'ai donné dans mon post précédent et place le dans ton fichier. On ne doit trouver que celui là

Je vais voir pour les images

Re,

Oups... je modifie ça de suite.

Merci.


Ah oui... Je me souviens maintenant...

Une fois le code entré, dès que je rentre le chiffre 1 pour avoir MAC001, la case se remplie de

MAC MAC MAC MAC MAC MAC MAC MAC MAC MAC MAC MAC MAC MAC MAC MAC ...

jusqu'à ce qu'un pop-up me dise : plus de place dans la cellule.

Re

Une fois le code entré, dès que je rentre le chiffre 1 pour avoir MAC001, la case se remplie de

MAC MAC MAC MAC MAC MAC MAC MAC MAC MAC MAC MAC MAC MAC MAC MAC ...

Impossible cela. As-tu bien repris le code entier que j'ai mis le Ven Nov 24, 2017 10:27 pm et surtout tu ne dois avoir que celui-là dans ta feuille.

Amicalement

Effectivement Dan,

C'est bien une erreur de ma part.

Le code commence par DIM, et non pas par Sub. Au lieu de t'embêter une fois de plus j'ai pris la liberté d'ajouter

Sub CODE () (pensant qu'il y avait eu une erreur de COPIER/COLLER) au dessus... C'est ce qui fait que ça ne fonctionnait pas.

Et là tout fonctionne parfaitement.

Dsl pour mon erreur.

Petit problème après la saisie de donnée : ce code n'accepte pas que j'efface les cellules sélectionnées (C24:C46). Je te mets en PJ une capture d'écran.

Sais tu comment je pourrais courcicuiter ce bug ?

Encore merci à toi pour ton courage.

Alex.

bug

Re

Avant tout, ce n'est pas Dim nim as string (comme je le vois dans la vue) mais bien Dim num as string

ce code n'accepte pas que j'efface les cellules sélectionnées (C24:C46).

Essaie en modifiant cette ligne ->

If ok Then Exit Sub

par

If ok Or Target.Count > 1 Then Exit Sub

Amicalement

Très bien, J'ai tout rectifié et ça roule.

En revanche, La formule de rechercheV ne reconnait pas cette écriture...

Il ne trouve plus rien.

J'ai bien vérifié les liaisons entre les cellules et j'ai bien rectifié comme tu l'as dis la dernière fois (j'ai décollé la recherche d'une colonne : ";3;" devient ";2;")

Merci

formule

Re

Normal puisque l'on peche les infos depuis la colonne B.

Donc. en colonne D, il faut changer A par B --> =SIERREUR(RECHERCHEV(C24;INDIRECT(DROITE($I$4;3)&"DATA" & "!$B$2:$Q$279");2;FAUX);" ")

fais de même pour les autres formules à droite --> Changer A par B

Super, c'est fait et ça fonctionne...

Merci,

Alex

Re

Voici les modifications à faire dans les codes

1. Nouvelle Saisie

Dans le code Sub NOUVELLESAISIE(), mettre l'instruction Call EFFACEIMAGE juste en dessous de .unprotect

2. Effacement des logos. Utilise ce code

Sub EFFACEIMAGE()
Dim img As Object
    For Each img In ActiveSheet.Pictures
        If img.Name <> "Image 1" Then img.Delete
    Next
End Sub

Cela devrait fonctionner sous MAC aussi

Amicalement

Hello Dan,

Excellent, ça fonctionne et j'ai compris comment le code fonctionne !

Super.

Le projet touche à sa fin !

Je te l'ai souvent dit, mais je te le dit encore une fois, mille merci pour ton aide tout du long de ce projet !

MERCI pour ton implication.

Je remets tout en forme et je reviens vers toi pour te dire si tout est bien en place !!!

A bientôt. ^^

Alex.

Hello Dan,

Déjà de retour... il n'aura pas fallu attendre longtemps

Alors voilà, tous se joue sur les pages ajoutées :

En bas de pages j'ai une "somme totale (HT)" qui découle des saisies dans les lignes précédentes. Cf. Screenshoot.

Lorsque je crée une nouvelle page, cela refait la somme de la page et non la somme de la totalité des pages existantes.

Mais alors voila, comment créer une formule

Première page : K49=SOMME(K24:K46)

Deuxième page : K102=SOMME(K24:K46)+(K77:K99)

Troisième page : K155=SOMME(K24:K46)+(K77:K99)+(K130+K152)

etc.

pour des cellules (K102 / K155), qui n'existent pas encore ???

Et dans le même genre, saurais tu comment intégrer un numéro de page en fonction des pages intégrés ???

Merciiiiiii

Alex.

bas de page
Rechercher des sujets similaires à "mise place gestionnaire bon livraison commande"