XL 2016 Macro recherche bdd

HelloDy

XLDnaute Junior
Bonjour mes futurs sauveurs ^^

J'aurais besoin pour mon travail de créer une macro allant chercher des infos (référence, désignation, prix) dans une base de données et les recopier dans un autre onglet où des étiquettes sont formalisées.
Seulement niveau macro je ne sais utiliser que l'enregistreur de macro, et là ça marche pas ça je suis perdue :(

J'ai joint mon fichier, enfin quelque chose qui y ressemble car dans le vrai il y a plein d'infos confidentielles :oops:

J'aimerais qu'en lançant une macro, Excel remplisse les étiquettes en fonction de ce qui est demandé dans le 1er onglet (en prenant en compte le nombre d'étiquettes à créer pour chaque ref), à partir des infos trouvées dans l'onglet "BDD".
Et si une ref demandée dans le 1er onglet n'existe pas dans la BDD, qu'il la colorie la cellule incriminée en rouge par exemple.

Je sais je demande la lune !! Mais si quelqu'un peut m'aider ce serait génial.

Merci d'avance et à bientôt.

Élo
 

Pièces jointes

  • Exemple.xlsm
    26.5 KB · Affichages: 38

mapomme

XLDnaute Barbatruc
Supporter XLD
Re @Staple1600,

Si tu préfères on peut mixer le dico et l'array , non ?

Le fichier V3 utilise déjà un dictionary et un tableau en entrée. Pour la sortie, j'affiche au fur et à mesure sans passer par un tableau. Comme de toute façon, il faut faire du formatage sur les lignes, je ne pense pas que l'absence de tableau (pour la sortie) soit très pénalisant pour la macro.

Si la dame avait eu un Mac, j'aurais évité le dictionary et tout fait par arrray.
 

HelloDy

XLDnaute Junior
Bonjour tout le monde,

Je remonte cette discussion pour une question subsidiaire :

J'aimerais, une fois que mes étiquettes sont créées, insérer un saut de page toutes les 18 lignes (entre la 18ème et la 19ème pour être précise, et ainsi de suite entre 36 et 37, etc) jusqu'à la fin du document pour qu'à l'impression ça se passe un peu mieux :)

Merci d'avance à qui saura me dépanner !
 

HelloDy

XLDnaute Junior
Hello Staple,

Je fais l'impasse pour le moment parce que pour des raisons qui me sont étrangères je dois faire ça sur Excel.
Mais quand j'aurai un peu de temps oui j'essaierai, ça m'intéresse de voir si j'y arrive et ce que ça donne :)
(by the way j'ai réussi à résoudre toute seule le problème du centrage des images :cool:)
 

HelloDy

XLDnaute Junior
Ah non j'y ai pas du tout pensé, c'est tellement bidon comme solution ^^
En fait j'ai fait un enregistrement de macro dans laquelle je sélectionne tous les objets de la feuille et je les déplace 4 fois vers la droite, 5 fois vers le bas. Et hop zone sécurisée, mission accomplie, formation du lézard ! :D
 

Staple1600

XLDnaute Barbatruc
Re,

@HelloDy
Qu'importe le bidon, tant qu'on a l'ivbaresse ;)
Toujours penser à publier ses solutions (d'où qu'elles viennent)
Pourquoi?
Parce que cela pourra peut-être servir à un futur lecteur du fil où sera postée la dite solution ;)

EDITION: Bonsoir mapomme ;)
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @HelloDy :), @Staple1600 ;),
J'aimerais, une fois que mes étiquettes sont créées, insérer un saut de page toutes les 18 lignes (entre la 18ème et la 19ème pour être précise, et ainsi de suite entre 36 et 37, etc) jusqu'à la fin du document pour qu'à l'impression ça se passe un peu mieux

Une piste dans le fichier joint. J'ai repris mon fichier V3 pour l'exemple (sans avoir intégré les diverses fusions, insertions et centrages d'image).

Une constante a été définie en tête de module. Cette constante nommée NbrRangEtiqParPage contient le nombre de rangées d'étiquettes à imprimer par page (pour l'exemple, on a pris 5)

Dans la boucle de construction des étiquettes, on a rajouté une ligne de code pour insérer les sauts de page :
VB:
If (lig Mod 3 * NbrRangEtiqParPage) = 1 Then ActiveSheet.HPageBreaks.Add Before:=.Rows(lig)
On multiplie par 3 car une rangée d'étiquettes a une hauteur de 3 lignes. Donc un saut de page toutes les 15 lignes pour l'exemple considéré.
 

Pièces jointes

  • HelloDy- Exemple- v4.xlsm
    33.1 KB · Affichages: 23
Dernière édition:

HelloDy

XLDnaute Junior
Coucou mapomme,

Merci beaucoup, ça à l'air de fonctionner super bien ! T'es un chef, je t'aime d'un amour pur et sincère ^^
Je testerai sur mon vrai document mardi.

@Staple1600 oui je comprends bien la raison, si j'avais trouvé une solution intéressante au problème j'aurais probablement pensé à la poser ici, mais bon là franchement c'est du bricolage ce que j'ai fait...
En tout cas si tout fonctionne comme ça en a l'air, je posterai le code intégral dès mardi (ou peut être mercredi parce que le mardi j'ai beaucoup de boulot :()
Et oui promis j'essaierai d'arriver au même résultat en utilisant le publipostage de Word !
 

Discussions similaires

Réponses
7
Affichages
534

Statistiques des forums

Discussions
312 231
Messages
2 086 441
Membres
103 210
dernier inscrit
Bay onais