Macro ajout de ligne en fonction de différentes cellules
Résolu/Fermé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
- Macro ajout de ligne en fonction de différentes cellules
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Fonction si et - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Aller à la ligne dans une cellule excel - Guide
20 réponses
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
4 oct. 2022 à 16:25
Bonjour,
C'est difficile de répondre au question sans l'exemple.
Cordialement
Will
5 oct. 2022 à 16:06
Tant mieux ☺
Pas de souci
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question5 oct. 2022 à 09:08
https://www.cjoint.com/c/LJfhgmJcAjx
5 oct. 2022 à 13:02
Re,
Qu'en est-il des autres lignes (Périmétriques ....) doivent elles se reporter aussi ?
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?
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
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?
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
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
5 oct. 2022 à 15:59
Super. C'est parfait. Quelle efficacité!
Peut-on vous recommander sur le site?
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?
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
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.
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 !!!
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?
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.
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
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
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é