Macro insertion ligne / transposition

Résolu
pacifist_blues Messages postés 3 Statut Membre -  
pacifist_blues Messages postés 3 Statut Membre -
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
A voir également:

3 réponses

cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
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
cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
Tu cliques en colonne G sur les chiffres 1,2,3,4
0
pacifist_blues Messages postés 3 Statut Membre
 
Bonjour cs_Le Pivert,
J'ai bien suivi tes instructions. Cependant, cela me met un BUG. Merci en tout cas .
0
cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
voici un exemple:

http://www.cjoint.com/c/EFyioHmqZPQ
0
pacifist_blues Messages postés 3 Statut Membre
 
Merci bien CS le pivert
0