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

Re

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.

Dans la Sub effaceimage, essaie en remplaçant tous les SHAPES par "Drawingobjects"

Si cela ne fonctionne toujours pas, fais ceci :

Dans la sub Suppression --> Supprime la ligne Call effaceimage

Dans la sub Effaceimage --> Ajout une ligne Call Suppression juste avant le END SUB

Dans ce cas, il faudra exécuter la macro Effaceimage en premier plutôt que la macro Suppression

Cordialement

Super,

Le code pour "nouvelle page" fonctionne. en revanche toujours ce problème d'image non supprimées lorsque je génère au delà de trois pages puis click sur "Nouvelle saisie".

Comme tu me l'as demandé j'ai déplacé le code "nouvelle page" sur le module 1.

Je vais essayer d'être clair et concis :

imagine j'arrives en bout de page (la page 1) pour mes saisies : je click alors sur "nouvelle page" (et je créer un page 2). En revanche, sur la Feuil BL, il faudrait que ça fasse la même chose (création d'une page 2). Ansi les nouvelles données saisies sur page 2 de Bon de Commande seront retranscrites sur page 2 de Bon de Livraison. Dis moi si je suis pas clair.

Je vais me lancer et essayer de dupliquer ton code "nouvelle page" en mettant active.sheet "Bon de Livraison" puis ton code... tous cela sur le même bouton de commande.

Pour finir, additionné le coût des articles page 1 et page 2 (sachant que la page 2 (et >2) ne seront pas tout le temps existantes)...

Voila.

Au plaisir de te lire.

Alex.

Bonsoir

Le code pour "nouvelle page" fonctionne. en revanche toujours ce problème d'image non supprimées lorsque je génère au delà de trois pages puis click sur "Nouvelle saisie".

As-tu bien les deux codes ci-dessous pour la suppression lignes et images ? Cela fonctionne chez moi (excel MAC 2011)

Sub Suppression()
' Suppression Macro
ActiveSheet.Unprotect
Call effaceimage
With ActiveSheet
    .Rows("62:800").Delete Shift:=xlUp
    Range("E14,E16,H16:J16,C21:C54,H21:H54,C57:D57").Select
    Selection.ClearContents
    Range("G4") = .Range("G4") + 1
    Range("E14").Select
End With
ActiveSheet.Protect
End Sub

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

Je vais essayer d'être clair et concis :imagine j'arrives en bout de page (la page 1) pour mes saisies ....

Remplace le code Nouvelle page par celui-ci

Sub nouvellepage()
Dim lig As Integer
Dim i As Byte
For i = 1 To 2
    With Sheets(i)
        .Unprotect
        lig = .Cells.Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 2
        .Rows("1:61").Copy .Range("A" & lig)
        lig = lig + 20
        .Range("C" & lig & ":C" & lig + 33).ClearContents
        .Range("H" & lig & ":H" & lig + 33).ClearContents
        .PageSetup.PrintArea = "$A$1:$K$" & lig + 40
        .Protect
    End With
Next i
End Sub

Attention que cela suppose que bon de commande et bon de livraison sont les deux premiers onglets et qu'ils ne sont pas placés ailleurs. Si cela peut être le cas dis moi car le code doit changer.

Cordialement

Super Dan,

Le code "Nouvelle Page" fonctionne correctement.

Et je comprends ce que tu veux dire pour la place des Feuilles :

For i = 1 To 2 'ici selection des Feuilles 1 et 2. Attention, la selection ce fait dans l'ordre d'arrivée des Feuille

Maintenant j'essais de modifier le code "nouvelle saisie" (=suppression) de la façon suivante :

Sub Suppression()
''''''''''''''''''''''''''''''''''''''
'Suppression des données saisies pour laisser place à une nouvelle saisie
''''''''''''''''''''''''''''''''''''''
Sheets("Bon de Livraison").Select
   .Unprotect 'Retire la protection de la feuille
Call effaceimage 'Appel le code pour effacer les images logo
    .Rows("62:800").Delete Shift:=xlUp 'Supprime le lignes de 62 à 800
.Protect 'Protège la feuille en cours

Sheets("Bon de Commande").Select
.Unprotect 'Retire la protection de la feuille
Call effaceimage 'Appel le code pour effacer les images logo
    .Rows("62:800").Delete Shift:=xlUp 'Supprime le lignes de 62 à 800
    Range("E14,E16,H16:J16,C21:C54,H21:H54,C57:D57").Select
    Selection.ClearContents 'Efface le contenu des cellules sélectionnées
    Range("G4") = .Range("G4") + 1 'Ajoute 1 pour les prochain N° de BL
    Range("E14").Select 'Place le curseur en cellule E14
ActiveSheet.Protect 'Protège la feuille en cours

End Sub

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

Mais j'ai quelques petits soucis.

Merci encore pour tes efforts.

Alex.

Re

For i = 1 To 2 'ici selection des Feuilles 1 et 2. Attention, la selection ce fait dans l'ordre d'arrivée des Feuille

je n'ai pas compris...

Ce qu'il faut c'est la premiere feuille du fichier soit Bon de commande et la deuxième Bon de livraison. Si on les déplace à la fin du fichier après client par exemple, le code va copier la feuille client au lieu de bon de commande

Quels soucis as-tu avec le code ?

Re,

Je disais que j'avais bien pris en note ton commentaire sur la place des onglets. De toute façon, je vais créer à la fin, une interface avec des liens hypertextes pour aller d'onglet en onglet, qui feront que je pourrais cacher les onglets. Et l'ordre sera respecté.

Pour le code "Nouvelle saisie" :

Je cherche à ce que la feuille Bon de Livraison subisse le même sort que la feuille Bon de Commande :

ActiveSheet.Unprotect 'Retire la protection de la feuille

Call effaceimage 'Appel le code pour effacer les images logo

With ActiveSheet 'Applique le code sur la feuille en cours

.Rows("62:800").Delete Shift:=xlUp 'Supprime le lignes de 62 à 800

EXCEPTé ce bout de code

Range("E14,E16,H16:J16,C21:C54,H21:H54,C57:D57").Select

Selection.ClearContents 'Efface les cellules sélectionnées

Range("G4") = .Range("G4") + 1 'Ajoute 1 pour les prochain N° de BL

Range("E14").Select

Car dans ces cellules, sur la page BL j'ai des formules et je ne veut pas les effacer.

Et il n'y à pas besoin de sélectionner E14 sur BL ni de faire n+1 en G4

du coup j'essaie de passer d'une feuille à l'autre en passant par ActiveSheet.("BL").Select mais le code plante derrière.

Merciiiii

Alex.

re

Pour le code "Nouvelle saisie" :

Je cherche à ce que la feuille Bon de Livraison subisse le même sort que la feuille Bon de Commande :

Nouvelle saisie ou suppression ??

ce que tu veux c'est créer une nouvelle page Bon de commande et bon de livraison mais tu n'efface pas la colonne C et H dans bon de livraison vu qu'il y a des formules ??

Re,

Supprimer les lignes de 62 à 800 sur la feuille Bon de Livraison.

Pour laisser la place à une nouvelle saisie.

Alex.


... Et oui. ne pas supprimer les colonnes C et H pour ne pas supprimer les formules. Exactement.

Merci Dan

Re

Pour la nouvelle saisie, remplace le code par celui ci-dessous

Sub nouvellepage()
Dim lig As Integer
Dim i As Byte
For i = 1 To 2
    With Sheets(i)
        .Unprotect
        lig = .Cells.Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 2
        .Rows("1:61").Copy .Range("A" & lig)
        lig = lig + 20
        If i = 1 Then
            .Range("C" & lig & ":C" & lig + 33).ClearContents
            .Range("H" & lig & ":H" & lig + 33).ClearContents
        End If
            .PageSetup.PrintArea = "$A$1:$K$" & lig + 40
        .Protect
    End With
Next i
End Sub

Je vois pour la suppression

Salut Dan,

Encore mille fois merci. Ton code fonctionne à la perfection et je me suis servi de la trame pour l'appliquer au code suppression géré par le bouton "Nouvelle Saisie".

Voici ce que j'ai fais :

Sub Suppression()

''''''''''''''''''''''''''''''''''''''

'Suppression des données saisies pour laisser place à une nouvelle saisie

''''''''''''''''''''''''''''''''''''''

Dim lig As Integer

Dim i As Byte

For i = 1 To 2 'Sélectionne les deux premier onglets

With Sheets(i) 'avec ces onglets selectionnés :

.Unprotect 'Ôte la protection

Call effaceimage 'Appel le code pour effacer les images logo

.Rows("62:800").Delete Shift:=xlUp 'Supprime le lignes de 62 à 800

If i = 1 Then

Range("E14,E16,H16:J16,C21:C54,H21:H54,C57:D57").Select

Selection.ClearContents 'Efface les cellules sélectionnées

Range("G4") = .Range("G4") + 1 'Ajoute 1 pour les prochain N° de BL

Range("E14").Select

End If

.Protect 'Protège les onglets

End With

Next i

End Sub

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

Par contre le effeaceimage ne s'applique pas sur BL.

Si tu vois une erreur de compilation ou si tu sens qu'il peut être compressé, je suis preneur.

Encore MERCI.

Cordialement,

alex.


Je te mets le code en présentation VBA car dans le msg précédent ce n'est pas trop lisible (je ne sais pas comment faire)

code supp

Re

Essaie avec ces deux codes. Le bouton doit pointer sur les macros Suppression.

Sub Suppression()
Dim sh As String
''''''''''''''''''''''''''''''''''''''
'Suppression des données saisies pour laisser place à une nouvelle saisie

''''''''''''''''''''''''''''''''''''''
With Sheets("Bon de Livraison")
    .Unprotect 'Retire la protection de la feuille
    sh = .Name
    effaceimage sh ', sh 'Appel le code pour effacer les images logo
    .Rows("62:800").Delete Shift:=xlUp 'Supprime le lignes de 62 à 800
    .Protect 'Protège la feuille en cours
End With

With Sheets("Bon de Commande")
    .Unprotect 'Retire la protection de la feuille
    sh = .Name
    effaceimage sh 'BC, BC 'Appel le code pour effacer les images logo
    .Rows("62:800").Delete Shift:=xlUp 'Supprime le lignes de 62 à 800
    .Range("E14,E16,H16:J16,C21:C54,H21:H54,C57:D57").ClearContents 'Efface le contenu des cellules sélectionnées
    .Range("G4") = .Range("G4") + 1 'Ajoute 1 pour les prochain N° de BL
    .Range("E14").Select 'Place le curseur en cellule E14
    .Protect 'Protège la feuille en cours
End With
End Sub

Sub effaceimage(sh)
Dim img As Byte
On Error Resume Next
If sh = "Bon de Livraison" Then img = 2 Else img = 4
With Sheets(sh)
    For i = img To .Shapes.Count
        .Shapes(i).Delete
    Next i
End With
End Sub

Je te mets le code en présentation VBA car dans le msg précédent ce n'est pas trop lisible ...

Pour rendre le code visible, sélectionne le code puis utilise les balises en cliquant sur le bouton CODE au dessus.

Cordialement

Salut Dan,

Je suis de retour et jspr que tu vas bien.

Pour continuer dans ce projet je n'arrive pas à adapter ce code au fichier. Je voudrais, lors du click bouton "nouvelle page" générer une nouvelle page identique au dessous.

voici le code que je n'arrive pas à adapter :

Private Sub NOUVELLEPAGE_Click()
Dim lig As Integer

    With Sheets("MACBC")
        .Unprotect
        lig = .Cells.Find("*", Lookln:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 2
        .Row("1:55").Copy.Range ("A" & lig)
        lig = lig + 23

            .Range("C" & lig & ":C" & lig + 33).ClearContents
            .Range("I" & lig & ":I" & lig + 33).ClearContents

            .PageSetup.PrintAre = "$A$1:$K$" & lig + 40
            .Protect
        End With

End Sub

Je te joins une capture image pour visualiser la présentation.

Merci pour ton aide.

Bonne journée,

Alex

nouvelle page

Hello Dan,

Je ne sais pas si tu reçois bien mes MP alors voici le dernier fichier en cours suite à mon absence. Je te tenais informé que celui ci à été construit depuis Windows 7 et que je suis passé par des contrôles actives X et non pas des contrôles de formulaire.

Est-ce optimal comme procédé ? Perso je trouve que ça classe mieux mes CODES VBA (par feuille) et j'ai plus de facilité à m'y retrouver quand je remets les mains dans le cambouis ^^.

pour le travail en cours : je n'arrive pas à adapter le code NOUVELLE PAGE au format de la page MACBC

Private Sub NOUVELLEPAGE_Click()
Dim lig As Integer

    With Sheets("MACBC")
        .Unprotect
        lig = .Cells.Find("*", Lookln:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 2
        .Row("1:55").Copy.Range ("A" & lig)
        lig = lig + 23

            .Range("C" & lig & ":C" & lig + 33).ClearContents
            .Range("I" & lig & ":I" & lig + 33).ClearContents

            .PageSetup.PrintAre = "$A$1:$K$" & lig + 40
            .Protect
        End With

End Sub

Je te joins le fichier qu'il à fallu que je sabre pour diminuer la taille. Mais l'essentiel est dedans.

Encore merci.

Alex.

Re

J'ai retenu que tu étais sous MAC donc là surtout ne pas utiliser les activesX qui ne fonctionnent pas sur MAC ... donc c'est pas une bonne idée du tout.

Est-ce optimal comme procédé ? Perso je trouve que ça classe mieux mes CODES VBA (par feuille) et j'ai plus de facilité à m'y retrouver quand je remets les mains dans le cambouis ^^.

A ne pas faire non plus. Ce n'est pas une bonne idée car si par hasard tu supprimes une feuille tu perds tout tandis que dans un module les macros peuvent servir pour tout le fichier et tu ne les perds que si tu supprimes le fichier....

De plus si tu dupliques des feuilles et que tu as des codes dedans, tu vas avoir autant de codes que de feuilles alors qu'un simple code dans un module peut être utilisé pour toutes tes feuilles. ... là le poids du fichier va augmenter et cela complique si tu dois changer quelque chose dans un code..... faudra le changer dans tous les codes qui ont la même action dans les feuilles concernées.

pour le travail en cours : je n'arrive pas à adapter le code NOUVELLE PAGE au format de la page MACBC

Vois le code ci-dessous

Private Sub NOUVELLEPAGE_Click()
Dim lig As Integer

With Sheets("MACBC")
    .Unprotect
    lig = .Cells.Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 2
    .Rows("1:55").Copy .Range("A" & lig)
    lig = lig + 23
    .Range("C" & lig & ":C" & lig + 22).Clear
    .Range("I" & lig & ":I" & lig + 22).Clear

    .PageSetup.PrintArea = "$A$1:$K$" & lig + 40
    .Protect
End With
End Sub

Si tu le replaces dans un module, modifie la première ligne comme ceci --> Private Sub NOUVELLEPAGE() et ensuite réassocier le code à un bouton.

Super Dan,

Au final j'y étais presque... à croire que j'ai fais exprès de ne pas trouver

J'ai tout de même apporté ma petite touche au code : j'ai rallongé la copie jusqu'à la colonne L.

Toutefois, au bout de 3 ajouts de feuille, j'ai le haut d'une feuille qui se copie et me donne, lors de l'impression 4 feuille au lieu de trois. Surement un petit réglage.

Maintenant je suis sur la partie "NOUVELLE SAISIE" : je veux donc supprimer les pages supplémentaires que je viens de créer pour laisser place à une nouvelle saisie.

Peux-tu encore, stp, vérifier mon code ci dessous : il fonctionne très bien mis à part la partie "CALL EFFACEIMG" que je ne sais pas à quelle moment l'appeler.

Est il optimisé ?

De plus, sur ton code tu avais intégré des variantes i = 1 To 2 qui indique les onglets en position 1 et 2.

Etait-ce important ? j'ai sabrer cette partie que, j'avoue, je ne maîtrise pas trop.

Private Sub EFFACE_Click()
'VALIDATION DE VOTRE CHOIX AVANT SUPPRESSION
    If MsgBox("Voulez-vous supprimer les données saisies ?", 36, "Continuer ?") = vbYes Then

'Code à exécuter si OUI
ActiveSheet.Unprotect 'ote la protection

 Range("C24:C47,I24:I47,E14,E16,H16,E19,C50").Select 'efface les données saisies au préalable (code MAC et quantités)
    Selection.ClearContents
ActiveSheet.Rows("54:800").Delete Shift:=xlUp 'Supprime le lignes de 54 à 800

'Change de feuille
Sheets("NUMEROBON").Select
Sheets("NUMEROBON").Range("E6").Select
    Sheets("NUMEROBON").Range("E6") = Sheets("NUMEROBON").Range("E6") + 1 ' Ajoute +1 au bon de commande

'Change de feuille
Sheets("MACBC").Select
Sheets("MACBC").Range("E14").Select

ActiveSheet.Protect 'protège la feuille

    End If
End Sub

''''''''''''''''''''''''''''''''''''''
'voici le VBA que tu m'avais écrit pour la dernière version du programme
''''''''''''''''''''''''''''''''''''''
'Dim lig As Integer
'Dim i As Byte
'For i = 1 To 2 'Sélectionne les deux premier onglets
'    With Sheets(i) 'avec ces onglets selectionnés :
'        .Unprotect 'ote la protection

'Il faudra que j'adapte de nouveau ce code efface image
'Call effaceimage 'Appel le code pour effacer les images logo
'    .Rows("54:800").Delete Shift:=xlUp 'Supprime le lignes de 54 à 800

'If i = 1 Then
'    Range("E14,E16,H16:J16,C21:C54,H21:H54,C57:D57").Select
'    Selection.ClearContents 'Efface les cellules sélectionnées
'    Range("G4") = .Range("G4") + 1 'Ajoute 1 pour les prochain N° de BL
'    Range("E14").Select
'End If

'        .Protect 'Protge les onglets
'    End With
'Next i

Re,

Toutefois, au bout de 3 ajouts de feuille, j'ai le haut d'une feuille qui se copie et me donne, lors de l'impression 4 feuille au lieu de trois. Surement un petit réglage.

Il faudrait que j'ai le dernier fichier pour analyser

Peux-tu encore, stp, vérifier mon code ci dessous : il fonctionne très bien mis à part la partie "CALL EFFACEIMG" que je ne sais pas à quelle moment l'appeler.

Code à essayer

Private Sub EFFACE_Click()
'VALIDATION DE VOTRE CHOIX AVANT SUPPRESSION
    If MsgBox("Voulez-vous supprimer les données saisies ?", 36, "Continuer ?") = vbYes Then

    'Code à exécuter si OUI
    With ActiveSheet
        .Unprotect 'ote la protection
        'efface les données saisies au préalable (code MAC et quantités)
        .Range("C24:C47,I24:I47,E14,E16,H16:J16,E19:J19,C50:E50").Clear
        .Rows("54:800").Delete Shift:=xlUp 'Supprime le lignes de 54 à 800
        .Protect 'protège la feuille
    End With

    'Change de feuille
    Sheets("NUMEROBON").Range("E6") = Sheets("NUMEROBON").Range("E6") + 1 ' Ajoute +1 au bon de commande
    'Change de feuille
    Sheets("MACBC").Select
End If
End Sub

Au vu de ton code le For i = 1 to 2 n'a plus de raison d'être, je pense

Oublie pas de replacer dans un module...

Comme d'hab, le code fonctionne. Great !!!

Comme tu l'a demandé, j'ai tout mis sous des modules, créer des formes que j'ai associé aux macros. OK.

J'ai sabré le fichier pour qu'il soit < à 300 Mo.

J'ai laissé les 2 macros sur lesquelles je travail :

"NOUVELLE PAGE", le problème : dès l'ajout d'une page quand je fais enregistrement pdf ou impression, il sort trois page. La troisième étant vierge.

De la même façon, dès la troisième page ajoutée, un bout de haut de page s'insert.

Peux tu me dire d'où ça vient please.

"NOUVELLE SAISIE" : cette macro appelle la macro "EFFACEIMAGE" mais cette dernière ne supprime pas les images ajoutées !!!

de plus, lors de la suppression des données, la macro supprime TOUTES les mises en pages des cellule sélectionnées ! plus de cellule fusionnées, plus de liste déroulante ou de mise en forme conditionnelle !!! WTF ??

Enfin, tu pourra voir que j'ai mis une DATAbase de plus. Il y en aura beaucoup d'autre.

La question est la suivante : (je vais essayer d'être synthétique)

Depuis la feuille de saisie des données... (MACBC)

comment appeler les produits avec leurs codes sachant que :

- J'ai un tableau par fournisseur (chaque tableau doit être évolutif et il est nécessaire que ce soit des tableaux séparés)

(Tous les tableaux ont les même colonnes.)

à la base je voulais créer autant de fiche de saisie que j'avais de base de données fournisseur. Mais le fichier aurais pesé 3 tonnes !

Je pensais à ouvrir une autre feuille qui aura pour but d'additionner tous les tableau en un seul.

J'ai cru voir que c'était possible sur un tuto.

ainsi les RECHERCHEV irons chercher la réforme taper dans cette nouvelle feuille... Qu'en penses tu ?

Merci pour ton aide Dan...

Alex.

Re

"NOUVELLE PAGE", le problème ....

Dans le code, remplace le 40 par 29 dans cette ligne

.PageSetup.PrintArea = "$A$1:$L$" & lig + 40

Je vois pour le reste. Mais de base toujours éviter les cellules fusionnées. Cela met toujours le souc à un moment ou un autre avec le code VBA. Comme de plus ici on essaie de faire fonctionner sous Windows et sous MAC, il y a parfois quelques particularités

Depuis la feuille de saisie des données... (MACBC)

comment appeler les produits avec leurs codes sachant que :

C'est peut être une bete question mais pourquoi tu ne mets pas le nom du fournisseur dans une cellule de la feuille MACBC ou alors utiliser la ref des trois premières lettres du fournisseur dans le "code" utilisé en colonne C (MAC001 au lieu de 1 ?). La première solution me semble la meilleure mais à toi de me dire. Je suppose que tu utilises toujours la même feuille MACBC pour tous les fournisseurs et que chaque MACBC ne concerne qu'un fournisseur ?

Hello Dan,

Super ça fonctionne. (au bout de la deuxième feuille ajoutées j'ai tout de même le haut d'une autre page, mais cela n'apparait pas lors de l'enregistrement pdf.)

Pour le fait que cela supprime mes mise en page, j'ai trouvé l'erreur : dans le code il y avait écrit Clear

alors qu'il fallait écrire ClearContents.

Et ça fonctionne.

Reste plus qu'à supprimer l'image qui traine après la suppression.

Le nom du fournisseur y sera (après le numéro de bon en haut).

De plus je ne vais pas avoir le choix que de taper la ref entièrement dans code pour appeler la référence... en tapant 1 pour avoir MA001 je voulais faciliter la tache de la personne en charge de la saisie des commandes.

J'attends ton retour pour EFFACEIMAGE.

Merci,

Alex.

Re

Ok pour le Clearcontents, je l'avais changé en Clear car j'avais quelques soucis sous MAC. Mais là cela fonctionne...

Le nom du fournisseur y sera (après le numéro de bon en haut).

De plus je ne vais pas avoir le choix que de taper la ref entièrement dans code pour appeler la référence... en tapant 1 pour avoir MA001 je voulais faciliter la tache de la personne en charge de la saisie des commandes.

Si je considère les points suivants :

  • Chaque fournisseur est identifié par 3 lettres (MAC, MEM, ...)
  • Les feuilles de base de données sont identifiées comme ceci --> MACDATA, MEMDATA

Voici ce que tu peux faire:

  • En I4, tu mets --> .MAC ou .MEM (Bizarre ce point devant, tu aurais pu mettre sans le point..)
  • Dans tes formules RECHERCHEV à boite remplace MACDATA!$A$2:$Q$279 par --> INDIRECT(DROITE($I$4;3)&"DATA" & "!$A$2:$Q$279")
  • Tu recopies cette formule jusque la ligne 46

Comme cela dans la colonne Code, tu mets uniquement le chiffre sans MAC ou MEM

Je dois regarder pour les images car le code ne fonctionne pas très bien sachant que l'on doit laisser la première image au dessus

Amicalement

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