Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Tri et copié coller de valeur selon date et varibale en automatique

StanislasC

XLDnaute Nouveau
Bonjour à tous,

J'essaye actuellement d'automatiser un de mes fichiers mais je ne sais pas par quel bout prendre le problème et comment le réaliser.

Dans mon fichier, j'ai une base de donnée qui correspond à des commandes avec différentes informations. Une base de donnée classique.
Mon utilisation actuelle est que je tri cette base de donnée avec des slicers pour faire ressortir que certaines commandes d'un certain fournisseur et d'une certaine date, je les copies colles dans un autre fichier pour faire une vérification indépendante et envoyer ce fichier à quelqu'un d'autre.

Sauf que je considère que devoir répeter cette manip de nombreuses fois à la main est une réelle perte de temps sans valeur ajoutée humaine.
Je cherche donc un moyen de l'automatiser via du VBA.

Mon processus imaginé serait le suivant :

-Je lance la macro via un bouton,
-Cela me demande de selectionner une plage de date (élément primodiale)
-La macro effectue donc pour la plage de date demandés les différents copier coller d'un coup.
-Les copier coller doivent être divisés en plusieurs groupes, c'est un critère de fournisseur pour moi et dans l'excel cela est représenté dans la colonne "Nom" et "Nom bis",

Pour exemple,en Août 2022, pour le nom "A", je dois réaliser un copier coller de toutes les commandes avec le nom bis "aa" "ab" et "ac", et un autre groupe de copier coller devra contenir pour cette même période de Août 2022, toujours le même nom "A" mais cette fois, les nom bis "ad" et "ae".

La date représente le premier volet de tri de ma base de donnée, et les "Nom" et "Nom Bis" représente les différents groupes de copier coller que je dois réaliser.

Je vous joint un fichier type de ma base de données avec le résultat de la manip que j'explique ci-dessus.

Merci d'avance pour votre aide et reste bien entendu à votre disposition pour toute explication supplémentaire.

Cordialement,

StanislasC
 

Pièces jointes

  • Test VBA Factu.xlsx
    13.4 KB · Affichages: 6
Solution
Bonjour,

Voir ci-joint.
Attention que lorsqu'une liste de la feuille liste n'a aucun élément concerné, on crée du coup un en-tête de tableau vide.
Est-ce que c'est quelque chose qui peut arriver ? Auquel cas, il faut d'abord vérifier si la liste possède un élément dans la feuille Source.

Bonne journée,

StanislasC

XLDnaute Nouveau
Malgré tous mes efforts je n'ai pas trouvé
Je te joins un fichier sans données qui correspond à mon vrai fichier.
Peut-être cela à un lien avec le pourquoi ça ne marche pas, mais dans ma base de donnée, les noms des "maitres" "esclaves" qui déterminent les groupes de tableaux sont des résultats de recherche V.

Je t'ai remis toutes les explicatons des colonnes dans le fichier.

Encore merci de ton aide,

Cdlt,
 

Pièces jointes

  • VBA TEST 2.xlsx
    13.6 KB · Affichages: 1

xUpsilon

XLDnaute Accro
Quelque chose m'interloque dans ton fichier : il n'y a pas de feuille "Résultats" ?
Ensuite, sur cette ligne :
VB:
oWs_Destination.Cells(nLignInc, nCol) = Tablo(nLig, nCol)
, c'est nLigInc pas nLignInc.
Ensuite, il faut interchanger tes deux constantes de maitre et esclave :
Code:
Const sCol_FrnUsage As String = "T"
Const sCol_ReseauBud As String = "Q"

Réessaye avec ça et tiens moi au courant, a priori ça fonctionne chez moi (sans parler de l'ordre de copie des colonnes dont on s'occupera à la fin).

Bonne journée,
 

StanislasC

XLDnaute Nouveau
Je me posais la question aussi de comment faire pour faire réapparaitre au début de chaque tableau les entêtes et garder les mises en forme.
Pour les seules colonnes à copier, est-ce que cela serait plus simle de passer par un tcd pour remplacer ma base de donnée et mettre uniquement les colonnes dont j'ai besoin ?

Cdlt,
 

xUpsilon

XLDnaute Accro
Veux-tu faire copier/coller tous les en-têtes ou juste ceux cités parmi les colonnes à copier/coller ?
Pour les format, que souhaites-tu ? Parce qu'un tableau VBA ne conserve aucune mise en forme, donc si c'est quelque chose de complexe il faut voir ce qui est faisable.
En effet si tu as la possibilité de mettre un TCD ça pourrait éviter d'avoir un tableau tampon de correspondance "Colonne Données VS Colonne Résultats".
 

StanislasC

XLDnaute Nouveau
Oui je vais passer par un TCD cela sera plus simple, et effectvement du coup il faut reprendre juste les en-têtes des colonnes utilisées.
Au niveau de la mise en forme je pensais gloablement à refaire juste une couleur pour les en-têtes, faires des traits de brodure de cellules et mettre en € mes celulles concernées. Mais ce n'est pas possible, je peux passer basiquement par une reproduction de mise en forme, ce n'est pas le plus important.

Cdlt,
 

StanislasC

XLDnaute Nouveau
J'ai essayé de faire un simple range.copy pour l'en-tête de tableau mais ça n'a pas marché.

Pour les totaux, j'ai du mal à comprendre le principe de la formulalocale, est-ce que cela doit être quelque chose de définit dans les constantes ou à inclure aussi dans la partie du code du tableau ?

Cdlt,
 

xUpsilon

XLDnaute Accro
Bonjour,

Je n'ai pas le temps de regarder aujourd'hui désolé.
Essaye de m'envoyer un fichier avec les macros les colonnes dans l'ordre. Que tout soit propre et que je n'aie plus qu'à regarder à la macro

Bonne journée,
 

StanislasC

XLDnaute Nouveau
Bonjour,

Il n'y a pas de soucis c'est déjà très gentil de ta part de m'aider autant !

Je te remets ci-jont le fichier avec toutes les colonnes dans le bonne ordre et avec la bonne macro.

Cdlt,
 

Pièces jointes

  • VBA TEST 2.xlsm
    19.8 KB · Affichages: 1

xUpsilon

XLDnaute Accro
Bonjour,

Voir ci-joint.
Attention que lorsqu'une liste de la feuille liste n'a aucun élément concerné, on crée du coup un en-tête de tableau vide.
Est-ce que c'est quelque chose qui peut arriver ? Auquel cas, il faut d'abord vérifier si la liste possède un élément dans la feuille Source.

Bonne journée,
 

Pièces jointes

  • VBA TEST 2 (1).xlsm
    27.3 KB · Affichages: 1

Discussions similaires

Réponses
9
Affichages
418
Réponses
8
Affichages
387
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…