Macro avec ajout conditionnel de lignes

Résolu
CBRiste31 Messages postés 43 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 1 janvier 2024 - 17 déc. 2023 à 09:00
Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 - 19 déc. 2023 à 11:20

Bonjour,                                                                                                                   

Je souhaiterais disposer d'une macro qui ajouterait une ou des lignes, de façon conditionnelle.       

Dans le fichier, 2 feuilles :

La feuille 1 contient des références en Colonne H (Mar).                                                        

La feuille 2 contient des références en colonne A (Mark).

Le but est de créer automatiquement une ou plusieurs lignes sous la référence en feuille 1, si et seulement si,

  • la même référence se retrouve dans la feuille 2. Si cette référence est reprise 2 fois dans la feuille 2, alors, créer 2 lignes dans la feuille 1. Dans la même logique si il y'a 3 références en feuille 2 et au delà...
  • la quantité en colonne D (stock total) de la feuille 2 est > 0.

Dans les lignes crées en feuille 1, il faudrait ajouter les informations correspondantes des colonnes A, B, F et I de la feuille 2 (titres de colonnes orange dans l'exemple).                       

Il faudrait aussi, pour chacune des lignes créé, reprendre les informations de la référence originelle de la feuille 1 (titres de colonne en jaune dans l'exemple).

Mieux que des mots, une démo ! Ci-dessous, le lien vers l'exemple.

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

Dans cet exemple, le résultat attendu est la création de 3 lignes en feuille 1 avec les éléments repris de la feuille 2 en couleur bleu ciel et ceux recopiés de la feuille 1 en bleu foncé.

Cette automatisation serait appliquée pour chaque différente référence indiquée en colonne H de la feuille 1.

Merci d'avance pour vos suggestions !

Cdlt,

Gexelpas
Windows / Chrome 109.0.0.0

A voir également:

6 réponses

Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
17 déc. 2023 à 10:47

Bonjour,

Je comprends ceci : lorsqu’une ligne est terminée dans la feuille 2 on regarde si la référence en A existe en feuille 1 et si c’est le cas on copie les diverses données de la feuille 2 sur la feuille 1.

Et ainsi de suite.

Note : si plusieurs références en feuille 1 alors la ligne de la feuille 2 sera insérer directement sous la référence équivalente

Est-ce bien cela ?


0
CBRiste31 Messages postés 43 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 1 janvier 2024 2
17 déc. 2023 à 11:44

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 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
Modifié le 17 déc. 2023 à 12:02

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 43 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 1 janvier 2024 2
17 déc. 2023 à 17:44

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 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
17 déc. 2023 à 21:19

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 43 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 1 janvier 2024 2
18 déc. 2023 à 06:25

Bonjour Le Pingou,

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

Bonne journée.

Gexelpas

0
Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
18 déc. 2023 à 14:10

Bonjour,

Ma proposition, ouvrir le classeur 'CBRiste31_Accueil.xlsm? puis lancer la macro par clic sur 'Clic-moi' et vous devrez sélectionner le fichier à traiter que vous avez enregistré à l'endroit de votre choix (par exemple : le bureau) Note, le classeur est fermé.

A vous la découverte.

Le fichier : https://www.cjoint.com/c/MLsmWh4EI1Z


0
CBRiste31 Messages postés 43 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 1 janvier 2024 2
18 déc. 2023 à 21:29

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 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
18 déc. 2023 à 22:04

Bonjour,

Merci du retour.

Je vous propose de corriger une petite anomalie dans le code, à faire selon l’encadré :

' 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 43 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 1 janvier 2024 2
19 déc. 2023 à 06:35

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 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
Modifié le 19 déc. 2023 à 11:21

Bonjour,

Merci du retour.

Note : assurez-vous que dans la colonne des références (H:H) il n'y est pas de doublons  avant traitement !...

Vous pouvez toujours me contacter si nécessaire


0