Macro insertion ligne / transposition

Résolu
pacifist_blues Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
pacifist_blues Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, J'aimerai créer automatiquement des lignes en fonction d'un nombre calculer, avec si possible une transposition. Je vous joint les éléments pour mieux comprendre. Amicalement, Arnaud

3 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    En vba faire Alt F11 pour accéder a l'éditeur.
    Ensuite sélectionner la feuille concernée en haut à gauche.
    mettre ceci:

    Option Explicit
    Dim ligne As Long
    Dim lettre As String
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Intersect(ActiveCell, Range("G:G")) Is Nothing Then
    'rien
    Else
     ligne = Target.Value
     If ligne = 1 Then
       lettre = ActiveCell.Offset(0, -5).Value
       ActiveCell.Offset(1).Resize(1, 1).EntireRow.Insert
       ActiveCell.Offset(1, -5).Value = lettre
     End If
     If ligne = 2 Then
       lettre = ActiveCell.Offset(0, -4).Value
       ActiveCell.Offset(1).Resize(1, 1).EntireRow.Insert
       ActiveCell.Offset(1, -5).Value = lettre
       lettre = ActiveCell.Offset(0, -5).Value
       ActiveCell.Offset(1).Resize(1, 1).EntireRow.Insert
       ActiveCell.Offset(1, -5).Value = lettre
     End If
     If ligne = 3 Then
       lettre = ActiveCell.Offset(0, -3).Value
       ActiveCell.Offset(1).Resize(1, 1).EntireRow.Insert
       ActiveCell.Offset(1, -5).Value = lettre
       lettre = ActiveCell.Offset(0, -4).Value
       ActiveCell.Offset(1).Resize(1, 1).EntireRow.Insert
       ActiveCell.Offset(1, -5).Value = lettre
       lettre = ActiveCell.Offset(0, -5).Value
       ActiveCell.Offset(1).Resize(1, 1).EntireRow.Insert
       ActiveCell.Offset(1, -5).Value = lettre
     End If
     If ligne = 4 Then
       lettre = ActiveCell.Offset(0, -2).Value
       ActiveCell.Offset(1).Resize(1, 1).EntireRow.Insert
       ActiveCell.Offset(1, -5).Value = lettre
       lettre = ActiveCell.Offset(0, -3).Value
       ActiveCell.Offset(1).Resize(1, 1).EntireRow.Insert
       ActiveCell.Offset(1, -5).Value = lettre
       lettre = ActiveCell.Offset(0, -4).Value
       ActiveCell.Offset(1).Resize(1, 1).EntireRow.Insert
       ActiveCell.Offset(1, -5).Value = lettre
       lettre = ActiveCell.Offset(0, -5).Value
       ActiveCell.Offset(1).Resize(1, 1).EntireRow.Insert
       ActiveCell.Offset(1, -5).Value = lettre
     End If
    End If
    End Sub
    
    
    


    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Tu cliques en colonne G sur les chiffres 1,2,3,4
      0
  2. pacifist_blues Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour cs_Le Pivert,
    J'ai bien suivi tes instructions. Cependant, cela me met un BUG. Merci en tout cas .
    0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    voici un exemple:

    http://www.cjoint.com/c/EFyioHmqZPQ
    0
    1. pacifist_blues Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci bien CS le pivert
      0