Gestion de bordereaux avec VBA

Bonjour tout le monde !

Je me lance dans un nouveau projet et j’ai déjà besoin de votre aide ! Je me suis inspiré de ce que j’ai trouvé dans différents forums et j’ai essayé de « fusionner » le tout mais le résultat n’est pas satisfaisant…

Je vous détaille mon projet :

En fait je souhaite ouvrir un classeur EXCEL sur une feuille bien précise. Il s’agit de la feuille « Historique_BE ». Voici le code que j’ai inséré mais cela ne semble pas fonctionner :

Sub Auto_Open()

Sheets("Historique_BE").Activate

End Sub

Une fois sur cette feuille « Historique_BE », j’ai créé un bouton « Nouvelle expédition ». Je souhaiterais qu’en cliquant sur ce bouton, cela duplique la feuille « MOD_BE » et que un nouveau numéro de bordereau soit attribué à chaque fois dans la case F3 du type : ANNEE-001 et pour le prochain bordereau ANNEE-002… L’onglet associé serait à renommer avec ce numéro de bordereau.

J’ai trouvé un code intéressant mais je ne sais pas comment intégrer l’année en cours. Cela facilitera mes requêtes ensuite c’est pour cela que je préfère me servir de l’année

Je voulais m’inspirer du fichier ci-joint « Bordereau EPI1.xlmx » mais je galère !

Une fois le bordereau renseigné et lorsque l’on clique sur « Archiver », cela lance la macro que j’ai mis sous Module 1, c'est-à-dire que ca recopie des infos présentes dans certaines cases. Ca ne fonctionne pas trop mal sauf que si je clique plusieurs fois sur le bouton « ARCHIVER » ca vient réécrire une nouvelle ligne à chaque fois dans « Historique_BE », pas top ! Ah oui, et le numéro de série qui est recopié apparait avec une virgule et non un point, c’est normal ?

Aussi , si jamais j’ai plusieurs pièces à expédier, et bien elles ne vont pas figurer dans la liste « Historique_BE » c’est dommage ! En bref, chaque champ renseigné entre les lignes 41 et 48 du bordereau devrait apparaître dans « Historique_BE » quitte à avoir plusieurs fois le même numéro de bordereau associé qui s’affiche. Voir le fichier EXCEL « Bordereau_multiple »

Et encore une nouvelle attente, au fur et à mesure que l’onglet « Historique_BE » se remplit, je souhaiterais que la dernière expédition apparaisse en haut du tableau et non en bas, plus simple pour le suivi. Je sais qu’il faut écrire :…. (xlUp).Row + 1.

Sans succès pour moi !

Dernière petite requête: Dans la feuille "Historique_BE" quand, je doucle click sur le numéro de bordereau, je voudrais être redirigé vers mon bordereau, c'est réalisable ça ?

Je vais m’arrêter là car ça fait déjà beaucoup ! Si quelqu’un a des pistes je prends !

Le fichier sur lequel vous pouvez travailler se nomme « Bordereau d’expédition ». Merci à tous ceux qui prendront de leur temps pour me venir en aide !

J-Baptiste

34bordereau-epi1.xlsm (132.89 Ko)

Bonjour JBP

Je me lance dans un nouveau projet et j’ai déjà besoin de votre aide !

C'est très bien

Une fois sur cette feuille « Historique_BE », j’ai créé un bouton « Nouvelle expédition ». Je souhaiterais qu’en cliquant sur ce bouton, cela duplique la feuille « MOD_BE » et que un nouveau numéro de bordereau soit attribué à chaque fois dans la case F3 du type : ANNEE-001 et pour le prochain bordereau ANNEE-002… L’onglet associé serait à renommer avec ce numéro de bordereau.

J’ai trouvé un code intéressant mais je ne sais pas comment intégrer l’année en cours. Cela facilitera mes requêtes ensuite c’est pour cela que je préfère me servir de l’année

Ou est le code

Tu peux le créer en utilisant l'enregistreur de macro de l'onglet "Développeur"

Une fois le bordereau renseigné et lorsque l’on clique sur « Archiver », cela lance la macro que j’ai mis sous Module 1, c'est-à-dire que ca recopie des infos présentes dans certaines cases. Ca ne fonctionne pas trop mal sauf que si je clique plusieurs fois sur le bouton « ARCHIVER » ca vient réécrire une nouvelle ligne à chaque fois dans « Historique_BE », pas top ! Ah oui, et le numéro de série qui est recopié apparait avec une virgule et non un point, c’est normal ?

Oui normal, Excel le considère comme un combre

Il faut donc mettre un apostrophe devant

Aussi , si jamais j’ai plusieurs pièces à expédier, et bien elles ne vont pas figurer dans la liste « Historique_BE » c’est dommage ! En bref, chaque champ renseigné entre les lignes 41 et 48 du bordereau devrait apparaître dans « Historique_BE » quitte à avoir plusieurs fois le même numéro de bordereau associé qui s’affiche. Voir le fichier EXCEL « Bordereau_multiple »

Et encore une nouvelle attente, au fur et à mesure que l’onglet « Historique_BE » se remplit, je souhaiterais que la dernière expédition apparaisse en haut du tableau et non en bas, plus simple pour le suivi. Je sais qu’il faut écrire :…. (xlUp).Row + 1.

Sans succès pour moi !

Voici le code

Sub Archiver()
  Dim LigBE As Long, dLigBE As Long
  Dim LigHisto As Long
  LigHisto = Sheets("Historique_BE").Range("A3").End(xlDown).Row + 1
  dLigBE = Sheets("BE").Range("A49").End(xlDown).Row + 1
  ' Pour chaque ligne du Bordereau
  For LigBE = 41 To dLigBE
    Sheets("Historique_BE").Range("A" & LigHisto).Value = Sheets("BE").Range("F3").Value
    Sheets("Historique_BE").Range("B" & LigHisto).Value = Sheets("BE").Range("A" & LigBE).Value
    Sheets("Historique_BE").Range("C" & LigHisto).Value = Sheets("BE").Range("B" & LigBE).Value
    Sheets("Historique_BE").Range("D" & LigHisto).Value = "'" & Sheets("BE").Range("E" & LigBE).Value
    ' Pourquoi cette ligne !?
    'Sheets("Historique_BE").Range("E" & ligne).Value = Sheets("BE").Range("E35").Value
    ' Incrémenter la ligne d'historique
    LigHisto = LigHisto + 1
  Next LigBE
End Sub

Dernière petite requête: Dans la feuille "Historique_BE" quand, je doucle click sur le numéro de bordereau, je voudrais être redirigé vers mon bordereau, c'est réalisable ça ?

Tout ou presque est réalisable en développement

Je vais m’arrêter là car ça fait déjà beaucoup !

Ce n'est rien de le dire, perso tu m'as perdu au bout des 5 premières lignes de ton roman (je pense que ce n'est pas la bonne façon de s'y prendre)

Bonne chance

@+

Bonjour BrunoM45,

Merci pour ton retour ! J'avoue que le message était un peu long, j'aurais sûrement dû donner les explication dans le fichier EXCEL.

Tu me conseilles d'utiliser l'enregistreur de macros mais je ne vois pas comment je vais pouvoir dupliquer la feuille. Je voudrais que cela créer une nouvelle feuille à partie du modèle "MOD_BE". Le code que j'aurais aimé adapté se trouve dans le classeur "bordereau EPI1" mais n'ayant pas de connaissance en VBA je m'en sors très mal !

Et sinon, merci pour ton code mais apparemment il ne fonctionne pas. Erreur sur la ligne "Next lig"

Merci à toi !

JBP

Re,

Tu me conseilles d'utiliser l'enregistreur de macros mais je ne vois pas comment je vais pouvoir dupliquer la feuille.

Tu ne sais pas comment on duplique une feuille dans Excel !?

Clique droit sur l'onglet -> Déplacer ou copier

Je voudrais que cela créer une nouvelle feuille à partie du modèle "MOD_BE".

Pour info, tu n'as pas de feuille [MOD_BE]

Le code que j'aurais aimé adapté se trouve dans le classeur "bordereau EPI1" mais n'ayant pas de connaissance en VBA je m'en sors très mal !

Et bien comme me disait mon prof, il y a fort longtemps... commence par apprendre et tu sauras

Et sinon, merci pour ton code mais apparemment il ne fonctionne pas. Erreur sur la ligne "Next lig"

Désolé, code non testé, il faut remplacer "Lig" par "LigBE"

Re,

Ok, merci je vais regarder tout ça alors !

Merci à toi !

Rechercher des sujets similaires à "gestion bordereaux vba"