VBA Copie lignes automatique avec conditions

bonjour à tous

je suis novice en VBA et j'ai besoin de votre aide

j'ai un gros fichier (2000 lignes) que je dois exploiter de manière a le figer en BDD pour un publipostage

je vais essayer d'etre claire dans mes explications

le fichier (un extrait en PJ) comprend une liste d'entp cliente qui ont

soit un contrat BASE soit un contrat BASSE + RENFORT 1, soit BASE +

RENFORT 1 + RENFORT 2 (j'ai surligné en vert les exemples)

Actuellement j'ai les informations tarifaires et texte sur des lignes différentes

c'est ce qui me pose probleme

j'ai besoin que pour une meme entreprise

si BASE seule seule (condition en colonne E) les colonnes M à Y soient

alimentées (les colonnes suivantes sont vides puisque pas de RENFORT 1

ou 2)

mais si BASE (M à Y) et renfort 1 (condition en colonne E) en 2e ligne,

les données RENFORT 1 soient remontées en lignes du dessus (BASE) et

colonnes Z à AL

Si base + renfort 2 (3e ligne) les données RENFORT 2 soient remontées sur la ligne BASE en colonnes AP à AY

en gros pour une meme entreprise, il me faut toutes ses références (nom, contrat et cotisations sur une seule et meme ligne)

Les lignes inutiles (renfort 1, renfort 2) qui auront été recopierées seront à supprimer

j'ai tenté une formule "SI" toute simple =SI(Z3<>"";Z3;"") mais

bien sur, comme je suis en formule à partir du moment où je tire la

formule plus rien ne fonctionne puisque la cellule du dessus devient

vide

en vba est ce possible ? je n'y arrive pas car je ne sais les créer que via l'assistant.

Un grand merci pour vos lumières car je dois reussir a faire ce "travail" de maniere automatique.

Stéphanie

Bonjour

Ces données sont saisies ou issues d'un extraction d'un autre logiciel ?

Quelles colonnes sont nécessaires pour le publipostage ?

Bonjour

2 Questions:

1 - ligne 53 BASE 54 BASE 55 RENFORT qu'est ce qu'on garde?

2- je vois des formules. Faut il garder les formules ou leur valeur?

A+ François

De plus je vois que tu poses la même question sur un autre site....

A+ François

bonjour Messieurs

on ne garde que la ligne 53, alimentée des lignes 54 et 55 dans cet exemple

les formules peuvent etre supprimées car elles sont utilisées pour générées ce V2 Global valeurs. A creer un V3 pour que je garde les formules en V2

Les colonnes a garder pour le publipostage sont M à AY + AZ a BH (pas dans l'extrait)

Suis je claire ?

merci d'avance

stephanie

RE

Tu n'as pas cloturé ton autre fil...

Powerquery :

11zb4-a-j-1-5-pq.xlsx (233.76 Ko)

bonjour 78Chris,

ton résultat est bluffant et c'est exactement ce qu'il me faut. Par contre cela ne s'applique pas sur toutes les lignes. Expl COMIL en BASE + RENFORT 1 + RENFORT 2, les colonnes ne sont pas alimentées, pourquoi ?

Je ne vois pas de macro dans le fichier pour comprendre comment tu as réussi à programmer tout ca ?

Peux tu m'écrire la marche à suivre afin que j'applique sur la totalité de mon fichier ?

Merci d'avance

Stéphanie

Bonjour

COMIL est en ligne 55 des résultats avec les colonnes AN:DI remplies...

Il y a 24 lignes avec RENFORT 1 et, le cas échéant, RENFORT 2 (4 parmi les 24)

Mes excuses 78Chris, je n'étais pas allée assez loin dans le tableau et donc pas remarquér toutes les colonnes supplémentaires.

Donc cela correspond bien a ma demande et je t'en remercie

maintenant, comment appliquer le powerquery dont tu parles ? je ne connais absolument pas.

Stéphanie

RE

Données, Obtenir des données, lancer PowerQuery

Tu verras 4 requêtes :

  • Base0 qui
    • charge le tableau source,
    • l'indexe
    • supprime les colonnes inutiles
  • Renforts qui permet de récupérer les lignes avec 1 ou 2 RENFORT
    • partant de Base0 cherche tout d'abord si une ligne BASE est suivie de RENFORT 1 et le cas échéant ajoute les données de la ligne suivante
    • fait la même chose pour voir si une ligne RENFORT 1 st suivi d'une ligne RENFORT 2 et le cas échéant ajoute les données de la ligne suivante
  • BaseSeule qui récupère les lignes sans renforts
  • Tout qui assemble Renforts et BaseSeule et les reclasse comme initialement

La liste des étapes de chaque requête est à droite et on obtient le détail dans la barre de formule et en cliquant sur le petit rouage de la ligne d'étape

Le B A BA de PowerQuery ici http://www.excel-formations.fr/Trucs_astuces/PQ00.php

Bonjour 78chris,

j'ai réussi à visualiser les requetes, merci

mais je n'arrive pas a les recopier dans mon fichier global. Une technique à me conseiller ?

Stéphanie

Bonjour

Afficher le volet des requêtes (Données, Requêtes et connexions), les sélectionner, les copier et les coller dans le même volet de l'autre fichier

Veiller à ce que tableau source ait le même nom...

Bonjour 78chris

j'ai longuement étudié ton tableau et l'onglet Power Query. J'ai réussi à rapatrier mon tableur global, merci.

J'ai plusieurs interrogations:

  1. comment afficher tous mes résultats en nombre avec deux décimales car certaines valeurs sont arrondies à l'euro supérieur ?
  2. pourquoi toutes ces colonnes supplémentaires et surtout pourquoi le contenu des colonnes DS à EE ne se retrouvent pas "simplement" dans les colonnes initiales prévues pour mon publipostage en AM à AY ?

Un grand merci pour ton retour

bon dimanche

Stéphanie

Bonjour

Le formatage des colonnes du tableau résultant est à faire dans Excel

Tu as indiqué les colonnes que tu voulais garder : M à AY soit 39 colonnes X 3 donnent 117 soit A à DM.

Comme je n'ai pas répété les 2 premières on gagne 4 colonnes donc cela fait 39 + 37 + 37 soit 113 colonnes de A à DI

Si tu ne veux pas autant de colonnes pour les renforts à toi de préciser lesquelles doivent s'afficher, chose que tu peux facilement modifier aux étapes Etat00 développé et R2 développé de la requête Renforts

Ou bien si la base s'arrêtait à Y (si toi tu t'y retrouves, pour nous ce tableau ne comporte pas de repères clairement interprétables) il faut, en plus, supprimer davantage de colonnes dans la dernière étape de Base0

Merci

comment passer la discussion en Résolue ?

Rechercher des sujets similaires à "vba copie lignes automatique conditions"