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

Résolu
caro -  
 caro -
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

4 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  2. caro
     
    Un grand merci pour ton aide :)

    Bonne journée
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      ok, je met en résolu pour toi (en haut vers ton titre, pour la prochaine fois)
      eric
      0
    2. caro
       
      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
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
    4. caro
       
      Bonjour Eric,

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

      Merci beaucoup pour ton aide.

      Caroline
      0
    5. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      et mes questions ?
      eric
      0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  4. caro
     
    Un très grand merci et bonne continuation :)
    0