Insérer une ligne automatiquement grâce à une macro

Résolu/Fermé
caro - Modifié par caro le 10/07/2013 à 17:24
 caro - 12 juil. 2013 à 16:05
Bonjour,

Je travaille sur un fichier excel et je souhaiterais réaliser une macro, mais j'ai besoin d'aide.
Le but de cette macro serait d'insérer automatiquement une ligne suite à un texte contenu dans une cellule (dans une colonne).

A titre d'exemple concret du cas:
Les cellules de ma colonne A sont composées de liste déroulante. Lorsque les utilisateurs du fichiers vont sélectionner le texte "multi-affectation" je souhaiterais qu'une ligne s'insère automatiquement dans le fichier juste en dessous de la ligne dans laquelle ils ont sélectionné "multi-affectation".

Je vous remercie pour votre aide.

Caroline

A voir également:

4 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 10/07/2013 à 17:51
Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Or Target.Count <> 1 Then Exit Sub
    If Target = "multi-affectation" Then
        Application.EnableEvents = False
        Rows(Target.Row + 1).Insert Shift:=xlDown
        Target.Select
        Application.EnableEvents = True
    End If
End Sub


eric


Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
1
Un grand merci pour ton aide :)

Bonne journée
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
11 juil. 2013 à 13:28
ok, je met en résolu pour toi (en haut vers ton titre, pour la prochaine fois)
eric
0
Très bien je tâcherai de le faire la prochaine fois.

J'aurais 2 dernières questions concernant les macros.
L'une est rattachée à ma première question:
- Lorsque ma ligne est insérée, je souhaiterais que cette ligne copie colle les information de la ligne du dessus de la colonne A à L. Bien sur, en colonne A cela revient à copier multi-afectation et je ne veux pas qu'excel insère à nouveau une ligne.

J'aurais également voulu intégrer un message d'erreur sur une colonne. Lorsque dans une cellule de la colonne A figure "autres changements" alors sur cette ligne en colonne M, la date doit être comprise entre 01/08/2013 et le 31/12/2014. Ainsi l'utilisateur ne peux pas saisir de date en dehors de cet intervalle.

Merci beaucoup si vous arrivez à répondre à ces questions.

Caroline
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
11 juil. 2013 à 16:59
la date doit être comprise entre 01/08/2013 et le 31/12/2014
L'année prochaine et en 2015 également ?
Il n'y a pas une règle de calcul pour ces dates ?

Merci de déposer un fichier de test anonymisé avec qcq lignes pour voir le type de valeurs et de formules que tu as.
Déposer le fichier xls sur cjoint.com et coller ici le lien fourni.

eric
0
Bonjour Eric,

Voici le lien du fichier test: http://cjoint.com/?CGmjiQANzyB

Merci beaucoup pour ton aide.

Caroline
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
12 juil. 2013 à 11:17
Bonjour,

et mes questions ?
eric
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
12 juil. 2013 à 15:24
Bonjour,

je souhaiterais que cette ligne copie colle les information de la ligne du dessus de la colonne A à L.

J'ai complété le code.

Mais sinon il n'y a pas de règle particulière, cet intervalle doit être figé. Je le changerai manuellement lors de la prochaine utilisation du fichier.
Ok, j'ai mis une validation. Tu pourras la changer tous les mois si besoin.
https://www.cjoint.com/c/CGmpyKJGeky

eric
0
Un très grand merci et bonne continuation :)
0