Macro ajout de ligne en fonction de différentes cellules

Résolu
denis34740 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

Je souhaiterai effectuer des actions automatiques sur un second tableau en fonction de ce que je remplis dans le premier tableau. 

 Pour faire simple, je remplis manuellement les valeurs dans les cases blanches et je possède un menu déroulant sur la case de droite. Je souhaiterai quand je met la valeur "Environnement technique" qu'une ligne soit créée sur un autre tableau 

Voici l'autre tableau :

N'étant pas du tout un pro en macro, quelqu'un serait-il en capacité de me rendre ce service s'il vous plaît?

En vous remerciant.

20 réponses

  1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     

    Bonjour denis

    Pas forcément besoin de macro une formule peut peut-être suffire

    Pour avoir une aide il faut fournir un exemple de ton fichier et pas une image

    Exemple à poster sur cjoint.com, faire créer un lien, le copier et revenir le coller ici

    Cdlmnt

    Via


    1
  2. Willzac Messages postés 281 Statut Membre 15
     

    Bonjour, 

    C'est difficile de répondre au question sans l'exemple.

    Cordialement

    Will

    1
  3. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     

    Tant mieux ☺

    Pas de souci


    1
  4. denis34740 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
     

    Bonjour Messieurs,

    En effet, sans exemple ce n'est pas pratique...

    Le voici : Document Exemple

    En vous remerciant pour vos retours.

    Denis

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

    Posez votre question
  6. denis34740 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
     

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

    0
  7. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     

    Re,

    Qu'en est-il des autres lignes (Périmétriques ....) doivent elles se reporter aussi ?


    0
  8. denis34740 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
     

    Re,

    Tout d'abord un grand merci de prendre du temps pour cela ;)

    Concernant le tableau, en effet, oui elles doivent se reporter aussi, comme toutes les valeurs dans le menu déroulant de la colonne E.

    Quand je rentre cette valeur en colonne E, je souhaiterai que la ligne se crée automatiquement dans le tableau du second onglet. Est-ce plus clair?

    0
  9. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     

    Voilà ton fichier avec la macro

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

    A condition de supprimer toutes cellules fusionnées qui font mauvais ménage avec les macros

    Cdlmnt

    Via


    0
  10. denis34740 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
     

    Oh mon Dieu! Cela fonctionne en plus!

    Merci beaucoup à toi. Petite question : Si je veux copier cette macro dans un autre fichier comment puis-je faire cela s'il te plaît?

    0
  11. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     

    Alt + F11 pour ouvrir l'éditeur VBA

    Aller dans Module 2 - Sélectionner et copier toutes les lignes de la macro , ouvrir l'éditeur VBA de l'autre fichier, coller la macro dans un module


    0
    1. denis34740 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
       

      J'ai réussi à copier le module dans mon nouveau fichier.

      J'ai fait les changements dans le module pour que cela corresponde à mon nouveau fichier (notamment les noms des onglets) mais il m'affiche une fenêtre que vous pourrez voir en dessous (Atteindre). Je me retrouve bloqué par manque de connaissances... Merci pour votre retour. 

      Denis

      0
  12. denis34740 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
     

    Super. C'est parfait. Quelle efficacité!

    Peut-on vous recommander sur le site?

    0
  13. denis34740 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
     

    Re moi encore....
     

    Quand j'ai tenté de le copier dans un nouveau fichier... En modifiant les noms dans le module correspondant aux nouveaux noms dans le nouveau fichier, quand j'appuie sur CTRL+T il m'affiche une fenêtre :

    Que dois-je faire s'il vous plaît?

    0
  14. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     

    Le raccourci n'est pas associé à la macro

    Aller dans le Ruban à Développeur puis Macro et faire Exécuter la macro

    Pour mettre un raccourci clavier dans Macro au lieu d'Exécuter aller dans Options


    0
  15. denis34740 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
     

    Alors j'ai dû faire une boulette. Je vous renvoie ça de suite:

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

    Je pense que vous comprendrez mieux que moi. 

    Merci beaucoup.

    0
  16. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     

    1) Les plages du nouveau fichier ne correspondaient pas il faut modifier ainsi la amcro

    Sub transposition()
    g = 9
    For y = 5 To 23
    nom = Sheets("Zones lecteurs").Range("E" & y)
    
    If WorksheetFunction.CountIf(Sheets("Orange LAGNY NOIMM 779351").Range("E:E"), nom) > 0 Then g = g + 1
    MsgBox nom
    For l = 9 To 50
    If Sheets("Orange LAGNY NOIMM 779351").Range("F" & l) = nom Then
    g = g + 1
    Sheets("Internes et Externes SI").Range("A" & g) = Sheets("Orange LAGNY NOIMM 779351").Range("B" & l)
    Sheets("Internes et Externes SI").Range("B" & g) = Sheets("Orange LAGNY NOIMM 779351").Range("C" & l)
    Sheets("Internes et Externes SI").Range("C" & g) = Sheets("Orange LAGNY NOIMM 779351").Range("D" & l)
    Sheets("Internes et Externes SI").Range("E" & g) = nom
    End If
    Next
    Next
    
    
    End Sub

    2) Les colonnes de la feuille où transposer les données ne correspondent en rien à celle de la feuille source !!!


    0
  17. denis34740 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
     

    D'accord, au temps pour moi...

    Donc je pense qu'il y a un soucis. Quand j'exécute la macro, la ligne 45 (onglet "Orange LAGNY NOIMM 779351") ne se crée pas dans le second onglet... Est-ce bien ce que vous aviez compris en créant la macro ou je me suis exprimé comme un néophyte qui se respecte?

    0
  18. denis34740 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
     

    @via55 StatutMembre Pourrai-je vous faire un partage d'écran en direct histoire de vous expliquer concrètement mon soucis s'il vous plaît?

    En vous remerciant.

    0
  19. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     

    Bonjour

    Pas de partage d'écran possible mais je viens de remarquer une chose, des libellés ne sont pas identiques,dans la feuille source et la liste de la feuille Zones lecteurs par ex pour la ligne 45 c'est Périphérie accès piétons alors que dans la liste c'est Périphérique accès piétons

    Commence par mettre en conformité les libellés et tout devrait fonctionner ensuite

    Cdlmnt

    Via


    0
  20. denis34740 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
     

    Sub transposition()
    g = 9
    For y = 5 To 21
    nom = Sheets("Zones lecteurs").Range("E" & y)

    If WorksheetFunction.CountIf(Sheets("Orange LAGNY NOIMM 779351").Range("E:E"), nom) > 0 Then g = g + 1
    MsgBox nom
    For l = 9 To 50
    If Sheets("Orange LAGNY NOIMM 779351").Range("F" & l) = nom Then
    g = g + 1
    Sheets("Internes et Externes SI").Range("A" & g) = Sheets("Orange LAGNY NOIMM 779351").Range("B" & l)
    Sheets("Internes et Externes SI").Range("B" & g) = Sheets("Orange LAGNY NOIMM 779351").Range("C" & l)
    Sheets("Internes et Externes SI").Range("C" & g) = Sheets("Orange LAGNY NOIMM 779351").Range("D" & l)
    Sheets("Internes et Externes SI").Range("E" & g) = nom
    End If
    Next
    Next


    End Sub

    Voici la macro que vous avez fait pour ce tableau. Je me pose cependant quelques questions : Après l'exécution j'ai un message qui apparaît pour chaque valeur, est-il possible de les enlever s'il vous plaît?  (MsgBox?)

    Quand j'exécute la macro, cela ne donne pas du tout le résultat attendu... Certainement une mauvaise explication de ma part. Donc je vais en parler en nom de case pour tenter d'être plus clair avec vous : 

    De l'onglet Orange LAGNY NOIMM 779351 vers l'onglet Internes et Externes SI:

    Colonne E vers D

    Colonne F vers B

    Colonne D vers C

    Cela dit je peux avoir plusieurs "accès" en périphérie accès piétons par exemple. Dans le cas où j'en aurai plusieurs je souhaiterai que la ligne vienne s'insérer automatiquement dans le tableau de l'onglet Internes et Externes SI. 

    Je pense vous avoir tout donné comme informations. 

    P.S : J'ai rectifié tous les libellés et cela ne fonctionne toujours pas.

    En vous remerciant pour votre temps.

    Cdlmnt

    Denis

    0
  21. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     

    Re

    1) oui enlever la ligne avec msgbox qui n'était là que pour contrôle

    2) Rectifier les lettres des colonnes dans les lignes de la macros faisant le transfert

    Ex : Sheets("Internes et Externes SI").Range("A" & g) = Sheets("Orange LAGNY NOIMM 779351").Range("B" & l)

    transfère pour l'instant de B vers A , à changer donc par E et D etc

    Si malgré toutes tes modifications cela ne fonctionne pas encore correctement me renvoyer ton fichier corrigé


    0