Macro ajout de ligne en fonction de différentes cellules

Résolu/Fermé
denis34740 Messages postés 12 Date d'inscription mardi 4 octobre 2022 Statut Membre Dernière intervention 7 octobre 2022 - 4 oct. 2022 à 09:59
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 - 7 oct. 2022 à 14:16

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.

A voir également:

20 réponses

via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
4 oct. 2022 à 11:02

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
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14
4 oct. 2022 à 16:25

Bonjour, 

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

Cordialement

Will

1
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
5 oct. 2022 à 16:06

Tant mieux ☺

Pas de souci


1
denis34740 Messages postés 12 Date d'inscription mardi 4 octobre 2022 Statut Membre Dernière intervention 7 octobre 2022
5 oct. 2022 à 09:07

Bonjour Messieurs,

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

Le voici : Document Exemple

En vous remerciant pour vos retours.

Denis

0

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

Posez votre question
denis34740 Messages postés 12 Date d'inscription mardi 4 octobre 2022 Statut Membre Dernière intervention 7 octobre 2022
5 oct. 2022 à 09:08

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

0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
5 oct. 2022 à 13:02

Re,

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


0
denis34740 Messages postés 12 Date d'inscription mardi 4 octobre 2022 Statut Membre Dernière intervention 7 octobre 2022
5 oct. 2022 à 13:10

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
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
5 oct. 2022 à 15:46

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
denis34740 Messages postés 12 Date d'inscription mardi 4 octobre 2022 Statut Membre Dernière intervention 7 octobre 2022
5 oct. 2022 à 15:54

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
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
5 oct. 2022 à 15:59

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
denis34740 Messages postés 12 Date d'inscription mardi 4 octobre 2022 Statut Membre Dernière intervention 7 octobre 2022
5 oct. 2022 à 16:37

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
denis34740 Messages postés 12 Date d'inscription mardi 4 octobre 2022 Statut Membre Dernière intervention 7 octobre 2022
5 oct. 2022 à 15:59

Super. C'est parfait. Quelle efficacité!

Peut-on vous recommander sur le site?

0
denis34740 Messages postés 12 Date d'inscription mardi 4 octobre 2022 Statut Membre Dernière intervention 7 octobre 2022
5 oct. 2022 à 16:17

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
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
5 oct. 2022 à 17:03

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
denis34740 Messages postés 12 Date d'inscription mardi 4 octobre 2022 Statut Membre Dernière intervention 7 octobre 2022
5 oct. 2022 à 17:19

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
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
5 oct. 2022 à 18:03

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
denis34740 Messages postés 12 Date d'inscription mardi 4 octobre 2022 Statut Membre Dernière intervention 7 octobre 2022
5 oct. 2022 à 18:37

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
denis34740 Messages postés 12 Date d'inscription mardi 4 octobre 2022 Statut Membre Dernière intervention 7 octobre 2022
5 oct. 2022 à 18:55

@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
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
7 oct. 2022 à 12:35

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
denis34740 Messages postés 12 Date d'inscription mardi 4 octobre 2022 Statut Membre Dernière intervention 7 octobre 2022
7 oct. 2022 à 12:56

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
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
7 oct. 2022 à 14:16

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