Macro avec ajout conditionnel de lignes

Résolu
CBRiste31 Messages postés 84 Statut Membre -  
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   -

Bonjour,                                                                                                                   


Windows / Chrome 109.0.0.0

A voir également:

6 réponses

Résumé de la discussion

L’objectif est d’insérer automatiquement dans la feuille 1, sous chaque référence de la colonne H, autant de lignes que le nombre de correspondances de cette référence dans la feuille 2 (colonne A), à condition que la quantité dans la colonne D (stock total) de la feuille 2 soit > 0.
Pour chaque ligne créée, les informations des colonnes A, B, F et I de la feuille 2 doivent être copiées sur la nouvelle ligne, et les données de la ligne d’origine de la feuille 1 doivent être reprises sur chaque ligne ajoutée.
Le mécanisme doit s’appliquer pour chaque référence distincte figurant en colonne H, et si une référence apparaît plusieurs fois dans la feuille 2, le nombre de lignes créées correspond au nombre d’occurrences, sous condition stock > 0.
Les propositions techniques évoquent une macro VBA gérant l’insertion et le déplacement des lignes, avec des optimisations telles que le bon positionnement de l’instruction ScreenUpdating et le traitement sous-jacent pour assurer l’alignement des données des deux feuilles.

Généré automatiquement par IA
sur la base des meilleures réponses
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 


0
CBRiste31 Messages postés 84 Statut Membre 3
 

Bonjour Le Pingou,

Tout d'abord, merci de vous pencher sur ma demande et la rapidité de votre message.

Pour répondre à vos demandes de précisions,

Le fichier m'est transmis avec les 2 feuilles déjà complétées.                                                    A moi de vérifier si des Réf de la Col H Feuille 1, existent dans la Feuille 2 (Col A).

Si tel est le cas et si la quantité correspondante en Feuille 2 est >0, je souhaite insérer automatiquement une ligne dans la Feuille 1 sous la ligne concernée, en reprenant les info des colonnes en orange de la feuille 2 + les informations en jaune de la feuille 1.

Dans l'exemple, en Feuille1, les données provenant de la Feuille 2 sont en bleu ciel et celles reprises de la Feuille 1 sont en bleu foncé.

-Enfin, pour donner plus de "piquant" à la chose ;-) il peut arriver que cette fameuse Réf en Col H de la feuille 1, apparaisse plusieurs fois dans la feuille 2, ce qui nécessiterait d'insérer d'autant de fois le nombre de lignes nécessaires en Feuille 1, reprenant, comme expliqué plus haut, les infos nécessaires des 2 feuilles.

Automatiser le process me ferait économiser beaucoup de temps. Aussi je sais qu'il y'a plusieurs contraintes à respecter...

Merci d'avance pour votre aide !

Cdlt,

Gexelpas

0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 

Bonjour,

Merci du complément d'information.

Il serait plus profitable si vous pouvez mettre un fichier avec une dizaine de lignes!

Petite précision: 

Si tel est le cas et si la quantité correspondante en Feuille 2 est >0,

Quelle colonne ....?


0
CBRiste31 Messages postés 84 Statut Membre 3
 

Re bonjour Le Pingou,

Comme demandé, ajout de quelques lignes supplémentaires dans l'exemple ci-dessous:

https://www.cjoint.com/c/MLrqIsTLKAk

Les lignes d'origine de la feuille 1, sont la 2 , 6 et 8.

Les lignes crées en feuille 1, sont les [3, 4, 5] ; [7] ; [9,10,11], avec ajout des informations de la feuille 2 en gros pointillés et reprise des informations de la feuille 1 en pointillés fins.

Enfin, pour préciser "Si tel est le cas et si la quantité correspondante en Feuille 2 est >0," → La colonne concernée est la D en Feuille 2.

Merci encore pour votre aide !

Cdlt,

Gexelpas

0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 

Bonjour,

Merci, c'est parfait.

Si tout va bien une proposition demain dans la journée, j'ai déjà un début de solution.

Bonne soirée.


0
CBRiste31 Messages postés 84 Statut Membre 3
 

Bonjour Le Pingou,

Je croise les doigts car ça m'aiderait beaucoup...

Bonne journée.

Gexelpas

0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
0
CBRiste31 Messages postés 84 Statut Membre 3
 

Bonsoir Le Pingou,

Merci, merci, MERCI !!!

ça m'a l'air TOP !

Je vais m’inspirer du module "lepingou" pour comprendre la démarche car j'aime bien comprendre et pas juste utiliser...

Merci vraiment car grâce à vous je vais gagner bcp de temps !

Je vous souhaite de très belles fêtes de fin d'année et encore merci !

Cdlt,

Gexelpas

1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 

' déplacer l'instruction qui se trouve presque à la fin

Application.ScreenUpdating = True

' la placer comme suit:
 shac.Cells(lilist, 1) = ActiveWorkbook.Name
    shac.Cells(lilist, 2) = nbliin
    shac.Cells(lilist, 3) = Date & " / " & Time
    Application.ScreenUpdating = True
    Windows(wbac.Name).Activate
    shac.Cells(2, 1).Activate

Joyeux Noël et bonne et heureuse année 2024.


0
CBRiste31 Messages postés 84 Statut Membre 3
 

Bonjour Le Pingou,

Effectivement l'instruction déplacée un peu plus en amont permet d'afficher la MsgBox avec le rappel qui va bien.

Merci pour votre temps !

Si d'aventure le fichier qu'on me transmet change un peu dans la disposition/ajout de colonnes, je ferais mon possible pour adapter le module en conséquence. 

Ce que vous avez pu composer constitue une excellente base pour cela !

Encore bonnes fêtes de fin d'année à vous !

Cdlt,

Gexelpas

0
Le Pingou Messages postés 12713 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 


0