Macro insertion ligne / transposition

Résolu/Fermé
pacifist_blues Messages postés 3 Date d'inscription mardi 23 juin 2015 Statut Membre Dernière intervention 24 juin 2015 - Modifié par pacifist_blues le 23/06/2015 à 15:32
pacifist_blues Messages postés 3 Date d'inscription mardi 23 juin 2015 Statut Membre Dernière intervention 24 juin 2015 - 24 juin 2015 à 12:25
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 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
23 juin 2015 à 18:41
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 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
23 juin 2015 à 18:47
Tu cliques en colonne G sur les chiffres 1,2,3,4
0
pacifist_blues Messages postés 3 Date d'inscription mardi 23 juin 2015 Statut Membre Dernière intervention 24 juin 2015
24 juin 2015 à 09:28
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 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
24 juin 2015 à 10:15
voici un exemple:

http://www.cjoint.com/c/EFyioHmqZPQ
0
pacifist_blues Messages postés 3 Date d'inscription mardi 23 juin 2015 Statut Membre Dernière intervention 24 juin 2015
24 juin 2015 à 12:25
Merci bien CS le pivert
0